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

使用libavformat API读取H264 SPS和PPS NAL字节

毋修为
2023-03-14

如何使用libavformat API读取H264 SPS和PPS NAL字节?

我尝试使用“av_read_frame(input_avFormatContext,&avpkt)”API从一个.mp4视频(编解码为h264)文件读取视频数据到“avpacket”结构。

使用“ffmpeg-i video.mp4 video.h264”生成的文件将在IDR启动前的启动中包含SPS和PPS。

我想从.mp4文件中提取原始的.h264视频并转储在SPS,PPS,IDR,P1,p2...秩序。

我希望使用libavformat API以编程方式完成这一工作。

有什么想法吗?

多谢了。

共有1个答案

那弘
2023-03-14

在mp4-container(也是mkv)中,PPS/SP与帧数据分开存储在全局报头中。要从libav*API访问它们,需要在AVStream的AVCodecContext中查找与所需视频流相关的extradata字段。此外,extradata的格式可以与标准H.264 NAL不同,所以请查看MP4-container规范中的格式描述。

 类似资料:
  • 我正在尝试编写一个在后台执行控制台命令并侦听StdOut和StdErr的函数。如果出现错误,它会抛出StdErr和StdOut。我正在尝试使用Autohotkey。首先,我尝试使用WScript。Shell COM Object,但StdErr和StdOut始终为空,尽管StdOut绝对应该为非空。关于WScript的信息不多。Shell COM Object和所有Microsoft文档都在技术档

  • 问题内容: 我第一次使用stax解析XML字符串。我找到了一些示例,但无法使我的代码正常工作。这是我的代码的最新版本: 我将手表放在“事件”和“ reader.getElementText()”上。当代码停止时 将显示“ reader.getElementText()”值,但是一旦它偏离该行,就无法评估。当代码停止时: “元素”手表显示正确的值。最后,当我又将代码步进一行时,我捕获了此异常: 我尝

  • 我对java比较陌生,对如何使用缓冲读取器读取文件很好奇。这是因为我正在上一门课,被分配做一个简单的ceaser密码,我应该解密一个文本文件,创建一个新文件,并将解密的文本放入该文件。我可以用扫描仪和一个10KB的小文件来完成,但是当我要测试的100MB的大文本文件的时候,它是非常慢的。这是我的代码,它应该是读取文件内容。 如果有人能给我指明正确的方向,那就太好了。 提前致谢

  • 我希望使用java.util.scanner()从控制台读取一个全名,并将该值赋给一个字符串。

  • 问题内容: 我有一个要在Java中读取的2 gb文件(实际上是四个2gb文件)。因此,Java 7中有一个新功能,可以让我一次读取所有字节。 这是一个愚蠢的程序,它将读取文件中预先输入一个字节的文件,然后连续读取该文件,并将读取的内容附加到同一文件中。现在显然,RAM不够大,无法一次读取2gb文件,更不用说其中的四个了,所以我想知道是否有任何快速方法,而无需使用外部库(除非这是唯一方法)来读取四个

  • 问题内容: 我有一个文件,其中第一个字节包含编码信息。在Matlab中,我可以使用逐位读取字节,然后通过等读取每个位。 python中是否有任何等效的阅读器? 问题答案: 从文件中读取位,首先读取低位。