在导出视频时,发现最终导出视频的时长与实际录制的视频时长不一样,而且视频中某一帧会延迟。
在项目中使用mp4-wasm导出mp4视频,同时利用canvas做一些效果,猜想是在canvas处理时有延迟。但是当把canvas处理效果全部注释,导出效果还是一直。
修改视频导出的方案,替换成 canvas中 captureStream方式 + ffmpeg,有时候正常有时候还是一样的问题。
但是把视频的buffer数据转换成blob的url播放时正常----,突然想到在YouTube看视频时,切换tab会自动暂停视频,从这个方向在video监听暂停事件上看,确实如此!!!!
在导出的时候,只要继续播放即可!
webPreferences: { backgroundThrottling: false }
改用ffmpeg转换视频格式后
1、录制的视频是用 h264 格式来编码的。这样后续转码的时候视频部分可以直接拷贝,大大提升转码的速度
2、画质提升,添加ffmpge滤镜:
'eq=contrast=1.2:brightness=0.05:saturation=1.3:gamma=1.0', // 调整对比度、亮度、饱和度、伽玛