我有一个视频,我把单独的视频/音频流分割出来,然后用MP4Box播放,然后我用Media Source Extensions播放它们,并从MPD文件中添加字节范围到视频/音频源缓冲区。一切都运行得很好,但我有一个视频的音频延迟了大约1.1秒。我不能让它同步,音频总是在视频之前播放。
目前,我正在尝试设置audioBuffer.timestampOffset = 1.1
,这样可以让它完美地同步。不过,我现在遇到的问题是,除非音频源缓冲区有数据,否则视频不能播放。所以视频马上就停止了。如果我跳过几秒钟(超过偏移量),一切都会正常工作,因为视频/音频都是缓冲的。
有没有办法绕过这个问题?或者让它在没有加载音频的情况下播放,以某种方式用静音填充音频缓冲区(我可以用Web audio API生成一些东西吗)?是否在ffmpeg中为音频文件添加静音?还有别的吗?
我首先尝试用ffmpeg -i video.mkv -map 0:a:0 -acodec aac -af "adelay=1.1s:all=true" out.aac
在ffmpeg中添加一个延迟,但似乎没有什么变化。我做错什么了吗?有没有更好的方法来解复用音频,同时保持与视频在容器中的时间完全相同的时间,这样我就完全不用担心延迟/偏移了?
发布于 2020-12-11 10:43:25
我设法用本文https://videoblerg.wordpress.com/2017/11/10/ffmpeg-and-how-to-use-it-wrong/中提到的-af "aresample=async=1:min_hard_comp=0.100000:first_pts=0"
用ffmpeg修复了这个问题。
https://stackoverflow.com/questions/65239339
复制相似问题