Como obter áudio da melhor qualidade usando o youtube-dl?

16

Estou usando youtube-dlno Linux para baixar vídeos do YouTube e extrair o áudio. Esta é a minha maneira de construir uma pequena coleção de músicas.

De qualquer forma, eu sei que existe uma opção --audio-quality=com 0 sendo o melhor e 9 sendo o pior. É tudo o que preciso fazer para obter o áudio de melhor qualidade?

Além disso, alguém sabe se o download do soundcloud pode obter maior qualidade?

user365967
fonte

Respostas:

21

O --audio-qualitynão afeta a qualidade do áudio da fonte. É uma opção de pós-processamento e recodifica o áudio.

Como qualquer tipo de recodificação (com perda) realmente deteriora a qualidade do fluxo - ou pelo menos aumenta desnecessariamente em tamanho - eu recomendaria não pós-processar o áudio.

Para obter a melhor qualidade de áudio possível, basta selecionar um formato de fonte de alta qualidade. Na verdade, youtube-dlfará isso por padrão, mas você pode defini-lo explicitamente --audio-format best. O YouTube (e outros provedores) armazena codecs de áudio diferentes com taxas de bits diferentes e youtube-dlescolhe o melhor deles.

Se você ffmpeginstalou no seu sistema, youtube-dlpoderá extrair o áudio automaticamente:

youtube-dl --audio-format best -x <url>

Caso contrário, você obterá um arquivo de vídeo do qual precisará extrair o componente de áudio.

slhck
fonte
Se ffmpegnão recodificar, por que estou selecionando o formato de áudio? Se eu inserir essa linha, mas com aac, em vez disso, não recebo o mesmo arquivo, mas com uma extensão diferente. Eu recebo um arquivo diferente com tamanho e taxa de bits ligeiramente diferentes.
Blrp 15/03/16
1
Ok, mas isso realmente não responde à minha pergunta. Estou perguntando especificamente sobre a conversão de vídeo em áudio. Se houver um comando que pegue o áudio de um MP4 e o salve como um arquivo de áudio sem recodificação, deve haver apenas um resultado possível, certo? E, no entanto, o comando ffmpeg na sua postagem gera um resultado diferente dependendo da extensão que eu seleciono para o áudio. Portanto, sempre há uma extensão de áudio correta, dependendo da extensão de vídeo, para a qual eu recebo o áudio sem recodificar? Ou de que outra forma eu faço isso?
Blrp
1
Eu vejo agora. Primeiro, esclarei minha resposta - era um pouco mais complexa do que o necessário. Além disso, talvez seja interessante ler esta resposta . Mesmo que o fluxo de bits do codec de áudio não seja tocado (ou seja, copiado), a extensão determina como é agrupada em um formato. Não há mapeamento 1: 1 aqui. Alguns formatos exigem mais espaço que outros. Você pode usar ffmpeg -i in.mp4 -c:a copy -vn out.m4ae terminar com um arquivo diferente ffmpeg -i in.mp4 -c:a copy -vn out.mkv, embora ambos contenham exatamente os mesmos dados de áudio (e, portanto, tenham a mesma qualidade de áudio).
slhck
1
Estou certo de que não recodifica. Não tem capacidade para fazê-lo. O motivo pelo qual você obtém as mesmas taxas de bits é que o YouTube tem uma variação muito limitada nas taxas de bits / codecs de áudio que eles usam, em contraste com as representações de vídeo. Talvez o YouTube seja um pouco irregular ao atribuir taxas de bits de vídeo e áudio, e você poderá ver uma taxa de bits mais alta para uma qualidade de vídeo mais baixa - nesse caso, acho que youtube-dlainda seleciona o formato de vídeo da mais alta qualidade. Você tem um exemplo de vídeo específico?
slhck
1
Parece bom para mim. Por exemplo, no segundo, quando você usar -xcomo opção, ele fará o download da variante apenas de áudio com a taxa de bits mais alta (256k, código de formato 141, confira com youtube-dl -F <url>). Todos os outros componentes de áudio das outras representações audiovisuais têm taxas de bits mais baixas.
slhck
5

Fique com os formatos de música nativos do YouTube para evitar a recodificação:

youtube-dl -f bestaudio[ext=m4a] --embed-thumbnail --add-metadata <Video-URL>

resultando em um m4aarquivo ou

youtube-dl -f bestaudio --extract-audio --embed-thumbnail --add-metadata <Video-URL>

O último também pode resultar em um oggarquivo se o formato de qualidade de áudio mais alto for OPUS em vez de AAC.

Você pode listar o formato disponível com

youtube-dl -F <Video-URL>
Frank Breitling
fonte
Qual é a diferença entre bestaudio[ext=m4a]e --extract-audio? Por que o último provavelmente resultaria em um, oggmas não no primeiro?
Hashim # 03:
[ext=m4a]restringe sua seleção aos formatos m4a disponíveis e sem --extract-audioarmazená-la no mesmo formato de contêiner m4a. Com o --extract-audioáudio, os dados são extraídos e armazenados em um contêiner ogg.
Frank Breitling
Desculpe, mas é tarde, mas isso realmente não explica por que o último resultaria em um .oggarquivo especificamente. Por que .oggquando .oggnão foi especificado?
Hashim
Meu entendimento é que a melhor qualidade de áudio disponível está no formato OPUS, e não no AAC, e é salva em um contêiner ogg. Atualizei minha resposta de acordo.
23419 Frank Breitling
2

Use o comando:

youtube-dl -f bestaudio "url"
user598527
fonte