【问题标题】:How to play video Media Source Extensions when the audio start is delayed? Or how to fix it with ffmpeg?音频开始延迟时如何播放视频媒体源扩展?或者如何用ffmpeg修复它?
【发布时间】:2021-03-22 03:50:37
【问题描述】:

我有一个视频,我将单独的视频/音频流拆分出来,然后用 MP4Box 冲刺,然后我用媒体源扩展播放它们,并将字节范围附加到 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 中添加延迟,但似乎没有任何改变。我做错了什么吗?有没有更好的方法来解复用音频,同时保持与视频在容器中时完全相同的时间,这样我就不必担心延迟/偏移?

【问题讨论】:

    标签: javascript ffmpeg media-source


    【解决方案1】:

    我设法使用 ffmpeg 使用 -af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" 修复它,这篇文章中提到了 https://videoblerg.wordpress.com/2017/11/10/ffmpeg-and-how-to-use-it-wrong/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      相关资源
      最近更新 更多