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.

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.


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.


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.