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?
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.
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:
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.
ffmpeg
não recodificar, por que estou selecionando o formato de áudio? Se eu inserir essa linha, mas comaac
, 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.ffmpeg -i in.mp4 -c:a copy -vn out.m4a
e terminar com um arquivo diferenteffmpeg -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).youtube-dl
ainda seleciona o formato de vídeo da mais alta qualidade. Você tem um exemplo de vídeo específico?-x
como 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 comyoutube-dl -F <url>
). Todos os outros componentes de áudio das outras representações audiovisuais têm taxas de bits mais baixas.Fique com os formatos de música nativos do YouTube para evitar a recodificação:
resultando em um
m4a
arquivo ouO último também pode resultar em um
ogg
arquivo se o formato de qualidade de áudio mais alto for OPUS em vez de AAC.Você pode listar o formato disponível com
fonte
bestaudio[ext=m4a]
e--extract-audio
? Por que o último provavelmente resultaria em um,ogg
mas não no primeiro?[ext=m4a]
restringe sua seleção aos formatos m4a disponíveis e sem--extract-audio
armazená-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..ogg
arquivo especificamente. Por que.ogg
quando.ogg
não foi especificado?Use o comando:
fonte