Converter áudio do YouTube DASH (youtube-dl) em m4a (AAC DL)

7

Não consigo ouvir o áudio m4a DASH que baixa do YouTube via youtube-dl no Winamp. Existe uma opção no youtube-dl para remover a parte de áudio DASH do arquivo m4a e fazer o download / salvá-lo como um m4a (AAC LC) sem perda de qualidade? Até agora, estou usando ffmpeg -i input.m4a -vn -acodec copy output.m4apara converter cada arquivo para que ele seja reproduzido corretamente no Winamp.

Dom
fonte

Respostas:

5

O youtube-dl 2015.01.23.4 e mais recente corrigem automaticamente o cabeçalho do arquivo m4a se ffmpeg estiver presente no sistema.

Fonte: youtube-dl: os arquivos do YouTube m4a baixados com --extract-audio não podem ser reproduzidos em alguns players
Tudo o que você precisa fazer é adicionar o caminho ao diretório que contém o binário ffmpeg à variável de caminho do sistema (como no Windows 7):

Ou use o --ffmpeg-location <path to ffmpeg binary or its containing directory>argumento da linha de comando ao chamar o youtube-dl, para permitir que o youtube-dl através do ffmpeg corrija isso automaticamente.

galacticninja
fonte
Minha pergunta foi apropriada em 14 de novembro. O autor do youtube-dl abordou a questão em 15 de janeiro. Ainda bem que faz parte do youtube-dl agora.
Sun
6

Não, você precisa de uma segunda etapa de conversão.

O problema é que, para o YouTube DASH, o contêiner MP4 ftyptem a "principal marca" definida como dashalternativa m4a. Essa é a abordagem correta para o streaming de DASH, mas o Winamp é muito antigo para reconhecê-lo (e muitos outros programas).

Agora, o que seria uma sugestão razoável é criar uma solicitação de recurso para o youtube-dl para adicionar suporte de pós-processamento para o ffmpeg para converter a principal marca do contêiner MP4 em algo mais compatível. Mas, no momento, tal coisa não existe.

Ou envie um relatório de bug para o Winamp para incluir suporte à decodificação de dashmarcas. Como é provável que dependa de um plug-in de decodificador de terceiros, isso provavelmente significa gerar um relatório de erro em outro lugar também.

slhck
fonte
Você acha que os parâmetros ffmpeg que estou usando atualmente são os melhores para convertê-lo de MPEG DASH m4a para AAC LC m4a?
Sun
2
Sim. Na verdade, você não está convertendo o próprio fluxo de bits de áudio - está apenas alterando os metadados. Este é um processo sem perdas, para que você não perca a qualidade do áudio.
Slhck 7/11
Não é uma opinião. A construção do Winamp parece ser muito antiga para implementar as marcas (bastante recentes) MPEG-4 do padrão MPEG-DASH. Outro software suporta isso. E, como eu disse, alguns outros programas podem falhar.
slhck #
1

Tomei a liberdade de usar seu ffmpegcomando e é isso que eu tenho:yt "My Youtube File.mp4"

Um arquivo yt.batcolocado no system32 contendo:

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

* renomeia automaticamente para m4a, que pode ser alterado no código.

** ele precisa passar pelo arquivo temporário e, em seguida, usar rm, mv; caso contrário, o arquivo e o nome do arquivo serão corrompidos.

Qwerty
fonte
1
@ sunk818 Você está absolutamente certo sobre a exclusão do arquivo, caso algo dê errado. Acho que poderia adicionar algum tipo de cheque. ..Mas, então, eu executo este comando logo após o download do youtube, para que eu possa baixá-lo novamente.
Qwerty