在ffmpeg中进行后处理以移动';moov原子&x27;在MP4文件中(qt faststart)

在ffmpeg中进行后处理以移动';moov原子&x27;在MP4文件中(qt faststart),ffmpeg,video-streaming,video-processing,mp4,video-conversion,Ffmpeg,Video Streaming,Video Processing,Mp4,Video Conversion,是否可以从命令行运行ffmpeg,该命令行将“moov atom”元数据放在MP4文件的开头,或者在ffmpeg中作为后处理操作运行qt faststart,以便生成的文件可以通过internet流式传输 我当然可以将它作为一个单独的命令运行,但我更希望它是一个 作为ffmpeg中的选项,或 作为转换后的一部分,在通过ffmpeg转换视频文件时使用命令行选项 编辑1 MOV/MP4多路复用器 muxer选项包括: “-moov_大小字节” Reserves space for the m

是否可以从命令行运行ffmpeg,该命令行将“moov atom”元数据放在MP4文件的开头,或者在ffmpeg中作为后处理操作运行qt faststart,以便生成的文件可以通过internet流式传输

我当然可以将它作为一个单独的命令运行,但我更希望它是一个

  • 作为ffmpeg中的选项,或
  • 作为转换后的一部分,在通过ffmpeg转换视频文件时使用命令行选项

编辑1

MOV/MP4多路复用器

muxer选项包括:

“-moov_大小字节”

Reserves space for the moov atom at the beginning of the file instead of 
placing the moov atom at the end. If the space reserved is insufficient, 
muxing will fail.

在ffmpeg转换过程后设置并运行qt faststart。

似乎ffmpeg中包含了对faststart的支持:

-movflags faststart

运行第二遍,将moov原子移动到文件顶部。这 操作可能需要一段时间,在各种情况下都不起作用 例如分段输出,因此默认情况下不启用

ffmpeg有一个用于


当录制过程中断电时,它也有助于避免损坏视频

这更适合作为评论而不是回答@沙沃德的回答更像是一个答案。这对我很有效。它进行第二次传递,然后moov原子移动到起始位置。干杯只有当我有
-codec:v libx264
参数时,这才对我有效。为了支持这一点,我必须使用
--enable-gpl--enable-libx264
选项配置ffmpeg。即使moov atom在最后,android的视频元素也可以通过http流播放视频。这怎么可能?@SagarPilkhwal它可能使用HTTP范围头从文件末尾请求字节。web服务器必须支持它。与下载恢复相同的机制。命令:ffmpeg-i input.mp4-vcodec copy-acodec copy-movflags faststart output.mp4是的,可以在文件开头移动moov原子。请参阅:
-movflags isml+frag_keyframe