Últimamente trabajo con vídeos: grabando, retocando, recortando, subtitulando…
En Linux hay distintas opciones para hacerlo, pero una herramienta imprescindible para la manipulación de los mismos (en concreto para convertir de un formato a otro, recortar, etc.) es ffmpeg.
Por ejemplo, éste es uno de los comandos que suelo usar para recortar un vídeo:
ffmpeg -y -i <INPUT_FILE_NAME> -ss <START_TIME> -t <DURATION> -s 320x240 -acodec libmp3lame -ar 22050 -ac 2 -f flv <OUTPUT_FILE_NAME> |
La orden anterior sirve para recortar el vídeo de entrada INPUT, a partir de START_TIME y extendiéndose DURATION segundos. El resultado final se guardará en OUTPUT. Con eso, teóricamente valdría, pero la cuestión es que tras hacer algunas pruebas, vemos que el recorte es correcto pero se pierde la sincronía entre audio y vídeo en el archivo final. Para evitarlo, basta con recodificar: pasamos el canal de audio a mp3 con -acodec libmp3lame, a una frecuencia de 22050 Hz y 2 canales (ac 2). El resultado final será una vídeo en formato flv (-f flv).
A veces tengo una canal de audio externo (sin vídeo adjunto) que quiero recortar. Se puede hacer con sox fácilmente:
sox entrada.wav salida.wav trim 9 574 |
Recortaría el audio, comenzando en el segundo 9 (extendiéndose el recorte hasta 574 segundos más allá)
Para grabar audio, la orden desde la línea de comandos sería:
rec -r 22050 -c 2 salida2.wav |
(dos canales, a 22050 Hz)
Por supuesto, todo lo indicado se puede hacer también desde herramientas con interfaz gráfico, pero la idea es disponer de comandos que me permitan automatizar el proceso.
Convertir de .avi a .mpeg
ffmpeg -i video1.avi -sameq video1.mpeg
Extraer pista audio de video en .mp3:
ffmpeg -i nombre_video.flv nombre_archivo_audio.mp3
Funciona también para otros formatos de video, ideal por si deseamos tener el audio de algún vídeo en youtube.
Pues ya te voy a pasar un pequeño log para que me ayudes porque se me resiste la compilación del SOX para OpenMeeting.
Cuando me veas por la FISS, pregúntame y te echo un cable.