Supongamos que partimos de un vídeo en formato DV (formato sin compresión habitual en las cámaras de vídeo) con la grabación completa y deseamos un fragmento. Por lo tanto, lo primero será reproducirlo para ver en que instantes de tiempo vamos a realizar los cortes. Tendremos que anotar el tiempo en que se inicia y la duración del fragmento que deseamos, todo en segundos.
Para extraer el fragmento se puede utilizar la herramienta avconv de audio y vídeo del proyecto Libav, es un proyecto de software libre para la manipulación de datos multimedia.
Su instalación en Ubuntu es muy sencilla:
sudo apt-get install libav-tools
Para trocear un vídeo utilizaremos:
avconv -i video.dv -vcodec copy --ss <inicio-en-segundos> -t <duración-en-segundos> -acodec copy trozo.dv
Probablemente el fragmento de vídeo en formato DV ocupe mucho espacio, puede ser interesante reducir su peso y perder la menor calidad posible, para ello una buena opción puede ser el codec de vídeo H.264/MPEG-4 AVC.
Convertir un vídeo a ffv1 y pcm_s16le para preservación:
avconv -vsync passthrough -i trozo.dv -vcodec ffv1 -g 1 -acodec pcm_s16le -map 0:v -map 0:a trozo.mkv
Convertir un vídeo a H.264/MPEG-4 AVC:
avconv -i trozo.dv -vcodec libx264 trozo.mp4
También nos puede interesar convertir el video a WebM, un formato de audio y vídeo diseñado libre de royaltis para su utilización en HTML5, el proyecto está respaldado por Google.
Convertir un vídeo a WebM:
avconv -i trozo.dv trozo.webm
En algunas ocasiones nos podemos encontrar que el vídeo sólo tiene un canal de audio grabado, es decir, sólo escuchamos el sonido por uno de nuestros altavoces. Para poder solucionarlo podemos utilizar la herramienta Sound eXchange (SoX), un editor de audio desde la línea de comandos publicado con licencia GNU por Chris Bagwell.
Primero habrá que extraer el audio del fragmento de vídeo, para ello haremos uso nuevamente de la herramienta avconv y lo pasaremos al formato FLAC (Free Lossless Audio Codec), FLAC es un codec de audio de baja compresión sin perdida de información, a diferencia de MP3.
FLAC es un formato abierto y libre de royaltis, soporta metadatos, posicionamiento rápido y almacenar la imagen de portada.
Extraer el audio de un vídeo:
avconv -i trozo.mp4 -f flac audio.flac
Unir varios vídeos en uno:mencoder -oac copy -ovc copy -o final.VOB trozo1.VOB trozo2.VOB
Duplicar el audio de un canal en el otro y aumentar el volumen al doble:
sox -v 2.0 audio.flac audio-completo.flac channels 1
Sox nos avisará en el caso que el aumento del volumen produzca saturación del canal, indicando el número de ondas que se han recortado en la operación. Un ejemplo de esta situación: sox WARN sox: `audio.flac' balancing clipped 638 samples; decrease volume?
Ahora toca incorporar el nuevo audio al trozo del vídeo del cual lo obtuvimos. Para ello utilizaremos avconv, donde le facilitaremos como flujo de vídeo (-i trozo.mp4) el trozo de vídeo del que partíamos y como flujo de audio (-i audio-completo.flac) el audio con el canal duplicado. También hay que indicarle a avconv que el codec de vídeo sea H.264/MPEG-4 AVC (-vcodec libx264):
avconv -i trozo.mp4 -i audio-completo.flac -map 0:0 -map 1:0 -vcodec libx264 trozo-final.mp4
En algunas ocasiones nos puede solicitar avconv un bit rate, en ese caso se lo podemos indicar de la siguiente forma para uno de 640kb/s:
Para duplicar el audio de varios vídeos se puede utilizar el siguiente script en python:
Rotar un vídeo
ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4
Capturar la pantalla en vídeo (screencast)
Tenemos que indicarle a avconv que tome la fuente del servidor Xorg (-f x11grab): avconv -f x11grab -s 1366x768 -r 25 -i :0.0 -same_quant video.mp4
Para extraer el fragmento se puede utilizar la herramienta avconv de audio y vídeo del proyecto Libav, es un proyecto de software libre para la manipulación de datos multimedia.
Su instalación en Ubuntu es muy sencilla:
sudo apt-get install libav-tools
Para trocear un vídeo utilizaremos:
avconv -i video.dv -vcodec copy --ss <inicio-en-segundos> -t <duración-en-segundos> -acodec copy trozo.dv
Probablemente el fragmento de vídeo en formato DV ocupe mucho espacio, puede ser interesante reducir su peso y perder la menor calidad posible, para ello una buena opción puede ser el codec de vídeo H.264/MPEG-4 AVC.
Convertir un vídeo a ffv1 y pcm_s16le para preservación:
avconv -vsync passthrough -i trozo.dv -vcodec ffv1 -g 1 -acodec pcm_s16le -map 0:v -map 0:a trozo.mkv
Convertir un vídeo a H.264/MPEG-4 AVC:
avconv -i trozo.dv -vcodec libx264 trozo.mp4
También nos puede interesar convertir el video a WebM, un formato de audio y vídeo diseñado libre de royaltis para su utilización en HTML5, el proyecto está respaldado por Google.
Convertir un vídeo a WebM:
avconv -i trozo.dv trozo.webm
En algunas ocasiones nos podemos encontrar que el vídeo sólo tiene un canal de audio grabado, es decir, sólo escuchamos el sonido por uno de nuestros altavoces. Para poder solucionarlo podemos utilizar la herramienta Sound eXchange (SoX), un editor de audio desde la línea de comandos publicado con licencia GNU por Chris Bagwell.
Primero habrá que extraer el audio del fragmento de vídeo, para ello haremos uso nuevamente de la herramienta avconv y lo pasaremos al formato FLAC (Free Lossless Audio Codec), FLAC es un codec de audio de baja compresión sin perdida de información, a diferencia de MP3.
FLAC es un formato abierto y libre de royaltis, soporta metadatos, posicionamiento rápido y almacenar la imagen de portada.
Extraer el audio de un vídeo:
avconv -i trozo.mp4 -f flac audio.flac
Unir varios vídeos en uno:mencoder -oac copy -ovc copy -o final.VOB trozo1.VOB trozo2.VOB
Duplicar el audio de un canal en el otro y aumentar el volumen al doble:
sox -v 2.0 audio.flac audio-completo.flac channels 1
Sox nos avisará en el caso que el aumento del volumen produzca saturación del canal, indicando el número de ondas que se han recortado en la operación. Un ejemplo de esta situación: sox WARN sox: `audio.flac' balancing clipped 638 samples; decrease volume?
Ahora toca incorporar el nuevo audio al trozo del vídeo del cual lo obtuvimos. Para ello utilizaremos avconv, donde le facilitaremos como flujo de vídeo (-i trozo.mp4) el trozo de vídeo del que partíamos y como flujo de audio (-i audio-completo.flac) el audio con el canal duplicado. También hay que indicarle a avconv que el codec de vídeo sea H.264/MPEG-4 AVC (-vcodec libx264):
avconv -i trozo.mp4 -i audio-completo.flac -map 0:0 -map 1:0 -vcodec libx264 trozo-final.mp4
En algunas ocasiones nos puede solicitar avconv un bit rate, en ese caso se lo podemos indicar de la siguiente forma para uno de 640kb/s:
avconv -i trozo.mp4 -i audio-completo.flac -map 0:0 -map 1:0 -vcodec libx264 -ab 640k trozo-final.mp4
Para duplicar el audio de varios vídeos se puede utilizar el siguiente script en python:
#!/usr/bin/python import sys, os for i in range(1,len(sys.argv)): fichero= str(sys.argv[i]) fichero_salida="%s-st.%s" % (fichero.rsplit(".",1)[0],fichero.rsplit(".",1)[1]) os.system("avconv -i %s -f flac kk.flac" % fichero) os.system("sox -v 2.0 kk.flac kk2.flac channels 1") os.system("avconv -i %s -i kk2.flac -map 0:0 -map 1:0 -vcodec libx264 %s" % (fichero,fichero_salida)) if os.path.exists("kk.flac"): os.remove("kk.flac") if os.path.exists("kk2.flac"): os.remove("kk2.flac")
El script espera que le facilitemos los vídeos a procesar como argumentos, y los convertirá a vídeos con el codec H.264/MPEG-4 AVC, el sonido en los dos canales y con el volumen duplicado.
Rotar un vídeo
ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4
Capturar la pantalla en vídeo (screencast)
Tenemos que indicarle a avconv que tome la fuente del servidor Xorg (-f x11grab): avconv -f x11grab -s 1366x768 -r 25 -i :0.0 -same_quant video.mp4
Comentarios