Convertir videos a FLV con FFMPEG puede ser muy laborioso. Pero, encontrando los parámetros correctos, nos genera en segundos nuestro video convertido con una calidad aceptable. Además FFMPEG es gratuito.
AVI a FLV
ffmpeg -y -i 'videoentrada.avi' -threads 2 -s 320x240 -r 30.00 -threads 1 -pix_fmt yuv420p -g 300 -qmin 3 -b 512k -async 50 -acodec mp3 -ar 11025 -ac 1 -ab 16k videosalida.flv
donde ffmpeg se invoca con los siguientes parámetros:
- -y -> sobreescribe archivo de salida
- -i ‘videoentrada.avi’ -> archivo de entrada
- -threads 2 -> hilos de decodificación
- -s 320×240 -> Tamaño de salida
- -r 30.00 -> Velocidad de cuadro (fps, cuadros x segundo)
- -threads 1 -> hilo de decodificación
- -pix_fmt yuv420p -> Formato del pixel
- -g 300 -> Grupo de tamaño de imágenes
- -qmin 3 -> Escala mínima del compresor de secuencia del video
- -b 512k -> Bitrate del video en bits/s
- -async 50 -> Método de sincronización de audio.
- -acodec mp3 -> Forzar audio codec a mp3
- -ar 11025 -> Frecuencia del muestreo de audio
- -ac 1 -> Número de canales de audio
- -ab 16k -> Bitrate del audio en bits/s
- videosalida.flv -> Es el archivo de salida en formato FLV
MPEG a FLV
ffmpeg -y -i 'videoentrada.mpg' -threads 2 -s 320x240 -r 29.97 -threads 1 -pix_fmt yuv420p -g 300 -qmin 3 -b 512k -async 50 -acodec mp3 -ar 44100 -ac 2 -ab 128k videosalida.flv
Después de varios meses probando, estos son los parámetros óptimos que he encontrado para procesar mis videos. Más información, consulta la documentación de ffmpeg.
Octubre 3, 2008 a las 9:11
mmm comoes que lo uso
Octubre 26, 2008 a las 9:54
Hola buenas mira llevo buscando para poder hacer esto hace casi 2 meses
pero nada y probe lo tuyo y tampoco me puedes echar una mano mira lo que quiero hacer es que queden los videos iguales que vimeo o blip.tv quedan asi:
contenerdor;FLVVideo;On2 VP6 Video
Audio;MPEG 1 Audio, Layer 3 (MP3)
pero no tengo manera de hacerlo si cambio con winff me sale bien el video pero el auido no sale e leido que es por una licencia de mp3 o algo asi pero ya no se que hacer mira este es el error que me da cuando hago lo que tu dices ;
30.00 -threads 1 -pix_fmt yuv420p -g 300 -qmin 3 -b 512k -async 50 -acodec mp3 -ar 11025 -ac 1 -ab 16k prueba.flvFFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-libvorbis --enable-libtheora --enable-libogg --enable-libgsm --enable-dc1394 --disable-debug --enable-shared --prefix=/usr
libavutil version: 1d.49.3.0
libavcodec version: 1d.51.38.0
libavformat version: 1d.51.10.0
built on Jul 23 2008 22:38:24, gcc: 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
Input #0, avi, from 'prueba.avi':
Duration: 00:01:16.2, start: 0.000000, bitrate: 1734 kb/s
Stream #0.0: Video: mpeg4, yuv420p, 480x360, 25.00 fps(r)
Stream #0.1: Audio: mp3, 48000 Hz, stereo, 123 kb/s
Output #0, flv, to 'prueba.flv':
Stream #0.0: Video: flv, yuv420p, 320x240, q=3-31, 512 kb/s, 30.00 fps(c)
Stream #0.1: Audio: 0x0000, 11025 Hz, mono, 16 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Unsupported codec for output stream #0.1
Diciembre 3, 2008 a las 19:34
Cholito,
Perdona por no responderte pero tu comentario estaba en la cola de SPAM y apenas lo he rescatado.
Buenas noticias!! Al usar Ubuntu tienes una manera de resolver tu problema. Lo que necesitas es LAME para que tus videos te queden como quieres.
La buena noticia es que es muy facil de instalar en Ubuntu:
sudo apt-get install lameEso es todo. Intenta volver a convertir tus videos. La técnica que describo aquí la utilizo para convertir cerca de 50 videos por semana sin ningún problema.
Enero 20, 2009 a las 22:16
y en centos?
Enero 20, 2009 a las 22:18
Lo siento, nunca he usado CentOS, sin embargo una vez instalado FFMPEG funciona igual en cualquier distribución LINUX
Enero 20, 2009 a las 22:38
hize la prueba pero no quedan como vimeo, se ven super pixeleados
Febrero 10, 2009 a las 4:34
@eduardo: eso es porque ffmpeg codifica con sorenson, no con on2 vp6. La codificación a vp6 no está soportada con ffmpeg (al menos hasta donde yo sé). Hay que usar mencoder con las dll win32 vp6vfw.dll:
http://www.mplayerhq.hu/DOCS/H.....ndows.html
http://es.kioskea.net/faq/suje.....-de-fedora
http://www.mjmwired.net/resour.....edora.html
yo lo estoy intentando, pero mencoder me da error al cargar la dll
.
Lo he instalado todo de los repositorios de fedora, quizá tenga que compilar el mencoder/mplayer, aunque parece que el error viene de la dll (la descargué y copié al directorio de dlls por las bravas) ¿Puede que haya que configurar algo?
Abril 15, 2009 a las 18:50
Hola:
Estoy trabajando con ffmpeg para pasar videos .mpeg a .flv
El problema que tengo es que una vez convertidos, al mirar las propiedades del video recien creado aparece en tasa de fotogramas = 1000 (fps), cuando por defecto debería ser 25 fps. He intentado poner la opción -r con diferentes valores (20, 25…)pero siempre me los convierte a 1000fps
Sin embargo, al convertir el mismo archivo .mpeg a .avi, si me pone la tasa de fotogramas adecuada( 25 por defecto o la que yo la especifique)
Si alguien pudiera ayudarme estaría muy agradecido.
Un saludo.
Abril 15, 2009 a las 21:34
Raúl:
Lo que solicitas se puede corregir empleando la opción -r que indica los fps que necesitas. Ejemplo sencillo:
ffmpeg -i 'archivodeentrada.mpg' -s 320x240 -r 25 archivosalida.flv
En donde:
Lo acabo de probar con un mpeg -> flv y el archivo de salida contiene 25 fps.
Suerte!!
Abril 15, 2009 a las 23:26
Amigo, tu tutorial, es muy bueno… Pero bueno, aparte de felicitarte por cno buen blog, tengo una duda que casi no he encontrado…
Recién bajé la película de The Dark Knight… es un archivo *.AVI… PEROOO… tiene DOS audios… ok?… en el totem, puedo eleir entre el audio en ingles o el castellano… yo prefiero inglés… y por otras cuestiones de los subtitulos… necesito recortar el video 34.82 segundos… pero por cuestión de los dos audios, no me deja convertir, ni recortar nada… nisiquiera extraer el audio… mira, este es mi log…
***********************
zero@zero-laptop:~/Videos/peliculas_conciertos/el_caballero_de_la_noche$ ffmpeg -i the_dark_knight2.avi -ss 00:00:34[.98] -t 180 the_dark_knight.avi
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
configuration: –enable-gpl –enable-pp –enable-swscaler –enable-pthreads –enable-libvorbis –enable-libtheora –enable-libogg –enable-libgsm –enable-dc1394 –disable-debug –enable-libmp3lame –enable-libfaadbin –enable-libfaad –enable-libfaac –enable-xvid –enable-x264 –enable-liba52 –enable-amr_nb –enable-amr_wb –enable-shared –prefix=/usr
libavutil version: 1d.49.3.0
libavcodec version: 1d.51.38.0
libavformat version: 1d.51.10.0
built on Mar 17 2009 21:37:49, gcc: 4.2.4 (Ubuntu 4.2.4-1ubuntu3)
Input #0, avi, from ‘the_dark_knight2.avi’:
Duration: 02:25:59.1, start: 0.000000, bitrate: 2267 kb/s
Stream #0.0: Video: mpeg4, yuv420p, 720×400, 23.98 fps(r)
Stream #0.1: Audio: ac3, 48000 Hz, 5:1, 192 kb/s
Stream #0.2: Audio: ac3, 48000 Hz, 5:1, 192 kb/s
Output #0, avi, to ‘the_dark_knight.avi’:
Stream #0.0: Video: mpeg4, yuv420p, 720×400, q=2-31, 200 kb/s, 23.98 fps(c)
Stream #0.1: Audio: mp2, 48000 Hz, 5:1, 64 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
[mpeg4 @ 0xb7df69a8]removing common factors from framerate
Error while opening codec for output stream #0.1 – maybe incorrect parameters such as bit_rate, rate, width or height
zero@zero-laptop:~/Videos/peliculas_conciertos/el_caballero_de_la_noche$
*******************************************************************
Checa donde dice INPUT, y donde dice OUTPUT…
Ahi está el lo completo, espero que me ayudes porfavor!!…
Cuidate, y de antemano, muchas gracias!
Abril 15, 2009 a las 23:52
Estimado Omar:
El error es simplemente de sintaxis en los parámetros de ffmpeg:
1.- -ss el formato es hh:mm:ss[.ff], en donde [ff] es la fracción de segundo y el corchete indica que es opcional, sin embargo si lo empleas no debes escribir los corchetes.
2.- -t indica la duración que quieres de salida a partir del punto de inicio indicado por -ss. El formato es el mismo que en -ss. Tú lo intentaste escribir en segundos (-t 180), lo que se traduciría a 3 minutos. (00:03:00)
Checa este ejemplo:
Aquí se sobreescribirá el archivo de salida, con la opción -y
ffmpeg -y -i the_dark_knight2.avi -ss 00:00:34.98 -t 00:03:00 the_dark_knight2.avi
Aquí cambiamos el nombre del archivo de salida
ffmpeg -i the_dark_knight2.avi -ss 00:00:34.98 -t 00:03:00 the_dark_knight2_salida.avi
Te debe funcionar bien, lo acabo de probar con un archivo AVI y me funcionó.
Suerte!!
Abril 16, 2009 a las 0:06
No me entendiste compañero… lo que pasa es ke mi archivo avi tiene DOS AUDIOS… uno es INGLES y otro en ESPAÑOL… es por eso que en el OUTPUT, no sabía a cual dirigirse, y me mandaba error… la sintaxis de los segundos está bien…
Tu archivo AVI funciono bien porq solamente tenía un audio… Por eso te dije, checa en INPUT y OUTPUT…
Pero ya lo solucioné, jejeje…
Tuve que leerme casi TODA la documentacion de FFMPEG… no manches, cuando Dios iba a editar sus videos, seguramente programó/invento FFMPEG…
Tengo mi problema solucionado un 25%… porq… aregandole un “-ac 1″ he logrado que grabe un canal de audio… solo que es el de español….
Y otra cosa, lo poco que he grabado, reduce muchisimo su calidad…
A que se debe esto?…
De ante mano, gracias!
Abril 16, 2009 a las 0:20
Omar,
Qué bueno que lo solucionaste. Respecto a la calidad puedes intentarlo agregando el parámetro: “-sameq” que indica se use la misma calidad que el archivo de entrada.
Abril 16, 2009 a las 0:30
Muchas gracias por tu aporte compañero…
Ciertamente me ayudo mucho, aunq aun no he grabado mi video como deseo…
Maldito subtitulo…
No soy quien para hacer menos el español castellano, pero pz no me gusta!!!, que quieres hacer? jejeje
Cudiate mucho, y gracias!
Junio 24, 2009 a las 17:06
parce muchas graxx, exactamente todo lo ke buscaba, me parece perfecto que hallan personas como usted que ponen a disposición de todo el mundo sus conocimientos y todo el tiempo que invierten para dar con valores óptimos, los probé, y me funcionaron a las 1000 maravillas…
cada día amo + a Linux, jejeje+
d nuevo muchas graxx!!!!!!!
Octubre 7, 2009 a las 21:17
Estimados, quisiera saber(orientenme) si aparte de todo esto (mpg to FLV) que me viene al pelo y lo mismo para el (AVI to flv) se puede poner en la misma linea de comando una marca de agua al video (una imagen o logo transparente).-
Y si se puede programar un batch para procesar varios videos a la vez..
saludos y gracias…
Octubre 8, 2009 a las 16:44
Lucas:
Este es el comando para lo que necesitas, solo que te indico requieres tener instalado vhook:
ffmpeg -i video.mpg -vhook '/usr/lib/vhook/watermark.so -f watermark.png' -y archivosalida.mpg
En donde watermark.png es el archivo que contiene la marca de agua.
Es importante que watermark.png sea de las mismas medidas que tu video, con fondo transparente y ubicando tu logo -por ejemplo- en la esquina inferior derecha, de lo contrario la imagen se sobrepondrá ocupando las dimensiones totales del video.
Suerte.
Octubre 14, 2009 a las 11:55
Hola, estoy trabajando con FFmpeg y con FFserver.
Actualmente quiero transmitir un video cuya fuente es un MOV, y quiero que el formato de salida sea M4V (formato para iPhone) y no logro hacerlo.
Tengo que configurar algo en el ffserver.conf pero no sé qué ponerle,
También cuando mi archivo de salida será un mpg, sale el archivo mpg con muy baja calidad y sin audio, me podríás ayudar porfa??
El comando que uso es este:
ffmpeg -i entrada.mov http://localhost:8090/feed1.ffm
Y mi ffserver.conf actual es este.
#———————————————-
Port 8090
# bind to all IPs aliased or not
BindAddress 0.0.0.0
# max number of simultaneous clients
MaxClients 1000
# max bandwidth per-client (kb/s)
MaxBandwidth 1000000
# Suppress that if you want to launch ffserver as a daemon.
NoDaemon
File /tmp/feed1.ffm
FileMaxSize 500M
Feed feed1.ffm
Format flv
VideoCodec flv
VideoFrameRate 50
VideoBufferSize 80000
VideoBitRate 200
VideoQMin 1
VideoQMax 5
VideoSize 320×240
PreRoll 5
Feed feed1.ffm
Format mpeg1video
AudioBitRate 32
AudioChannels 1
AudioSampleRate 44100
VideoBitRate 200
VideoBufferSize 40
VideoFrameRate 50
VideoSize 400×304
VideoIntraOnly
VideoGopSize 12
# More MPEG-4 parameters
VideoHighQuality
# Choose your codecs:
AudioCodec mp2
VideoCodec mpeg1video
Format status
#———————————————-
Enero 29, 2010 a las 21:03
Hola victor me ha servido mucho tu post pero no he podido instalar el vhook, por favor ayuda =(
Enero 29, 2010 a las 22:15
Andrés,
Hace tiempo encontré la manera de compilar FFMPEG con vhook, pero la verdad ya se me olvidó. Discúlpame, si encuentro la información, te la haré llegar a tu correo.
Enero 30, 2010 a las 1:17
okis gracias
Febrero 2, 2010 a las 15:43
que es eso que escribistes hai arriba
Febrero 12, 2010 a las 21:29
disculpa de casualidad sabes como agregar subtitulos jeje ^^
Marzo 5, 2010 a las 16:24
Hola a todos, en este momento, estoy trabajando con esta excelente librería (FFmpeg) los ejemplos en esta página me han servido mucho, he realizado un pequeño editor de vídeo (http://picasaweb.google.com/lh.....directlink) en el cual el usuario realiza una serie de cortes.
Esto se ha realizado, debido a que se ha hecho una aplicación que ayudado con otro excelente recurso como es RED5 se hace la grabación de vídeos, pero hay momentos en que se el usuario se equivoca y se necesita tan sólo quitar algunas partes de ls vídeos realizados.
Mi problema es el siguiente:
A través de una aplicación en Flash envio los cortes que deseo realizar, como son el punto inicial y final, y guardo los vídeos de forma sucesiva: video_1, video_2
El video de origen en FLV, he leído que hasta el momento para realizar la acción de “combinación” de vídeos sólo es posible con MPEG, entonces hago lo siguiente:
Creo las partes de los videos:
ffmpeg -i video_a_partir.flv -ss 00 -t 10 video_1.mpeg
ffmpeg -i video_a_partir.flv -ss 80 -t 100 video_2.mpeg
Y así sucesivamente con los cortes que se requieran, luego los combino, leyendo encontré que para windows que es mi caso, se usa el comando copy
copy video_1.mpeg /b + video_2.mpeg /b video_unido.mpeg
Lo cual se hace correctamente, pero como el visor a mostrar el vídeo esta realizado en Flash, hago la conversión al formato FLV
ffmpeg -y -i video_unido.mpeg -f flv -vcodec flv -s 320×240 -ar 22050 video_final.flv
La conversión se hace de forma correcta, pero la duración del vídeo se pierde, por lo cual la reproducción no funciona de forma correcta
Viendo la información del vídeo
ffmpeg -i video_final.flv
Me da como respuesta lo siguiente
Duration: 00:00:00.00, start: 0.000000, bitrate: 64 kb/s
No sé si me hace falta algún paramétro, pero lo he intentado de varias formas y me sigue saliendo igual, espero haber sido claro en mi inquietud y agradecería cualquier ayuda que me puedieran prestar.
Muchas gracias.
Jorge Rubiano.
Marzo 6, 2010 a las 8:24
Hola a todos, ya he solucionado mi problema, la solución es la herramienta flvtool2, la cual procesa el flv resultante.
Jorge Rubiano
Noviembre 25, 2010 a las 13:30
felicitaciones por el articulo publicado me servio muchisimo, al publicar un video tutorial subido en youtube y insertado en mi http://inkscapevodcast.blogspot.com/ pero me gustaria saber cual seria la linea de commando en ffmepg para poder convertir y subir videos HD1080 a la web. Para crear mis videos tutoriales uso RecordMyDesktop en 30fps, la motivación de mi inquietud tiene como referente el blog http://screencasters.heathenx.org/ para lograr algo parecido debo contar con un servidor propio, para lo cual estoy juntando dinero para llegar a la meta.
Pero mientras hay que encontrar la forma adecuada de convertir los video para poder ser publicados en HD1080, aunque Youtube la acepta HD1080.
gracias por la ayuda prestada de antemano.
Diciembre 9, 2010 a las 4:54
Hola, acabo de encontrar un programa muy útil para Ubuntu que se llama WinFF. Es una GUI para ffmpeg y está en el centro de software Ubuntu.
Saludos!!
Diciembre 10, 2010 a las 6:56
Franco, He seguido tu consejo y desdcargué WinFF en mi Ubuntu. Es una maravilla esta GUI, pues sin mover ni configurarle absolutamente nada, realizé una conversión de un video [MOV de 720x480, H.264/AVC, 30FPS 3:41] a formato FLV y lo realizó sin un solo problema.
Gracias por tu recomendación
Marzo 22, 2011 a las 22:15
Muchas gracias, por fin me quedó un FLV liviano y de buena calidad a la vez. Saludos desde Santiago de Chile.
Septiembre 14, 2011 a las 23:20
Hola estuve buscando por la web y no encontré un buen tutorial para instalar ffmepg, quisiera sabes si es posible y de serlo como lo ago?? .. me encantaria convertir mis videos con ffmepg y una preguntita es rapido convirtiendo? disculpen la ignorancia jaja de antemano gracias xD y si pudieran ayudarme seria genial
Septiembre 14, 2011 a las 23:20
me olvide de aclarar tengo windows xp…
Octubre 30, 2011 a las 12:53
Tengo una pelicula que tiene el audio en AC3 y quiero pasarlo a MP3, pero solo el audio, sin tocar el video. ¿Se puede?
Salu2,