Esta semana os traigo una pequeña receta para extraer una parte concreta (un clip) de un fichero de vídeo en Linux. Para ello vamos a ver cómo hacerlo con dos herramientas diferentes de licencia libre, de forma que podamos elegir posteriormente la que más nos interese o, sencillamente, la que tengamos disponible.
Para ilustrar este truco vamos a suponer que queremos obtener un extracto de un vídeo en formato FLV a partir de una posición temporal y de una duración determinada, primero respetando los códecs de audio y vídeo originales y después convirtiéndolos a otros formatos más abiertos y estándares
En primer lugar vamos a extraer el clip con FFmpeg, un completo proyecto que incluye utilidades y librerías para la producción y gestión de activos multimedia y cuya herramienta de línea de comandos está considerada como toda una navaja suiza. En Debian instalamos FFmpeg con apt-get install ffmpeg
.
Copiando los códecs originales:
ffmpeg -ss 00:31:25 -i video_original.flv -vcodec copy -acodec copy -bsf h264_mp4toannexb -t 00:02:30 clip_video.flv
Convirtiendo los códecs:
ffmpeg -ss 00:31:25 -i video_original.flv -vcodec libxvid -acodec pcm -t 00:02:30 clip_video.avi
Como se puede ver, establecemos el punto de inicio del clip con el parámetro -ss
y la duración con -t
, mientras que el parámetro -bsf h264_mp4toannexb
sólo es necesario en el caso de vídeos FLV. Asimismo, es muy importante respetar el orden de los parámetros tal y como aparecen en los ejemplos.
La segunda opción es MEncoder, una utilidad de línea de comandos que forma parte del proyecto MPlayer, el popular reproductor multimedia. En Debian instalamos MEncoder con apt-get install mencoder
.
Copiando los códecs originales:
mencoder -ss 00:31:25 -endpos 150 -oac copy -ovc copy video_original.flv -o clip_video.flv
Convirtiendo los códecs:
mencoder -ss 00:31:25 -endpos 150 -oac pcm -ovc lavc video_original.avi -o clip_video.avi
En este caso, se establece igualmente el punto de inicio del clip con el parámetro -ss
, pero la duración se especifica con -endpos
en segundos. Asimismo, también es muy importante respetar el orden de los parámetros tal y como aparecen en los ejemplos.
Ambas herramientas se encuentran disponibles en los repositorios oficiales de Debian, pero existen versiones más modernas y completas en los de Debian Multimedia, las cuales recomiendo instalar.
Elegir una u otra opción va a depender, como decía al principio, de nuestras necesidades y de la disponibilidad de cada herramienta en nuestra plataforma de elección. Eso sí, en mis pruebas FFmpeg suele generar ficheros más pequeños y no suele necesitar de códecs externos, por lo que suele ser mi preferido.
Existen más utilidades, tanto de línea de comandos (Transcode) como gráficas (Avidemux, HandBrake), pero o bien no producen tan buenos resultados como FFmpeg y MEncoder o bien se basan en ellas para funcionar, por lo que al final es mejor usarlas directamente.
¡Hasta el truco de la semana que viene!