当前位置: 首页 > 知识库问答 >
问题:

将一系列h264帧写入多个文件

郭星文
2023-03-14
sequence parameter set - 0x00 0x00 0x00 0x01 - frame1 - 0x00 0x00 0x00 0x01 - frame2 - 0x00 0x00 0x00 0x01 - frame3 - 

等到一个磁盘(没有破折号,只是一堆字节),我会得到一个正确的文件(至少,它可以通过vlc播放)

但是如果我要写文件:

sequence parameter set - 0x00 0x00 0x00 0x01 - frame1 - ...
sequence parameter set - 0x00 0x00 0x00 0x01 - frameN - ...
sequence parameter set - 0x00 0x00 0x00 0x01 - frame2N - ...
sequence parameter set - 0x00 0x00 0x00 0x01 - frame3N - ...

当它们中的一些是正确的(在vlc可以播放的情况下),而其中的一些不是(而且不仅仅是第一个文件是正确的!)显然,不是每一帧都可以在h264文件的开头,但哪一个可以呢?或者哪种方式是正确的存储h264帧在不同的文件?

说到工具,我使用的是C++和live555库,可以使用h264bitstream库获得帧类型,但我想这并不重要。我不想使用任何命令行工具(如ffmpeg),而是一个可以用C++和一些附加库实现的解决方案。

共有1个答案

史超英
2023-03-14

为了便于播放(不需要其他信息),每个文件都应该包含:

  • SPS(序列参数集)
  • PPS(图片参数集)
  • i帧(可以是and IDR或SLICE_I)

接下来,解码器可以解码其他片类型(P,B)。

 类似资料:
  • MediaMuxer已经让我抓狂两天了 情况:我通过UDP收到H264编码的1280x720视频流。h264流包含NALU 1切片和NALU 5关键帧(5之前总是NALU 7-SPS和NALU 8-PPS)。此流似乎稳定30fps,每秒至少有一个NALU 5关键帧。比特率可变,但小于4Mbps。MediaCodec成功解码流并将其呈现在表面视图中,以便该部分运行良好。 但现在我需要将H.264保存

  • 我有一个长长的列表,列表的形式如下--- i、 列表中的值有不同的类型——float、int、string。如何将其写入csv文件,使输出的csv文件看起来像

  • 我试图做一些非常简单的事情,我有一些非常愚蠢的挣扎。我想这一定与对火花的基本误解有关。我非常感谢任何帮助或解释。 我有一张非常大的桌子(~3 TB,~300毫米行,25k个分区),在s3中保存为拼花地板,我想给一些人一个很小的拼花文件样本。不幸的是,这要花很长时间才能完成,我不明白为什么。我尝试了以下方法: 然后当这不起作用时,我尝试了这个,我认为应该是一样的,但我不确定。(我添加了,以尝试调试。

  • 我在pandas中有一个数据帧,我想把它写到CSV文件中。我使用的是: 并得到错误: 有没有什么方法可以很容易地解决这个问题(例如,我的数据帧中有unicode字符)?还有,有没有一种方法可以使用“to-tab”方法(我认为不存在)写入以制表符分隔的文件,而不是CSV?

  • 有人知道怎么做吗?显然有一个Windows命令用于这种事情... 谢谢

  • 我有多个csv文件(每个文件包含N行(例如,1000行)和43列)。 我想把文件夹中的几个csv文件读入pandas,并将它们合并到一个数据帧中。 不过我还没能弄明白。 问题是,数据帧的最终输出(即,)将所有列(即43列)合并到代码的一列(见附图)屏幕截图中 选定行和列的示例(文件一) 选择的行和列(文件二)Client_IDClient_NamePointer_of_Bins日期权重C00000