为什么我的 YouTube 视频在这么多移动设备上都会失真?

为什么我的 YouTube 视频在这么多移动设备上都会失真?

在我上传了一个FFmpeg 编码的 YouTube 视频,我发给的几个人开始报告一个奇怪的问题:音频的前 26 分钟听起来非常失真;有些人形容它听起来就像在水下一样。以下是一个例子听起来像什么。

然后我开始对更多人进行测试,并从总共 31 台移动设备中获得了以下数据。

正常音频:

Galaxy S10 (x2)
Galaxy S20 (x3)
Galaxy A50
iPhone XR (x3)
iPhone 7
iPhone 8 (x2)
iPhone 10 Pro
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12 (x3)
iPhone 12 Pro
Oppo F11
OnePlus 7T
Pixel 3A XL
OnePlus 7 Pro

音频失真:

iPhone 6S
Galaxy S7 Edge
Galaxy S8+
Galaxy S10 Lite
Huawei Y6 2019
Huawei P30 Pro
Honor 10 Lite

在 31 台移动设备中,有 7 台设备在前 26 分钟的音频中出现问题,占 22%,如果只包括 Android 手机,这一比例将上升到 50% 以上。我询问的大多数人都来自发达国家,这意味着数据也偏向于较新、较现代的手机,这意味着在主要使用较旧 Android 手机的欠发达国家,这一数字很容易接近 80%。

不用说,对于像我这样的人来说,这是一个相当大的问题,我期望能够上传到 YouTube 并让它处理其余部分,而不是进行类似 web-dev 的设备调试。

我从几个源视频编译出视频,并使用 FFmpeg 对它们进行编码和连接。

它使用 H264 和 OPUS 作为编解码器,但更重要的是,检查源视频前 26 分钟的出处表明这个问题源于该视频,所以现在的问题是:

a) 该特定源视频中的什么内容导致如此大比例的移动设备上的音频变得混乱?

b) 我如何使用 FFmpeg 修复它?

答案1

我不知道为什么这个帖子被否决了,但无论如何,我设法找到了解决问题的方法,方法是将完全相同的问题发布到 Doom9 音频专家论坛。我几乎立即收到了用户的以下回复吕奇

左右声道相位差 180°。反转其中一个声道(即反转其中一个声道的前 26 分钟)。

当我问他为什么该问题仅限于某些移动设备时,他回答说:

看起来他们播放的是单声道音频,所以他们将左右声道加在一起。因此结果只包含左右声道的音频压缩伪影。

然后我开始搜索如何在 FFmpeg 中修复这个问题,并找到了以下命令,由 Gyan 提供这里

ffmpeg -i input.wav -af "aeval='-val(0)':c=same" output.wav

在有问题的源视频上运行此命令,重新连接所有源视频,重新上传到 YouTube,然后使用相同的设备再次测试,确认这确实解决了该问题。

我很高兴能够将我的视频上传到 YouTube,而不必担心单个设备的支持问题,因为我在网络开发工作中已经处理过很多这样的问题了。感谢所有投票支持保留此问题的人,尽管该网站的版主越来越热心,他们还是反对这一做法。

相关内容