微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

FFMPEG - 使碎片化的 MP4 视频从 5 秒开始开始时间为 00:05 而不是 00:00

如何解决FFMPEG - 使碎片化的 MP4 视频从 5 秒开始开始时间为 00:05 而不是 00:00

我正在使用 MSE 开发实时视频流媒体网站(网络研讨会)。我几乎已经完成了 - 整个过程中的一切都完美无缺,除了这个:

每隔 5 秒来自拖缆的数据将附加到一个 WEBM 文件中。然后我把这个文件像这样推入 FFMPEG:

ffmpeg -n -ss SEGMENT_I_WANT_START_TIME -to SEGMENT_I_WANT_END_TIME -i INPUT_WEBM_FILE -preset veryfast -max_muxing_queue_size 9999 -crf 30 -vf \"fps=15\" -copyts OUTPUT_MP4_SEGMENT

上面的示例完美运行,但输出没有碎片化,因此无法在 MSE 中播放。

当我添加这个: -movflags empty_moov+default_base_moof+frag_keyframe 时,输出被正确分割并可以在 MSE 中播放但 -copyts 不起作用,所以我的片段从 0:00 开始,而不是例如 0:05 .这使我无法在 MSE 中使用 SEGMENTS 模式(因为发送到客户端的所有段都附加到 0:00)并且必须使用 SEQUENCE 模式,这会导致 AV 同步问题。

我也尝试过 -output_ts_offset 但结果相同 - 在没有碎片标志的情况下使用时它运行良好,但使用它时根本不起作用。看起来碎片化的 MP4 需要从 0:00 开始,我猜这不是真的。

所以问题是如何使用 -copYTS 或 -OUTPUT_TS_OFFSET WITH -MOVFLAGS?预期结果是正确分割的 MP4 视频片段,可使用 MSE 播放,并在非空时间开始。

非常感谢您的建议,我为此挣扎了好几天!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。