В 2014-м я провёл подробное исследование качества звука на YouTube (материал ещё весьма актуален, серьёзных изменений на YouTube за это время не произошло), незадолго до этого проверял, насколько качественно музыка воспроизводится в соцсети ВКонтакте. В этой же статье я исследую качество звука на сервисе, предназначенном сугубо для музыки — SoundCloud.
Но для начала краткий исторический экскурс:
SoundCloud стартовал в далёком 2008-м году как сервис для публикации и расшаривания музыкальных композиций. Изначально он предназначался для музыкантов, получивших теперь возможность удобно обмениваться своими звукозаписями и публиковать их. Сервис стремительно набирал популярность: в 2010-м году количество пользователей достигло одного миллиона, а в 2013-м перевалило за 40 миллионов (при этом количество слушателей в месяц превысило 170 миллионов). Однако SoundCloud продолжал оставаться исключительно способом распространения музыкантами собственной музыки, и на него невозможно было загрузить музыку, защищённую авторским правом. Переговоры с музыкальными компаниями долгое время проходили безуспешно. В 2014-м удалось заключить соглашение с Warner Music Group, однако лейблы отнеслись к SoundCloud весьма скептически. Только в 2016-м году компания SoundCloud наконец наладила сотрудничество с двумя другими членами «Большой Тройки» — Universal Music Group и Sony Music Entertainment, что позволило увеличить количество доступного контента до более чем 150 млн треков и запустить музыкальную службу SoundCloud Go (на данный момент доступна В США, Канаде, Франции, Германии, Нидерландах, Великобритании, Австралии и Новой Зеландии), позволяющую слушать лицензированный контент.
Итак, в последние годы глобальное стремление в IT-сфере к упрощению всего и вся привело в том числе к тому, что люди стали попросту лениться скачивать музыку с трекеров, файлобменников и т. п. (о покупке дисков все уже вообще забыли) — ведь легче вбить название трека в поиск ВК, YouTube, Яндекс.Музыки и т. д., нажать кнопку Play и больше ни о чём не беспокоиться.
Но так как у каждого музыкального сервиса свои заморочки касаемо авторских прав, платности/бесплатности контента, ограничений и проч. (увы, прошли времена, когда в VK было всё и бесплатно), количество альтернатив продолжает расти. Одной из таких альтернатив является SoundCloud, фирменные особенности которого — отображение прогрессбара трека в виде стилизованной осциллограммы, возможность добавления комментариев с привязкой ко времени, а также возможность встраивания треков в Twitter, Facebook и вообще любые страницы (с использованием API).
Я никогда раньше не пользовался SoundCloud, но недавно мне прислали ссылку на неплохой микс, который был выложен на YouTube. Я посмотрел список доступных для скачивания форматов, обнаружил там Opus и уже было собрался качать/слушать, но потом заметил в описании линк на SoundCloud — якобы изначально микс выкладывался там. Я решил, что лучше, как говорится, обратиться к первоисточнику, и перешёл по ссылке.
Кликнув по кнопке Download, любезно предоставленной плагином SaveFrom.net (который я, кстати, использую и для YouTube), я скачал первый трек — к сожалению, оказавшийся MP3 128 kbps — и сравнил его с Opus, скачанным с YouTube:
Спектрограммы весьма разнятся — у Opus спектр шире, и это говорит о том, что скачанный 128-кбитный MP3 первоисточником не является.
Но где же тогда первоисточник? Доступен ли он для скачивания вообще? Вот у Google, например, есть Takeout, позволяющий скачивать оригиналы загруженных на свой канал Youtube видео (см. мою статью).
Я зарегистрировался на SoundCloud и выгрузил туда тестовый сигнал RightMark Audio Analyzer в формате FLAC 24 бит/96 кГц:
Кстати, к выгрузке из HQ форматов (AMR и MP2 в учёт не берём) доступны PCM, FLAC, ALAC, OGG (Vorbis, Opus), MP3, AAC, и WMA — несколько огорчает отсутствие дополнительных lossless форматов (Monkey's Audio, WavPack) .
После выгрузки я скачал трек той же кнопкой — также скачался MP3 128 kbps. Я проверил и выяснил, что это именно тот материал, который воспроизводится потоково при запуске проигрывания. Кстати говоря, лучше всё же будет воспроизводить его, предварительно скачав и запустив, например, в foobar2000 (при условии правильной настройки) — так вы застрахуете себя от дополнительных шумов квантования (браузер декодирует в 16-bit PCM, foobar2000 — в 32-bit float) и клиппинга (музыкантам рекомендуется нормализация треков до -3dBFS перед выкладыванием на SC, но не все это делают).
Также я выяснил, что SC конвертирует абсолютно всё — даже если на него выгрузить закодированный им же MP3, он всё равно ещё раз его перекодирует.
Покопав в интернете, я выяснил, что для возможности скачивания оригинала своего трека необходимо иметь Pro аккаунт. Но, как оказалось, скачать оригинал всё же можно — для этого нужно включить возможность загрузки трека в разделе Permissions. Тогда скачивание оригинала становится доступно всем, включая владельца:
Сделать это можно и для приватных, и для публичных записей.
Что ж, это уже радует. Но на сервисе очень мало записей, для которых включена возможность скачивания, так что в большинстве случаев нам придётся довольствоваться MP3. Давайте же посмотрим ближе, что мы имеем.
С помощью тестового семпла, Adobe Audition, EncSpot и некоторых других ухищрений (которые я подробно описал некогда в своей статье) мне удалось выяснить, что SoundCloud на данный момент использует LAME версии 3.99.3 (странно, ведь уже 5 лет как доступен 3.99.5, а недавно вышел 3.100) с предварительным ресемплированием материала до 44.1 kHz. При этом ресемплирование выполняется алгоритмом явно более качественным, чем встроенный в LAME. На спектрограмме закодированного мною семпла (параметр --resample 44.1) виден алиазинг, а у семпла с SC его нет:
Что ж, хоть за это разработчикам можно сказать спасибо.
В остальном же — результаты, мягко говоря, не очень. Исходя из шума (около -87 dBFS) на участках, где изначально была тишина, можно заключить, что обработка и кодирование выполнялись с точностью 16 бит (это привело к повышенному шуму квантования). Для LAME использовался только параметр -b 128 — кодирование в CBR 128 kbps со значением качества алгоритмов равным 3 (самое качественное — 0).
Выводы могут быть следующими:
1. Разработчики не стали использовать более эффективные режимы — VBR — так как VBR V2 и V3 дают битрейт значительно выше 128 кбит/с, а на более низких битрейтах модель VBR не настолько эффективна и часто даже проигрывает CBR. То есть в данном случае был сделан выбор в пользу экономии дискового пространства, а не скорости кодирования (VBR кодируется быстрее).
2. Для экономии же скорости разработчики не стали повышать качество алгоритмов (хотя бы до -q 2) и, видимо, по той же причине включили альтернативный ресемлпер — встроенный в LAME работает довольно медленно.
Впрочем, вполне может быть, что никто вообще не думал ни о чем таком, и они лишь вбили параметр для кодирования в 128 кбит/с, следуя распространённому мнению о пороге прозрачности на данном битрейте.
Но что точно — на лицо нежелание внедрять новые технологии. Лидирующий сейчас Opus Codec кодирует как минимум в два раза быстрее MP3, даёт на 128 кбит/с (а то и на 80—96) полную прозрачность звучания и поддерживается уже всеми современными браузерами, (а его реализация на мобильных платформах, благодаря открытости, не составит труда).
То же, что мы имеем сейчас — низкокачественное MP3 аудио, которое звучит со слышимыми искажениями на любом хоть сколько-нибудь качественном материале и оборудовании. В итоге выходит парадокс: решение выкладывать музыку на непредназначенном для этого YouTube будет лучшим, чем выкладывать её на специально созданном SoundCloud.
Но я всё же надеюсь, что парни из SoundCloud справятся с испытываемыми сейчас финансовыми трудностями, возьмутся за ум и исправят столь досадные недостатки.
P. S. А вот тут сами музыканты жалуются на качество звука SC: www.gearslutz.com/board/mastering-forum/664602-soundcloud-struggling-sound-quality.html