¿Cómo obtener la mejor calidad de audio usando youtube-dl?

16

Estoy usando youtube-dlLinux para descargar videos de YouTube y extraer el audio. Esta es mi forma de construir una pequeña colección de música.

De todos modos, sé que hay una opción --audio-quality=con 0 siendo el mejor y 9 siendo el peor. ¿Es esto todo lo que necesito hacer para obtener la mejor calidad de audio?

Además, ¿alguien sabe si descargar desde soundcloud podría obtener una mayor calidad?

usuario365967
fuente

Respuestas:

21

El --audio-qualityno afecta la calidad de audio de la fuente. Es una opción de procesamiento posterior y volverá a codificar el audio.

Dado que cualquier tipo de re-codificación (con pérdida) en realidad deteriorará la calidad de la transmisión, o al menos lo hará innecesariamente más grande en tamaño, recomendaría no procesar el audio en absoluto.

Para obtener la mejor calidad de audio posible, solo tiene que seleccionar un formato de origen de alta calidad. En realidad, youtube-dllo hará de forma predeterminada, pero puede configurarlo explícitamente con --audio-format best. YouTube (y otros proveedores) almacenan diferentes códecs de audio con diferentes velocidades de bits, y youtube-dlelegirán el mejor de ellos.

Si ha ffmpeginstalado en su sistema, youtube-dlpuede extraer el audio automáticamente:

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

De lo contrario, obtendrá un archivo de video del que deberá extraer el componente de audio.

slhck
fuente
Si ffmpegno se vuelve a codificar, ¿por qué estoy seleccionando el formato de audio? Si ingreso esa línea pero en su aaclugar, no obtengo el mismo archivo pero con una extensión diferente. Obtengo un archivo diferente con un tamaño y una tasa de bits ligeramente diferentes.
Blrp
1
Ok, pero eso realmente no responde a mi pregunta. Estoy preguntando específicamente sobre la conversión de video a audio. Si hay un comando que toma el audio de un MP4 y lo guarda como un archivo de audio sin volver a codificar, solo debería haber un resultado posible, ¿verdad? Y, sin embargo, el comando ffmpeg en su publicación produce un resultado diferente dependiendo de la extensión que seleccione para el audio. Entonces, ¿siempre hay una extensión de audio correcta, dependiendo de la extensión de video, para la cual obtengo el audio sin volver a codificar? ¿O cómo más lo hago?
Blrp
1
Ya lo veo. Primero, aclaré mi respuesta: era un poco más complejo de lo necesario. Además, tal vez esta respuesta sea ​​interesante de leer. Incluso si el flujo de bits del códec de audio no se toca (es decir, se copia), la extensión determina cómo se ajusta en un formato. No hay mapeo 1: 1 aquí. Algunos formatos requieren más espacio que otros. Puede usar ffmpeg -i in.mp4 -c:a copy -vn out.m4ay terminar con un archivo diferente ffmpeg -i in.mp4 -c:a copy -vn out.mkv, aunque ambos contienen exactamente los mismos datos de audio (y por lo tanto tienen la misma calidad de audio).
slhck
1
Estoy seguro de que no se vuelve a codificar. No tiene ninguna habilidad para hacerlo. La razón por la que obtiene las mismas tasas de bits es que YouTube tiene una variación muy limitada en las tasas de bits / códecs de audio que usan, en contraste con las representaciones de video. Tal vez YouTube sea un poco errático cuando asigna tasas de bits de video y audio, y es posible que vea una tasa de bits de audio más alta para una calidad de video más baja; en ese caso, creo que youtube-dltodavía selecciona el formato de video de mayor calidad. ¿Tienes un ejemplo de video específico?
slhck
1
Me parece bien Por ejemplo, en el segundo, cuando lo usa -xcomo una opción, descargará la variante de solo audio con la tasa de bits más alta (256k, código de formato 141, verifique con youtube-dl -F <url>). Todos los demás componentes de audio de las otras representaciones audiovisuales tienen tasas de bits más bajas.
slhck
5

Quédese con los formatos de música nativos de Youtube para evitar la codificación:

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

resultando en un m4aarchivo o

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

Este último también puede generar un oggarchivo si el formato de mayor calidad de audio es OPUS en lugar de AAC.

Puede enumerar el formato disponible con

youtube-dl -F <Video-URL>
Frank Breitling
fuente
¿Cuál es la diferencia entre bestaudio[ext=m4a]y --extract-audio? ¿Por qué el último probablemente resultaría en un oggpero no el primero?
Hashim
[ext=m4a]restringe su selección a los formatos m4a disponibles y sin --extract-audioalmacenarlo en el mismo formato de contenedor m4a. Con --extract-audiolos datos de audio se extraen y almacenan en un contenedor ogg.
Frank Breitling
Lo sentimos, es tarde, pero eso realmente no explica por qué este último daría lugar .oggespecíficamente a un archivo. ¿Por qué .oggcuando .oggno se ha especificado?
Hashim
Tengo entendido que la mejor calidad de audio disponible está en formato OPUS en lugar de AAC y luego se guarda en un contenedor ogg. He actualizado mi respuesta en consecuencia.
Frank Breitling
2

Usa el comando:

youtube-dl -f bestaudio "url"
usuario598527
fuente