Alex Dragon (alex_dragon) wrote,
Alex Dragon
alex_dragon

Categories:

Как проигрывать скачанное с Ютуба?

Попадаются вопросы типа «подскажите пожалуйста, как заставить фубар воспроизводить файлы с расширением .aac скачанные с Ютуба. Энкодеров AAC наустанавливал разных, а с воспроизведением — никак».

Проблема тут не в энкодерах как таковых, а в демуксерах (то есть программах или частях программ, ответственных за извлечение собственно потока данных из контейнера). Дело в том, что Юутуб не отдаёт чистый AAC (как впрочем и любой другой поток из используемых на Ютубе форматов), а MPEG-DASH, в данном случае по сути тот же mp4, только со вставками специальных метаданных и меток разбиения на куски для удобства трансляции через http.

Решение в самом простом случае — скачанный файл переименовать с расширением .m4a. Такие файлы без проблем будет играть Foobar2000, VLC и mplayer, но не факт, что их смогут проигрывать прочие проигрыватели, особенно аппаратные.

Поэтому для гарантированной совместимости ютубовские файлы лучше ремуксить в нормальный mp4-контейнер (для чисто аудиозаписей обычно расширение пишут .m4a). Если это реально насущно и актуально, советую освоить ffmpeg. Ну или по крайней мере команду для ремукса:

ffmpeg.exe -i "имя входного файла" -vn -acodec copy -bsf:a aac_adtstoasc -f ipod -movflags faststart "имя выходного файла.m4a",

где параметр
-i — указывает входной файл;
-vn — отключает обработку видео;
-acodec copy — формально acodec указывает какой кодек использовать, но в данном случае в качестве кодека выбрано copy, то есть просто передача входного потока на выход без перекодирования и каких-либо обработок; согласно документации опция acodec устарела, в дальнеших версиях будет исключена, а в наше время предпочтительнее использовать её в виде -c:a, то есть команда будет выглядеть как -c:a copy, но в реальности пока что без разницы, ffmpeg приемлет обе форма записи команды;
-bsf:a aac_adtstoasc — указывает некоторые параметры aac-потока; если не хотите копаться в тонкостях всех существующих подформатов AAC, просто примите как данность, иначе не взлетит;
-f ipod — создать iPod-совместимый файл, не проверял действенность за отсутствием, но встречались рекомендации использовать эту опцию;
-movflags faststart — переносит индексы из конца файла в начало, по идее так быстрее начнёт играть, особенно если предполагается передача по сети, проигрыватель сможет начать воспроизведение не дожидаясь загрузки всего файла, теоретически может иметь смысл и для слабых аппаратных проигрывателей, которые долго продупляются и при чтении файла с флешки, и при разборе контейнера, однако насколько это практически верно — сказать затрудняюсь.

Во всяком случае файлы, обрабтанные таким образом, у меня и на всех прочих проигрывателях прекрасно играют, включая телефон (не смарт).

Всё вышесказанное видео тоже касается, за исключением того что переименовывать надо в .mp4, а при ремуксе вместо -vn нужно поставить -vcodec copy или -c:v (аналогично ситуации с acodec: форма записи устарела, но фактически оба варианта работают).

Ещё можно отметить, что скачивая с Ютуба на самом деле имя файла может оказаться каким угодно, потому что сам Ютуб скачивания не предполагает и может вообще не выдавать какого-то внятного, читаемого человеком имени, а именование файла зависит либо от браузера, либо от софта, которым осуществляется закачка, либо стороннего сервиса, при помощи которого это делается.
Tags: компьютеры, полезные советы
Subscribe

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 16 comments