js MediaRecorder + ffmpeg [已解决]

问题描述

解决

更新:

--------------------------------------
如果你不喜欢我的问题,或者我在下面的回答,请告诉我为什么。我哪里出错了?
---------------------------------------

请帮帮我。我使用 MediaRecorder 用 Ja​​vaScript 录制视频,然后将其存储在我的服务器上。

VLC 播放器可以很好地播放视频,但是浏览器很难播放。在 IOS 上录制的视频在浏览器开始播放前最多加载 2 分钟(看起来浏览器在播放之前完全加载了视频)。来自 android 的视频不包含时间轴,但启动速度要快得多。

我通过快速重新编码修复的来自 android 的视频 ffmpeg -i without_timeline.webm -c copy fixed.webm 效果很好。

我尝试使用类似的命令 ffmpeg -i long_started.mp4 -c copy fixed.mp4 修复来自 IOS 的视频,但结果更糟。

有很多错误

输出流 0:0 中的非单调 DTS;

输出流 0:1 中的非单调 DTS;

新视频旋转、冻结、重复和错误时间。

我花了一个星期,但没有成功。

解决方法

我已经设法修复它。我使用了 repo 中的 ffmpeg,它是 4.2 版。尝试从官网下载最新版本(4.4),终于成功了,这个版本修复了DTS,增加了元数据,视频播放效果很好。