Html 如何使用FFMPEG以ISO BMFF格式录制视频,以备媒体源扩展?

Html 如何使用FFMPEG以ISO BMFF格式录制视频,以备媒体源扩展?,html,video,ffmpeg,media-source,Html,Video,Ffmpeg,Media Source,我正在尝试使用ffmpeg录制视频,然后使用MSE在播放器上播放。以下是我使用的脚本: ffmpeg -i /dev/video0 -c:v libx264 -profile:v baseline -level:v 13 -g 250 -r 25 -keyint_min 250 -strict experimental -pix_fmt yuv420p -movflags frag_keyframe+empty_moov -b:a 96k sintel.mp4 除了在视频文件的末尾有一个mf

我正在尝试使用ffmpeg录制视频,然后使用MSE在播放器上播放。以下是我使用的脚本:

 ffmpeg -i /dev/video0 -c:v libx264 -profile:v baseline -level:v 13 -g 250 -r 25 -keyint_min 250 -strict experimental -pix_fmt yuv420p -movflags frag_keyframe+empty_moov -b:a 96k sintel.mp4

除了在视频文件的末尾有一个mfra框之外,这是可行的,我相信MSE不支持这个框。如何卸下此mfra框?

将您的移动标志更改为:

-movflags empty_moov+default_base_moof
如果您希望它也能在Chrome上工作,请使用:

-movflags empty_moov+default_base_moof+frag_keyframe

谢谢,这很有效。你能解释一下为什么它能工作吗?看这里:在开头的部分:电影片段框使用电影片段相对寻址…不工作,因为生成的MP4没有持续时间(d=0),这对MSE基本上是无用的。FFMPEG无法执行正确的MP4分段。@Kr0e不正确。MSE不需要具有持续时间的MP4,因此ffmpeg能够做到这一点。我可以自己做。@Kr0e-澄清一下-如果您自己设置SourceBuffer.timestampOffset,它确实可以工作。我能够将多个文件缓冲在一起,并让它们无缝播放。为了设置偏移,您需要自己计算每个分段的持续时间。