Конвертируйте аудио YouTube DASH (youtube-dl) в m4a (AAC DL)

12375
Sun

Я не могу слушать m4a DASH аудио, которое я загружаю с YouTube через youtube-dl на Winamp. Есть ли в youtube-dl возможность удалить аудио часть DASH файла m4a и загрузить / сохранить ее как m4a (AAC LC) без потери качества? До сих пор я использую ffmpeg -i input.m4a -vn -acodec copy output.m4aдля преобразования каждого файла, чтобы он нормально воспроизводился в Winamp.

6

3 ответа на вопрос

6
slhck

Нет, вам нужен второй шаг преобразования.

Проблема в том, что для YouTube DASH в контейнере MP4 вместо ftypосновного установлен «основной бренд» . Это правильный подход для потоковой передачи DASH, но Winamp слишком стар, чтобы его распознавать (как и многие другие программы).dashm4a

Теперь, что было бы разумным предложением, это создать запрос функции для youtube-dl, чтобы добавить поддержку пост-обработки для ffmpeg, чтобы преобразовать главную марку контейнера MP4 во что-то более совместимое. Но на данный момент такой вещи не существует.

Или подайте отчет об ошибке для Winamp, чтобы включить поддержку декодирования для dashбрендов. Поскольку он, скорее всего, будет полагаться на сторонний плагин декодера, это, вероятно, также означает создание отчета об ошибке где-то еще.

Как вы думаете, параметры ffmpeg, которые я сейчас использую, лучше всего подходят для преобразования их из MPEG DASH m4a в AAC LC m4a? Sun 9 лет назад 0
Да. Вы на самом деле не конвертируете аудио поток битов - вы просто меняете метаданные. Это процесс без потерь, поэтому вы не потеряете качество звука. slhck 9 лет назад 2
Это не мнение. Сборка Winamp, кажется, слишком старая, чтобы реализовать (довольно недавние) бренды MPEG-4 из стандарта MPEG-DASH. Другое программное обеспечение поддерживает это. И, как я уже сказал, некоторые другие программы могут потерпеть неудачу. slhck 9 лет назад 0
4
galacticninja

youtube-dl 2015.01.23.4 and newer will automatically correct the header of the m4a file if ffmpeg is present on the system.

Source: youtube-dl : Youtube m4a files downloaded with --extract-audio can't play in some players
All you have to do is to add the path to the directory containing the ffmpeg binary to your system path variable (like so in Windows 7):

Or use the --ffmpeg-location <path to ffmpeg binary or its containing directory> command line argument when calling youtube-dl, to allow youtube-dl through ffmpeg to automatically correct this.

Мой вопрос был уместен в 14 ноября. Автор youtube-dl обратился к проблеме 15 января. Рад, что теперь это часть youtube-dl. Sun 9 лет назад 0
1
Qwerty

I took the liberty of using your ffmpeg command and this is what I got: yt "My Youtube File.mp4"

A file yt.bat placed in system32 containing:

@echo off mv %1 "_%~n1" ffmpeg -i "_%~n1" -vn -c:a copy "%~n1.m4a" rm "_%~n1" 

*renames automatically to m4a, which can be changed in the code.

**it needs to be through temp file and then using rm, mv, otherwise the file and filename get corrupted.

@ sunk818 Вы абсолютно правы в отношении удаления файла на случай, если что-то пойдет не так. Я думаю, я мог бы добавить какую-то проверку. ... Но затем я запускаю эту команду сразу после загрузки с YouTube, так что я могу просто загрузить ее снова. Qwerty 9 лет назад 1

Похожие вопросы