【问题标题】:Is there any easy way to extract h.264 raw stream in annexb format?有没有简单的方法可以提取附件 b 格式的 h264 原始流?
【发布时间】:2012-05-09 22:30:37
【问题描述】:

当我使用命令行使用 ffmpeg 提取视频流时:

ffmpeg -i {一些文件} -vcodec copy -an -f {rawvideo|h264|whatever} out.h264

对于 Adob​​e Media Encoder 生成的某些媒体文件,只有 .m4v(编码为 h.264 蓝光)文件可以产生一些可用的结果。

一些其他格式(如 .f4v)可以产生 h.264 流,但没有 PPS/SPS,并且每个切片以大小而不是 00 00 00 01 序列开头。

我希望我可以从尽可能多的包含有效 h.264 流的文件中提取附件 b 格式的原始流。我知道我可以自己添加 PPS/SPS 并将大小更改为 00 00 00 01。但是有没有现有的软件可以做到这一点?


或者是否可以保证ffmpeg总是可以从.m4v文件中提取附件b格式的流,不管文件是用什么软件编码的?

【问题讨论】:

  • 老问题,但是 PPS 和 SPS 是否是您在某处获得的常量值,例如在 avcC 中?因为我自己正在编写一个非常基本的解复用器,因为我使用的解码器库不能解复用,我想确保我正在重建的流能够正常工作。

标签: video ffmpeg extract h.264


【解决方案1】:

您可能正在寻找的是 h264_mp4toannexb 比特流过滤器,使用 -bsf 命令行选项调用:

ffmpeg -i {some file} -vcodec copy -bsf h264_mp4toannexb -an -f {rawvideo|h264|whatever} out.h264

请注意,如果您的 FFmpeg 版本有点旧,您可能需要使用 -vbsf 而不是 -bsf(该选项最近已重命名)。

【讨论】:

  • 是否有参数指定提取哪个流(如果MP4包含多个H264基本流)?
  • 注意:可以使用ffplay out.h264查看生成的文件,但对于 VLC 2.2.1 不能使用vlc out.h264
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-24
  • 2018-11-17
  • 2018-03-18
  • 2020-08-12
  • 2019-06-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多