如何输出 mp4 和 mpegts

如何输出 mp4 和 mpegts

使用 h264 和 aac,我一直在尝试使用新的球座多路复用器。

它要么抱怨缺少 aac_adtstoasc bsf,要么如果设置了 global_header,则抱怨缺少 h264_mp4toannexb bsf。但是,我找不到为一个输出添加 bsf 而不为另一个输出添加的方法:像往常一样添加它适用于两个输出,而多路复用器选项(介于 之间[])不接受 bsf。

ffmpeg 团队是否 a) 对该功能的记录不充分,或者 b) 导致这种输出组合无法实现?

答案1

在 ffmpeg 2.0 或更低版本中这是不可能的。2.1 版中添加了对使用 tee 的比特流过滤器的支持。

‘bsfs[/spec]’

指定要应用于指定输出的比特流过滤器列表。可以通过将流说明符附加到以 / 分隔的选项来指定给定比特流过滤器应用于哪些流。如果未指定流说明符,则比特流过滤器将应用于输出中的所有流。

可以指定多个比特流过滤器,以“,”分隔

-- 文档

ffmpeg \
  -i in.mp4 \
  -c:v libx264 \
  -c:a libfaac \
  -flags +global_header \
  -bsf:v dump_extra \
  -map 0 \
  -f tee '[f=mp4:bsfs=aac_adtstoasc]out.mp4|[f=mpegts]out.ts'

相关内容