Editando video con Mencoder y ffmpeg

12 marzo 2011



Mencoder es una herramienta muy potente que viene en el paquete mplayer y permite trabajar con archivos de audio y video.
mencoder genera ficheros en formato AVI a no ser que se le indique lo contrario.
En Debian o derivadas de la misma se instala desde un terminal:
sudo apt-get install mencoder
También usaremos ffmpeg otra potente herramienta, en este caso solo veremos algunas opciones ya que en una proxima entrega haremos un uso mas intensivo de ffmpeg.

Se utiliza:
mencoder {videos de entrada} [opciones] [-o archivo de salida]

Como se ve puede utilizarse para encadenar varios archivos de video:
mencoder video1.avi video2.avi -o pelicula_destino.avi
Para forzar a mencoder a mantener todos los parametros al unir:
mencoder -oac copy -ovc copy -idx -o pelicula_destino.avi parte1.avi parte2.avi

Algunas de las opciones más utiles son:
oac (output audio codec) {copy,pcm,mp3lame,lavc} 
libavc utiliza un codec de la libreria libavcodec

ovc (output video codec) {copy,divx4,raw,libavc} 
vf (video filter) 
flip (Voltear arriba-abajo)

mirror (Voltear derecha-izquierda) 
rotate[=...] (Girar) 
scale[=...] (Escalar) 
crop[=...] (Recortar) 
denoise3d[=...] (intenta eliminar el ruido) 
hqdn3d[=...] (intenta eliminar el ruido con mayor calidad) 
eq[=brillo:contraste] (Modifica los colores) 
eq2[=...] (Modifica los colores) 


Ejemplos:
Reproducción rápida de DVD

mplayer dvd://1

Codificar videos como mpeg 
mencoder video1.avi video2.avi -of mpeg -o pelicula_destino.mpg

Para rotar vídeos que hemos grabado con cámaras de fotos en modo vertical, en vez de horizontal, podemos hacer:
mencoder -vf rotate=1 pelicula_origen.avi -oac mp3lame -ovc lavc -o pelicula_destino.avi
o bien:
mencoder -vf rotate=1,hqdn3d,eq=25:50 -oac pcm -ovc lavc pelicula_origen.avi -o pelicula_destino.avi
Si además queremos añadir bandas negras a los lados para que el vídeo resultante mantenga las proporciones de imagen de los vídeos horizontales podemos hacer:
mencoder -vf rotate=2,expand=-176:0:88:0 -oac pcm -ovc lavc pelicula_origen.mov -o pelicula_destino.avi
Rotar un video, quitarle el ruido y darle más luz 
mencoder -vf rotate=1,hqdn3d,eq=75:100 -oac pcm -ovc lavc pelicula_origen.avi -o pelicula_destino.avi

Convertir parte de un video a AVI con codec Xvid 
mencoder pelicula_origen.ogg -ss 10 -endpos 01:42:55.5 -oac pcm -ovc lavc -lavcopts vcodec=xvid:mbd=2:trell:autoaspect -o pelicula_destino.avi

Codificar los capítulos 10-15 del título 2 de un DVD, redimensionando 
mencoder dvd://2 -chapter 10-15 -vf scale=640:480 -o titulo2.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4

Igual pero con libavcodec 
mencoder dvd://2 -o titulo2.avi -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=1800 -oac copy

Codificación de archivos jpg 
mencoder “mf://*.jpg” -mf fps=25 -o salida.avi -ovc lavc -lavcopts vcodec=mpeg4

Codificar video con un fichero de audio externo 
mencoder pelicula_origen.avi -o pelicula_destino.avi -ovc copy -oac pcm -audiofile audio.wav
Con un audio ya codificado
mencoder pelicula_origen.avi -o pelicula_destino.avi -ovc copy -oac copy -audiofile ArchivoAudio.mp3

Por ejemplo al usar -oac copy podemos utilizar ya un archivo codificado, sea cual sea el formato. Si quisieramos extraeriamos el audio, lo editamos con audacity, exportamos (en el caso del ejem en mp3) y lo pegamos al video.

Extraer audio de un video a wav
mplayer -vo null -vc dump -ao pcm:file="nombreaudio.wav" "pelicula_origen.avi"

Eliminar audio de un video
mencoder -ovc copy -nosound pelicula_origen.avi -o pelicula_destino.avi

Aumentar el volumen en un video
mencoder -ovc copy -oac mp3lame -lameopts abr:br=128:vol=7 -o pelicula_destino.avi pelicula_origen.avi

Pegar subtítulos en un vídeo 
mencoder -oac copy -ovc lavc -sub subtitulos.srt -subcp latin1 -font “/usr/share/fonts/truetype/freefont/FreeSansBold.ttf” -subfont-text-scale 3.8 -o pelicula_destino.avi pelicula_origen.avi 
Donde:
subtitulos.srt es el archivo de subtitulos

Cortar un AVI desde el segundo 5 hasta los 30 segundos.
mencoder -ovc copy -oac copy -ss 5 -endpos 30 -o pelicula_destino.avi pelicula_origen.avi
Donde:
pelicula_origen.avi, es el archivo original a cortar.

