Aunque existe la herramienta youtube-dl para descargar tanto un vídeo como para extraer el audio sólo, con FFMPEG puedes hacer bastantes cosas más, como por ejemplo extraer el audio de ese vídeo pero en formato OGG.
Suponiendo que tienes FFMPEG instalado y youtube-dl con un vídeo según tu gusto, vamos a hacer un breve tutorial para extraer el audio con FFMPEG y no directamente con la herramienta youtube-dl.
Me he descargado un vídeo, en este caso de Triana, cuyo formato es WEBM.
Primero recibamos información:
ffprobe triana.webm
Salida:
Ahora que conocemos la información de audio, extraeremos el audio del vídeo sin recodificarlo:
ffmpeg -i triana.webm -vn -acodec copy triana.ogg
Salida:
[pedro@gnu-pedro ~]$ ffmpeg -i triana.webm -vn -acodec copy triana.ogg ffmpeg version n4.2.1 Copyright (c) 2000-2019 the FFmpeg developers built with gcc 9.2.0 (GCC) configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbl uray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable -libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enabl e-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-li bspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enab le-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-l ibxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3 libavutil 56. 31.100 / 56. 31.100 libavcodec 58. 54.100 / 58. 54.100 libavformat 58. 29.100 / 58. 29.100 libavdevice 58. 8.100 / 58. 8.100 libavfilter 7. 57.100 / 7. 57.100 libswscale 5. 5.100 / 5. 5.100 libswresample 3. 5.100 / 3. 5.100 libpostproc 55. 5.100 / 55. 5.100 Input #0, matroska,webm, from 'triana.webm': Metadata: ENCODER : Lavf58.29.100 Duration: 00:04:23.90, start: -0.007000, bitrate: 286 kb/s Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv), 640x480, SAR 1:1 DAR 4:3, 30 fps, 30 tbr, 1k tbn, 1k tbc (default) Metadata: DURATION : 00:04:23.799000000 Stream #0:1(spa): Audio: opus, 48000 Hz, stereo, fltp (default) Metadata: DURATION : 00:04:23.901000000 Output #0, ogg, to 'triana.ogg': Metadata: encoder : Lavf58.29.100 Stream #0:0(spa): Audio: opus, 48000 Hz, stereo, fltp (default) Metadata: DURATION : 00:04:23.901000000 encoder : Lavf58.29.100 Stream mapping: Stream #0:1 -> #0:0 (copy) Press [q] to stop, [?] for help size= 4384kB time=00:04:23.88 bitrate= 136.1kbits/s speed=5.89e+03x video:0kB audio:4351kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.759672% [pedro@gnu-pedro ~]$
Explicando un poco para entenderlo. El comando, -i se utiliza para especificar la ruta y el nombre de archivo del vídeo de entrada, -vn omite la inclusión de la secuencia de vídeo, mientras que -acodec copy es para copiar el audio original (sin recodificar).
Ahora vamos a extraer sólo una parte del audio del vídeo, utilizando el mismo formato de audio OGG:
ffmpeg -i triana.webm -ss 00:03:30 -t 00:05:00 -vn -acodec copy audio.ogg
Salida:
Con -ss damos un comienzo mientras que con -t damos el final. Como puedes observar, he extraido desde el minuto 03,30 a 05,00.
FFMPEG normalmente audo-detecta el formato de salida de la extensión que se introduce para los archivos de salida, por lo que en la mayoría de los casos no es necesario especificar el formato/código. Pero si quieres especificar el codec, añade -codec:a libmp3lame para convertirlo a mp3:
ffmpeg -i triana.webm -codec:a libmp3lame triana.mp3
Como puedes obervar, FFMPEG es una gran herramienta para convertir archivos multimedia. No sólo codifica de un formato a otro en el caso de los vídeos, sino que también extrae el audio y lo transforma.
Fuente: maslinux