Videos FLV en tu sitio web
Publicado por criadoindomable en Martes, Diciembre 12, 2006 16:08
Seguramente habrán visto vídeos desde los sitios de Google Video o YouTube y se quedaron pensando. ¿Puedo hacerlo en mi sitio web?
Gracias a una serie de programas libres es posible pasar casi cualquier formato de vídeo (AVI, MPEG, WMV, OGG) al formato FLV o Flash Video y luego dejarlo embebido en una página web sin más esfuerzo que poner un programa libre que lo reproduzca. Se contara además con capacidad de streming de los vídeos servidos.
Programas utilizados:
ffmpeg
flvtool2
FlowPlayer
Servidor GNU/Linux con Apache web server.
Uso del FFmpeg:
Para hacer la conversión de audio y vídeo se puede utilizar el programa ffmpeg el cual es un programa libre con licencia LGPL y que cuenta con muchas características como por ejemplo, tomar la fuente en vivo o convertir de un sample rate a otro.
y un tamaño de archivo resultante que es inferior al 10% del tamaño original (esto puede variar
Ejemplo de conversión al formato FLV:
ffmpeg -i video.mpg -acodec mp3 -ar 22050 -ab 32 -f flv -s 288×216 video.flv
(*) Nota: en este ejemplo se utilizo el codec mp3, que siendo el mismo un formato patentado se uso por compatibilidad.
Los parámetros son:
-acodec : Fuerza un codec determinado, se pueden ver los codec ingresando ffmpeg -formats
-ar: Setear la frecuencia de sampleo del audio
-ab: Setear el bitrate de audio
-f: Fuerza el formato de salida
-s: Setear el frame size
Se puede encontrar muchas más opciones para pasarle al ffmpeg en la página de documentación del programa.
http://ffmpeg.mplayerhq.hu/ffmpeg-doc.html
Uso del flvtool2:
Una vez que hayamos hecho la conversión, se necesita pasarlo por este programa hecho en Ruby que incrusta los meta datos necesario para poder usar la barra de progreso del reproductor embebido.
Para hacer esto bastara con ingresar:
flvtool2 -UP video.flv
Si se encuentran con el siguiente error
/usr/local/lib/site_ruby/1.8/flv/amf_string_buffer.rb:163: [BUG] Segmentation fault
es hay que arreglar algo en los fuentes de este programa que al momento de escribir este articulo todavía no esta corregido.
En el archivo amf_string_buffer.rb
Cambiar esto:
write [(time.to_i * 1000.0)].pack(’G')
por esto:
write [(time.to_f * 1000.0)].pack(’G')
Ahora volver a intentar la orden anterior.
Uso de FlowPlayer:
Flowplayer es un reproductor de flash totalmente libre que cuenta con diversas posibilidades, como la de poner un jpg al inicio par hacer click en él y que comience el vídeo, cambiar los skins, y hacer streaming del flv que suban.
Para poder usarlo tendrán que sunbir el archivo FlowPlayer.swf y el FLV que hayan generado a un directorio del apache que tenga permiso de lectura.
Luego, en la página que quieran incrustar el vídeo poner lo siguiente:
<object type=”application/x-shockwave-flash” data=”FlowPlayer.swf”
width=”480″ height=”360 id=”FlowPlayer”>
<param name=”allowScriptAccess” value=”sameDomain” />
<param name=”movie” value=”FlowPlayer.swf” />
<param name=”quality” value=”high” />
<param name=”scale” value=”noScale” />
<param name=”wmode” value=”transparent” />
<param name=”flashvars” value=”videoFile=video.flv&
autoPlay=true&loop=false&autoBuffering=true
&initialScale=fit&”/>
</object>
Para que este ejemplo funcione, tanto la página web como el video.flv y el FlowPlayer.swf tienen que estar en el mismo directorio.
Podrán encontrar más ejemplos en la página de FlowPlayer.
Nota final:
Esta solución no es lo libre que quisiera que fuera, pero lo es bastante.
Es recomendable ver soluciones con ffmpeg2theora y VLC para reproducir a fin de contar con una solución 100% libre. Estoy en esa investigación
Anexo:
Muchas personas me han escrito mails preguntandome sobre la implementación sobre IIS (lo cual no aconsejo para nada por ser una plaaforma privativa).
Aquí va la explicación:
La gran diferencia que se encontraran es que se necesita escapar los “&” de la ultima linea poniendolos como “&”.
Otra cosa es poner el archivo FlowPlayer.swf en un lugar que tenga permiso, para esto vas a tener que tener aaceso al servidor web.
Para más info, sugiero que se vea la página de FlowPlayer.
http://flowplayer.sourceforge.net/
Allí se podrá obtener más información sobre los parametros también.




Salvo que se indique expresamente lo contrario, las obras de mi autoría incluidas en este blog se distribuyen bajo una licencia de
Gonzalo escribió
Muy bueno Seba.
LeitoMonk escribió
Y los que usamos linux en PPC ¿Cómo lo vemos?
Seba, bien, pero mal :p
RanchoX escribió
para LeitoMonk, los que usamos linux en ppc siempre tibimos y bamos a tenes ese problema.
Para el autor de esta pagina:
MUY BIEN, MUCHAS GRACIAS!!!
criadoindomable escribió
De nada
Javier escribió
Tengo las animaciones en SWF…¿alguien sabe con qué soft convertirlas en FLV?
Gracias. Javier.
criadoindomable escribió
Podes pasarlo a AVI primero y después a flv
ffmpeg -i x.swf x.avi
No lo he probado, pero tendría que funcionar
Alex escribió
Excelente mi estimado
Buen dato , estoy en la creacion de un administrador de contenidos y tu info me esta dando piso para continuar.
suerte con la info q sigas preparando, ahora q se por donde empezar a buscar info sobre como instalar las librerias… xD
salu2…
Ata escribió
Hola, muy interesante tu articulo.
La razon de este comentario es el siguiente:
Tengo el ffmpeg en EXE para windows, al cual le paso los siguientes parametros…
— ffmpeg -i video.avi -acodec mp3 video_flash.flv —
Si bien exporta correctamente el video al formato FLV para luego ser reproducido por flash no consigo que exporte el sonido.
Tras tener este problema intente con los siguiente parametros
— ffmpeg -i video.avi -acodec mp3 -ar 22050 -ab 32 -f flv -s 288×216 video_flash.flv —
Pero tampoco pude solucionar el tema del sonido, lo unico que logro es exportar el video solo, sin el audio.
La verdad que estoy un poco desorientado, si puedes ayudarme te lo agradecere mucho!.
Saludos y gracias de antemano y perdon por postear de vuelta, me interpreto algunas lineas del comentario como html
criadoindomable escribió
No sabría aclararte la duda en Windows, ya que al ser una plataforma privativa, no la utilizo.
Ata escribió
Gracias de todos maneras, voy a seguir intentando. En caso de no obtener buenos resultados probare bajo linux…
Saludos…
criadoindomable escribió
Contestación para Fedush:
La
gran diferencia que encontraras es que necesitas escapar los “&” de la
ultima linea poniendolos como “&”.
Otra cosa es poner el archivo FlowPlayer.swf en un lugar que tenga
permiso, para esto vas a tener que tener aaceso al servidor web.
Fijate bien el ejemplo, donde dice http://www.tuweb.com es donde tenes que
poner la dirección del sitio. FIjate que hace referencias a una
carpeta videa y dentro de ella flowplayer.
#
#
#
#
#
#
#
#
#
#
#
#
#
Para más info, te sugiero que veas la página de FlowPlayer.
http://flowplayer.sourceforge.net/
Allí podrás obtener información sobre los parametros también.
supermuka escribió
puse un video flv con codigo en un swf. mi problema es q quiero controlarlo externamente. lo 1ro q hice fue crear botones a mi gusto como play y stop, luego mi cliente me dijo q ue le gustaria q apareciera la barra de estado del video, entonces jale al escenario el componente bufferingBar, lo q no se es q codigo usar para q mi barra funcione, alguien me puede ayudar por favor?
federico escribió
buenisimo el tutorial!
cuando ejecuto
fmpeg -i tandiltromso.avi -acodec mp3 -ar 22050 -ab 32 -f flv tandiltromso.flv
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2004 Fabrice Bellard built on Sep 20 2006 00:26:15, gcc: 4.1.2 20060906 (prerelease) (Ubuntu 4.1.1-13ubuntu2)
Seems that stream 0 comes from film source: 2997.00 (2997/1) -> 29.97 (30000/1001)
Input #0, avi, from ‘tandiltromso.avi’:
Duration: 00:01:57.4, start: 0.000000, bitrate: 803 kb/s
Stream #0.0: Video: mpeg4, yuv420p, 360×240, 29.97 fps(r)
Stream #0.1: Audio: mp3, 48000 Hz, stereo, 192 kb/s
File ‘tandiltromso.flv’ already exists. Overwrite ? [y/N] y
Output #0, flv, to ‘tandiltromso.flv’:
Stream #0.0: Video: flv, yuv420p, 360×240, q=2-31, 200 kb/s, 29.97 fps(c)
Stream #0.1: Audio: 0×0000, 22050 Hz, stereo, 32 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Unsupported codec for output stream #0.1
algo pasa con el audio, el original esta en 48000 y parece q FLV soporta hasta 44000. nada, me tira error. se te ocurre algo. gracias de antemano!
criadoindomable escribió
Fijate que le estas diciendo en el comando que lo pase a 22050 (-ar) y eso es lo que hace.
fmpeg -i tandiltromso.avi -acodec mp3 -ar 22050 -ab 32 -f flv tandiltromso.flv
Saludos.-
Fixxxer escribió
Oye, ¿es posible con el ffmpeg convertir directo de un video mpg a formato .swf? Porque ya comprobe que si lo convierte a .flv, pero yo necesito el .swf. Pero me marca lo siguiente:
/usr/bin/ffmpeg -i ninja.mpg -ar 22050 -ab 32 -f swf -s 720x480 ninja.swf
...
Output #0, swf, to 'ninja.swf':
Stream #0.0: Video: flv, yuv420p, 720x480, q=2-31, 200 kb/s, 30.00 fps(c)
Stream #0.1: Audio: 0x0000, 22050 Hz, stereo, 32 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Unsupported codec for output stream #0.1
Saludos.
Leon Martinez escribió
Criadoindomable:
No se mucho de código web, agradezcote me envies una plantilla de pagina web con el código incluido de flowplayer mas una playlist para cinco videos. Los videos se colocaran en formato flv por lo que no se encesita la conversión.
Gracias.-
SAPINTO escribió
Oye, ¿es posible con el ffmpeg convertir directo de un video mpg a formato .swf?
imposible según mi experiencia; el flv es un flash video, el swf es el player que reproduce el flv.
lo que intuyo que necesitas es pasar el o los .flv a una carpeta, con php leer el contenido de la misma, generar un xml y a través de loadvars cargar los flvs en el player.
como ves, el player es siempre el mismo, el contenido que lee es el dinámico.
gonpre escribió
Hola queria saber si se puden utilizar estos programas bajo un hosting contratado con linux y como… espero me puedas ayudar gracias.
criadoindomable escribió
Gonpre, si es posible, mira que lo que pongo en el articulo lo único que necesita es que puedas subir el flowplayer y que puedas editar el HTML.
gonpre escribió
Gracias por la respuesta tan pronta, pero a lo que me referia era a convertir los videos que se suban a flv, y ya despues estos reproducirlos. Mas bien me refiero al FFmpeg. Saludos =D
criadoindomable escribió
La conversión tienes que hacerla fuera del hosting y después subir el FLV resultante.
nico escribió
Hola amigos miren mi problema es este, puedo compilar sin audio pero cuando incluyo el audio da este error que puede ser?
tengo un fedora 4
ffmpeg -i 13.mpg -acodec mp3 -f flv -s 288×216 testt.flv
FFmpeg version SVN-r9451, Copyright (c) 2000-2007 Fabrice Bellard, et al.
configuration: –enable-shared –enable-libmp3lame
libavutil version: 49.4.1
libavcodec version: 51.40.4
libavformat version: 51.12.1
built on Jul 10 2007 18:14:35, gcc: 4.0.2 20051125 (Red Hat 4.0.2-8)
Input #0, mpeg, from ‘13.mpg’:
Duration: 00:04:18.7, start: 0.180000, bitrate: 1715 kb/s
Stream #0.0[0x1e0]: Video: mpeg1video, yuv420p, 320×240, 1547 kb/s, 29.97 fps(r)
Stream #0.1[0x1c0]: Audio: mp2, 44100 Hz, stereo, 112 kb/s
Output #0, flv, to ‘testt.flv’:
Stream #0.0: Video: flv, yuv420p, 288×216, q=2-31, 200 kb/s, 29.97 fps(c)
Stream #0.1: Audio: 0×0000, 44100 Hz, stereo, 64 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Unsupported codec for output stream #0.1
criadoindomable escribió
Nico, fijate que comento eso a Federico más arriba.
Lucero escribió
Hola… estoy convirtiendo videos desde mi página web, el problema es q con lo parámetros q me hicieron favor de mostrar anteriormente, el video q se convierte tiene un tamaño en MB de casi lo doble del original, como puedo cambiar esto para que se haga más pequeño o se comprima o algo asi???? Gracias!!!
criadoindomable escribió
Lucero, fijate por favor en las páginas de manual del ffmpeg
$man ffmpeg
Charlie escribió
alguien sabe cuales son los codecs que necesita ffmpeg para codificar el audio en el .flv?
en Ubuntu
near escribió
Hola:
Muchisimas gracias por la info esta muy buena…
sigue asi
Salu2
Leonardo escribió
Para los que quieren convertir a flv y lo hace sin audio: hay que compilar el ffmpeg, en el siguiente link está como hacerlo: http://www.ymipollo.com/~ToRo/109119.convertir-videos-a-flv-con-linux-ubuntu.html , en el config, usé las siguientes opciones: ./configure –enable-gpl –enable-pp –enable-vorbis –enable-libogg –enable-a52bin –enable-dc1394 –enable-libgsm –disable-debug –enable-mp3lame –enable-faad –enable-faac –enable-xvid y el audio anduvo sin problemas.
Suerte a todos!!
Aguante Linux!!!
Leo
Mairim escribió
diseñe mi pagina web en dreamweaver 8
y le agrege unos archivos .swf en mi computadora todo se ve muy bien pero en otras computadoras no se ven algunos archivos .swf y un archivo de diapositivas las imagenes se ven encimadas alguien podria ayudarme?
Gracias
criadoindomable escribió
No,la verdad es que no se como ayudarte, no conozco dreamweaver. Solo uso Software Libre.
Emanuel escribió
Muchas gracias por esta nota esta muy buena…
Cristian escribió
Tengo todos los archivos del Flow Player subios al servidor y el código HTML puesto en la Web tal como indicas, y funciona todo perfectamente. El problema està cuando le doy a FullScreen, parece que se abre una URL própia de los creadores del programa con publicidad. Como puedo solucionar esto?
criadoindomable escribió
Cristian, me parece que había un problema con el código del FlowPlayer
http://flowplayer.org/node/32
Te diría que lo bajes de nuevo
Cristian escribió
Criadoindomable, no era problema del código, el problema estaba en que no tenía puesto a true el useNativeFullscreen, ahora ya funciona correctamente pero aparece el logo de FlowPlayer en la esquina inferior-izquierda. Sabes como se puede hacer desaparecer?
Gracias
Hikari escribió
un programa gratis es el CINEMA FORGE pueden cambiarlos a FLV,MOV,RM,MPG,AVI
criadoindomable escribió
no lo conozco. Es libre?
criadoindomable escribió
no lo conozco. Es libre?
Isaac Paton escribió
Me interesa saber que tipo de server hay que tener para que estos videos que sirves desde la propia web se vean de una forma fluida por los usuarios.
criadoindomable escribió
La mayor carga de proceso esta del lado del cliente por el flash.
Del lado server lo que se demanda es ancho de banda.
Jose escribió
Poner videos FLV en tus paginas
http://www.publiblanes.net/video_flv/como_poner_videos_flv_en_tus_paginas.htm
Saludos y que lo disfruteis.
fabiola escribió
estimados llegué tarde a la conversación pero estoy en un problema, subí mi página y los videos que ya estaban en flv y en swf, no se ven, quisiera saber qué codigo se debe insertar para que se puedan ver en cualquier equipo, aunque notengan flash.
gracias.
criadoindomable escribió
Fabiola, me parece que estás equivocado. Esto no es un foro, es un Blog. (ver: http://es.wikipedia.org/wiki/Blog)
No hay conversación
Sobre lo que pedís, lo que ves en el articulo es lo que hay. Estoy seguro que encontraras gracias a google la respuesta para tu pregunta.
WebNostra » Blog Archive » Dónde subir los videos a internet para ponerlo en mi web escribió
[...] solución lógica es subir el vídeo y poner un player flash. Pero en esta solución hay 2 cosas, la transferencia mensual que tiene que soportar el servidor, y [...]
el huron de chaves escribió
Bueno, medio tarde pero para agradecer…vengo intentando hace rato poner algo asi en mi pagina y gracias a ayudas varias lo he conseguido. En realidad hice una mezcla de todo lo que he visto ultimamente, aprendi mucho en este lugar principalmente, ahora tengo un a carpeta con el reproductor flowplayer, los videos transformados con flashMX y el menu importado desde aca….y funciona..GRACIAS Oscar Ruiz el huron de gonzales chaves
pepe escribió
Para convertir a .flv si usais mencoder….
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 $1.flv $1
Sustituyhendo el $1 por el nombre del fichero a convertir.
Rafael escribió
¿esto funciona igual para un servidor sobre plataforma windows? o sea, en lugar de alojarlo en apache para linux, lo publico en inetpub/wwwroot
criadoindomable escribió
Si Rafael.
Ivan escribió
Quisiera crear una pagina web al estilo YOUTUBE, que cargue videos y sea cual sea su formato se convierta a FLV, eso quisiera que se realize a traves de codigo PHP online.
Pero no entiendo que archivos hay que subir al servidor, ya que lo pruebo localmente me funciona normal, pero el problema surge cuando se logra cargar al server.
Ivan escribió
Ah y otra cosa, quisiera saber si se necesita algun requerimiento especial en el servidor, algo asi como un servidor dedicado, o con un simple archivo dentro de una carpeta.
criadoindomable escribió
No se
Violante escribió
Muy buen artículo e investigación. Mugras gracias por compartirlo.
Andres escribió
Muy bueno tu informe, me gustaria hacerte una consulta …
Ejecuto esta linea en php para convertir videos de cualquier formato a formato FLV:
exec(”ffmpeg -i ‘$file_path’ ‘$final_file_path’”);
Me genera el archivo flv bien, PERO cuando lo veo en el player es como si se reprodujera en camara lenta, tenes idea por que puede ocurrir esto ?
criadoindomable escribió
La verdad, no se me ocurre mucho salvo que los parámetros que le estás pasando a ffmpeg no son los correctos.