【问题标题】:Can ffmpeg place Mp4 metainfo at the beginning of the file?ffmpeg 可以将 Mp4 元信息放在文件开头吗?
【发布时间】:2014-03-08 07:33:02
【问题描述】:

据我了解,ffmpeg 在生成 mp4 时默认将所有元信息放在文件末尾。 来源:http://www.stoimen.com/blog/2010/11/12/how-to-make-mp4-progressive-with-qt-faststart/

我需要做的是创建视频,一次一帧,然后流式传输。如果标题信息位于文件的“末尾”,这是不可能的。但是是否可以将其移至开头或以其他方式解决此问题?我绝对希望不必切换到另一个库而是使用它。我们已经超出了这个项目的预算。

编辑:必须在代码中完成,因为我一次转换一帧,然后想立即流式传输它而不是像命令一样。

【问题讨论】:

  • ffmpeg -i input.mp4 -movflags faststart -acodec copy -vcodec copy output.mp4

标签: ffmpeg video-streaming metadata mp4


【解决方案1】:

ffmpeg 在命令行上支持-movflags faststart。请参阅http://salman-w.blogspot.co.il/2013/08/fast-start-enabled-videos-with-ffmpeg.html 了解更多信息。

【讨论】:

  • 出于我的目的,我必须在代码中执行此操作,因为我一次转换一帧并希望立即对其进行流式传输,而不是通过命令行转换然后流式传输.. 但是我很欣赏这一点,我会做更多的研究,看看我是否可以用代码来实现它。谢谢!
  • 我认为这行不通。 faststart 涉及将索引(moov atom)移动到文件开头的第二遍。此操作可能需要一段时间,并且在碎片输出等各种情况下都不起作用,因此默认不启用。为什么不使用mpegts
  • @mczarnek 由于您在编码过程中进行流式传输,因此这是不可能的,因为在编码完成之前,faststart 所需的所有信息都不存在。
  • 不使用 mpegts,因为 HTML5 视频不支持它,并且该项目的要求之一是我们可以将视频流式传输到 HTML 视频播放器中。任何人都知道为什么 mp4 在生成标题之前需要遍历整个文件?仅当它是 ffmpeg 生成时?还是 mp4 根本无法直播?
  • 不久前,这里有一个令人大开眼界的讨论:Live Streaming Through mp4。 AFAIK, 元素从那时起还没有成熟很多,答案仍然相关。做最适合您的目标的事情:iOS、Android、Chrome……
猜你喜欢
  • 2012-05-01
  • 2015-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多