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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...