Criado Indomable

Un intento de Blog de Sebastián D. Criado – 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0

Videos FLV en tu sitio web

Posted by criadoindomable en Martes, diciembre 12, 2006 16:08

Software LibreSeguramente 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 :D

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 “&amp;”.

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.

58 comentarios to “Videos FLV en tu sitio web”

  1. Gonzalo said

    Muy bueno Seba.

  2. LeitoMonk said

    Y los que usamos linux en PPC ¿Cómo lo vemos? ;)

    Seba, bien, pero mal :p

  3. RanchoX said

    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!!!

  4. De nada ;)

  5. Javier said

    Tengo las animaciones en SWF…¿alguien sabe con qué soft convertirlas en FLV?
    Gracias. Javier.

  6. 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

  7. Alex said

    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…

  8. Ata said

    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 :(

  9. No sabría aclararte la duda en Windows, ya que al ser una plataforma privativa, no la utilizo.

  10. Ata said

    Gracias de todos maneras, voy a seguir intentando. En caso de no obtener buenos resultados probare bajo linux…

    Saludos…

  11. Contestación para Fedush:
    La
    gran diferencia que encontraras es que necesitas escapar los “&” de la
    ultima linea poniendolos como “&amp”.
    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.

  12. supermuka said

    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?

  13. federico said

    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: 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

    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!

  14. 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.-

  15. Fixxxer said

    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.

  16. 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.-

  17. SAPINTO said

    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.

  18. gonpre said

    Hola queria saber si se puden utilizar estos programas bajo un hosting contratado con linux y como… espero me puedas ayudar gracias.

  19. 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.

  20. gonpre said

    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

  21. La conversión tienes que hacerla fuera del hosting y después subir el FLV resultante.

  22. nico said

    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: 0x0000, 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

  23. Nico, fijate que comento eso a Federico más arriba.

  24. Lucero said

    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!!!

  25. Lucero, fijate por favor en las páginas de manual del ffmpeg

    $man ffmpeg

  26. Charlie said

    alguien sabe cuales son los codecs que necesita ffmpeg para codificar el audio en el .flv?

    en Ubuntu

  27. near said

    Hola:

    Muchisimas gracias por la info esta muy buena…

    sigue asi

    Salu2

  28. Leonardo said

    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

  29. Mairim said

    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

  30. No,la verdad es que no se como ayudarte, no conozco dreamweaver. Solo uso Software Libre.

  31. Emanuel said

    Muchas gracias por esta nota esta muy buena…

  32. Cristian said

    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?

  33. 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

  34. Cristian said

    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

  35. Hikari said

    un programa gratis es el CINEMA FORGE pueden cambiarlos a FLV,MOV,RM,MPG,AVI

  36. no lo conozco. Es libre?

  37. no lo conozco. Es libre?

  38. 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.

  39. La mayor carga de proceso esta del lado del cliente por el flash.
    Del lado server lo que se demanda es ancho de banda.

  40. Jose said

    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.

  41. fabiola said

    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.

  42. 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 :D
    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.

  43. [...] 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 [...]

  44. 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

  45. pepe said

    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.

  46. Rafael said

    ¿esto funciona igual para un servidor sobre plataforma windows? o sea, en lugar de alojarlo en apache para linux, lo publico en inetpub/wwwroot

  47. Si Rafael.

  48. Ivan said

    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.

  49. Ivan said

    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.

  50. No se

  51. Violante said

    Muy buen artículo e investigación. Mugras gracias por compartirlo.

  52. Andres said

    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 ?

  53. Carlos said

    Genial!, Gracias! ya lo probe en una página web y funciona muy bien!

  54. Neilo said

    Excelente el flowplayer, yo lo uso y funciona perfectamente, mi pregunta es: Cómo puedo hacer una reproducción aleatoria con los videos desde un playlist?

  55. mi consulta es leer los flv desde otro disco duro !!! y no desde la misma carpeta donde esta el html,
    ya q se debe dejar un disco exclusivo para videos e images, si no se puede leer como puedo hacerlo para mostrarlos desde el nuevo disco con una “carpeta virtual” y como se hace esto?? alguien sabe..

  56. Lolo said

    Amigos, estoy usando flowplayer y he realizado varias pruebas con distintos formatos. El que mejor se ve y me sirve es un .mov encodeado a h264, pero cuando lo subo este no tiene audio, aunque se ve de pelos. Tambien subi el mismo archivo a vimeo y ahi se escucha y se ve bien, perfecto, pero mi idea es usar flowplayer….

    Gracias, espero sus respuestas

  57. [...] Más Vistos Videos FLV en tu sitio webOgg vs Mp3, ¿estamos frente a un nuevo Betamax vs VHS?¿O es al revés?Rangos de IP infiltrados por [...]

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: