
Через несколько часов после того, как я загрузилВидео YouTube, закодированное в FFmpeg, несколько человек, которым я его отправил, начали сообщать о странной проблеме: первые 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
Звук в течение этих первых 26 минут прерывается для 7 из 31 мобильных устройств, то есть 22%, и это увеличивается до более чем 50%, если включить только телефоны Android. Большинство опрошенных мной были из развитых стран, что означает, что данные также перевешивают в сторону новых, более современных телефонов, что означает, что эта цифра может легко приближаться к 80% в менее развитых странах, которые в основном используют старые Android.
Излишне говорить, что это довольно большая проблема для кого-то вроде меня, кто рассчитывал загрузить видео на YouTube и предоставить YouTube сделать все остальное, вместо того чтобы заниматься отладкой устройства в стиле веб-разработки.
Я скомпилировал видео из нескольких исходных видео, закодировал и объединил их с помощью FFmpeg.
Он использует H264 и OPUS в качестве кодеков, но что более важно, проверкаисходное видеочто первые 26 минут взяты из этого видео, показывает, что эта проблема берет свое начало в этом видео, так что теперь вопрос становится таким:
а) Что именно в этом исходном видео приводит к искажению звука на таком большом количестве мобильных устройств?
б) Как это исправить с помощью FFmpeg?
решение1
Я понятия не имею, почему это было заминусовано, но, несмотря на это, мне удалось найти решение проблемы, разместив точно такой же вопрос на форуме специалистов по аудио Doom9. Я получил следующий ответ почти сразу от пользователяlvqcl:
Левый и правый каналы сдвинуты по фазе на 180°. Инвертируйте один из них (первые 26 минут одного из каналов, то есть).
Когда я спросил его, почему проблема касается только определенных мобильных устройств, он ответил:
Похоже, они воспроизводят аудио в моно, поэтому они добавляют левый и правый каналы вместе. Поэтому результат содержит только артефакты сжатия звука из левого и правого каналов.
Затем я начал искать, как исправить это в FFmpeg, и наткнулся на следующую команду, любезно предоставленную Gyanздесь:
ffmpeg -i input.wav -af "aeval='-val(0)':c=same" output.wav
Выполнение этой команды для исходного видео, повторное объединение всех исходных видео, повторная загрузка на YouTube и последующее тестирование с теми же устройствами подтверждают, что проблема действительно устранена.
Я был рад возможности загрузить свое видео на YouTube, не беспокоясь о поддержке отдельных устройств, поскольку я достаточно сталкивался с этим в своей работе по веб-разработке. Спасибо всем, кто проголосовал за то, чтобы оставить этот вопрос открытым вопреки желаниям все более и более усердных модераторов этого сайта.