用于渐进式播放的 MP4 MOOV atom
MP4 MOOV atom for progressive playing
我正在寻找一种创建 MOOV 原子的方法,该原子允许用户在 MP4 文件仍在转码时重现该文件(例如,对来自安全摄像头的无休止流进行转码)
我认为我能做到这一点的唯一方法是让每个块和样本具有完全相同的大小,这样我就可以提前在 st* 表中声明其格式。问题是我无法使用 vlc 对具有此特性的 mp4 进行转码(我不知道这是否可能),因此我无法测试这种方法是否可行。
有没有办法对文件进行转码,使其帧和块具有相同的大小?如果可能的话,您认为我可以创建一个 MOOV 原子,允许在文件仍在转码时开始复制吗?
您正在寻找的是生成一个碎片化的 MP4。我只知道如何用 ffmpeg
做到这一点,但它可能可以用 VLC 来实现。您不需要具有相同大小的块,但在 mdat
个框之后具有 moof
的相同大小的段。
例如,使用 x264 您可以将此命令行与 ffmpeg 一起使用:
ffmpeg -i input -c:v libx264 -preset medium -f mp4 -movflags empty_moov+omit_tfhd_offset+frag_keyframe -frag_duration 1000000 output.mp4
我正在寻找一种创建 MOOV 原子的方法,该原子允许用户在 MP4 文件仍在转码时重现该文件(例如,对来自安全摄像头的无休止流进行转码)
我认为我能做到这一点的唯一方法是让每个块和样本具有完全相同的大小,这样我就可以提前在 st* 表中声明其格式。问题是我无法使用 vlc 对具有此特性的 mp4 进行转码(我不知道这是否可能),因此我无法测试这种方法是否可行。
有没有办法对文件进行转码,使其帧和块具有相同的大小?如果可能的话,您认为我可以创建一个 MOOV 原子,允许在文件仍在转码时开始复制吗?
您正在寻找的是生成一个碎片化的 MP4。我只知道如何用 ffmpeg
做到这一点,但它可能可以用 VLC 来实现。您不需要具有相同大小的块,但在 mdat
个框之后具有 moof
的相同大小的段。
例如,使用 x264 您可以将此命令行与 ffmpeg 一起使用:
ffmpeg -i input -c:v libx264 -preset medium -f mp4 -movflags empty_moov+omit_tfhd_offset+frag_keyframe -frag_duration 1000000 output.mp4