В своей статье Полный тест качества кодирования звука YouTube я определял, какие форматы аудио и видео доступны на сервисе YouTube, а также разбирал качество воспроизведения в браузере — через Flash и HTML5 плееры. В итоге мы пришли к выводу, что воспроизведение через браузер не позволяет достичь максимального возможного качества звучания, так как наиболее качественные потоки аудио не подгружаются ни в одном из случаев.
Следовательно, наиболее правильным способом воспроизведения будет использование сторонней программы. И сегодня у меня хорошая новость: недавно этому научился foobar2000.
Для работы с YouTube нам понадобится плагин Youtube Source (foo_youtube.dll), включающий в себя также элементы FFmpeg и некоторые другие фильтры.
После установки в настройках появится соответствующая страница:
Как видим, плагин имеет довольно широкие возможности конфигурации. На скриншоте выше отображены установленные мною оптимальные настройки загрузки и декодирования. Давайте разберем их.
Playback Start — алгоритм определения доступных потоков и их битрейта. Прежде всего плагин определяет их, скачав и проанализировав страницу видео. Далее он также может отправить HTTP запросы для получения размеров файлов и, для наибольшей точности, скачать по фрагменту каждого потока. Само собой, каждый следующий этап занимает всё больше времени. На данный момент оптимальным является второй уровень проверки, т. к. при третьем плеер может не определять доступность некоторых потоков (вероятно, этот баг вскоре будет исправлен).
Preferred Quality — настройки приоритетов выбора потока для воспроизведения. Тут можно установить игнорирование одних форматов, предпочтение других, а также принцип выбора потока согласно битрейту и типу потока (аудио+видео или только аудио). Как мы уже знаем, наиболее качественный поток — это M4A (MP4 Audio Only) 256 kbps, который доступен для всех роликов. Потому я выбрал предпочтительным M4A, с выбором наибольшего битрейта.
Processing — здесь размещены настройки загрузки и декодирования данных. Скачивать данные с сервера могут: foobar2000 (загружает малыми порциями, без кеширования), плагин Youtube Source (загружает небольшими фрагментами, записывая их во временный файл), FFmpeg (также качает порциями, с кешированием, но для старта воспроизведения ему необходим довольно большой фрагмент аудио).
Ниже следует перечислить форматы, для которых будет использоваться декодер FFmpeg.
На данный момент в целом плагин работает довольно нестабильно, не все комбинации настроек загрузки/декодирования дают хороший результат. По моим тестам наиболее стабильно работает загрузка и декодирование FFmpeg. Кроме того, данная настройка по словам разработчика должна позволять прокрутку M4A, однако на деле, хоть и доступна продолжительность трека, прокрутка не работает.
Таким образом, для настроек на скриншоте будет загружаться дорожка AAC 256 kbps, однако прокрутка работать не будет (хотя в будущем разработчик, возможно, исправит этот недочёт). Если же вам нужна прокрутка — выберите формат OGG (уберите его из игнорируемых и добавьте в предпочтительные).
Кроме того, плагин YouTube Source имеет просто-таки сенсационную возможность воспроизведения видео. Это возможно благодаря пакету LAV filters. Логичным будет загрузка потока Video Only. Наиболее стабильно плагин работает с MP4 Video:
С такими настройками плагин автоматически подгружает видео MP4 480p (Video Only) и запускает его через окно визуализации, автоматически синхронизируя с потоком аудио (потоки загружаются отдельно — через FFmpeg и LAV filers). Также через контекстное меню окна можно включить субтитры.
Добавить видео в плейлист можно, введя его адрес в File->Add Youtube URL(s). Также можно выполнять поиск видеозаписей через View->Youtube Source.
Полное описание всех настроек плагина (включая форматирование полей метаданных) доступно на его домашней странице.