FFmpeg调整含MJPEG流的MKV文件音频延迟时出现的卡顿与无声问题求助
FFmpeg调整含MJPEG流的MKV文件音频延迟时出现的卡顿与无声问题求助
大家好,我最近在用FFmpeg处理一个MKV文件时碰到了头疼的问题,想过来请教下各位大佬。
我手里的这个MKV文件一共有4条流:HEVC格式的视频流、一条音频流、字幕流,还有一条带图片的MJPEG流。现在播放时音频和视频不同步,我想给音频加个延迟,但尝试用-itsoffset相关方法操作时,遇到了两个奇怪的状况:
- 如果处理时把MJPEG流排除在外,生成的新文件播放时,只要往前快进1分钟左右,就会出现持续好几秒的卡顿,但原文件完全没有这个问题;
- 如果保留所有流(包括那条MJPEG流),生成的文件会出现无声的情况——有时候全程都没声音,有时候快进3次左右才会突然没声音。
我把试过的几个命令列出来给大家参考:
原文件复制命令(作为对比基准):
ffmpeg -i f.mkv -c copy -map 0 -to 0:26:0 t0.mkv
这个生成的t0.mkv和原文件完全一致,没有任何问题
排除MJPEG流的处理命令:
ffmpeg -i f.mkv -i f.mkv -c copy -map 0:0 -map 1:1 -map 0:2 -map 0:3 -to 0:5:0 t1.mkv
用这个命令生成的t1.mkv,只要快进1分钟就会卡顿好几秒
保留所有流的处理命令(我原本想完整保留所有流):
ffmpeg -i f.mkv -i f.mkv -c copy -map 0:0 -map 1:1 -map 0:2 -map 0:3 -to [目标时长] t2.mkv
这个生成的文件就会出现前面说的无声问题
有没有大佬知道这两个问题该怎么解决呀?麻烦指点一下,谢谢了!
备注:内容来源于stack exchange,提问作者Martian2020