-ss, es el tiempo en el que inicia el corte (de preferencia trabajen con segundos, porque también lo pueden hacer con Mb. pero eso sería en el caso de cortar los videos en partes mas pequeñas).

-endpos, es el tiempo en el que termina el corte (trabajen con segundos también).

pelicula_destino.avi, es el archivo cortado (cuidado con el nombre que ponemos, que si sobreescribimos el original nos traerá problemas y error con el video).

-oac copy, para copiar el mismo códec de Audio.

-ovc copy, para copiar el mismo códec de Vídeo.

CONVERSIÓN DE FORMATOS

Convertir AVI a DVD PAL 
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf scale=720:576,harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800 :vbitrate=5000:keyint=15:vstrict=0:acodec=ac3:abitrate=192 :aspect=16/9 -ofps 25 -o pelicula_destino.mpg pelicula_origen.avi 

Con ffmpeg
ffmpeg -i pelicula_origen.avi -target pal-dvd pelicula_destino.mpeg

Convertir AVI a DVD NTSC 
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf-vf scale=720:480,harddup -srate 48000 -af lavcresample=48000-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800 :vbitrate=5000:keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 30000/1001 -o pelicula_destino.mpg pelicula_origen.avi 

Con ffmpeg
ffmpeg -i pelicula_origen.avi -target ntsc-dvd pelicula_destino.mpeg

Convertir AVI con audio AC-3 a DVD PAL 
mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf scale=720:576,harddup -ofps 25 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800 :vbitrate=5000:keyint=15:vstrict=0:aspect=16/9 -o pelicula_destino.mpg pelicula_origen.avi 

Convertir AVI con audio AC-3 a DVD NTSC 
mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf:telecine -vf scale=720:480,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800 :vbitrate=5000:keyint=15:vstrict=0:aspect=16/9 -ofps 24000/1001-o pelicula_destino.mpg pelicula_origen.avi 

Convertir AVI a SVCD PAL 
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf scale=480:576,harddup -srate 44100 -af lavcresample=44100 -lavcopts vcodec=mpeg2video:mbd=2:keyint=15:vrc_buf_size=917: vrc_minrate=600:vbitrate=2500:vrc_maxrate=2500 :acodec=mp2:abitrate=224:aspect=16/9 -ofps 25 -o pelicula_destino.mpg pelicula_origen.avi 

Convertir AVI a SVCD NTSC 
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf scale=480:480,harddup -srate 44100 -af lavcresample=44100 -lavcopts vcodec=mpeg2video:mbd=2:keyint=18:vrc_buf_size=917 :vrc_minrate=600:vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224:aspect=16/9 -ofps 30000/1001 -o pelicula_destino.mpg pelicula_origen.avi 

Convertir AVI a VCD PAL 
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf scale=352:288,harddup -srate 44100 -af lavcresample=44100 -lavcopts vcodec=mpeg1video:keyint=15:vrc_buf_size=327:vrc_minrate=1152: vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224:aspect=16/9 -ofps 25 -o pelicula_destino.mpg pelicula_origen.avi 

Convertir AVI a VCD NTSC 
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf scale=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224:aspect=16/9 -ofps 30000/1001 -o pelicula_destino.mpg pelicula_origen.avi 

Convertir AVI a MPG 
mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video:vbitrate=1100 -ofps 25 -oac lavc -lavcopts acodec=mp2:abitrate=128 -srate 44100 -vf pp=hb/vb/dr/al/lb -o película_destino.mpg película_origen.avi 

Convertir FLV a AVI 
mencoder -ofps 15 -vf scale=300:-2 -oac lavc -ovc lavc -lavcopts vcodec=msmpeg4v2:acodec=mp3:abitrate=64 -o pelicula_destino.avi pelicula_origen.flv 

Convertir AVI a FLV 
mencoder -forceidx -of lavf -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc -lavcopts vcodec=flv:vbitrate=250:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -vf scale=360:240 -o pelicula_destino.flv pelicula_origen.avi 

Convertir AVI a MP4 
mencoder -oac copy -of lavf -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo -lavfopts format=mp4 -o pelicula_destino.mp4 pelicula_origen.avi 

Convertir MOV a AVI 
mencoder -oac mp3lame -srate 22050 -ovc lavc -lavcopts vcodec=mjpeg -o pelicula_destino.avi pelicula_origen.mov 

Convertir WMV a AVI 
mencoder -ovc lavc -lavcopts vcodec=mpeg4:vqscale=3:vhq:v4mv:trell:autoaspect -oac mp3lame -o pelicula_destino.avi pelicula_origen.wmv 

Convertir MKV a AVI 
mencoder -ovc lavc -lavcopts vcodec=mpeg4:vqscale=3:vhq:v4mv:trell:autoaspect -oac mp3lame -o pelicula_destino.avi pelicula_origen.mkv 

Convertir OGM a AVI 
mencoder -ovc lavc -lavcopts vcodec=mpeg4:vqscale=3:vhq:v4mv:trell:autoaspect -oac mp3lame -o pelicula_destino.avi pelicula_origen.ogm 


No hay comentarios:

Publicar un comentario