Codificar o pasar video a .flv desde php

Flv es el formato de video propietario que utiliza Adobe (antes Macromedia) flash para reproducir un archivo de ese tipo en reproductores flash swf. En Vexxblog han publicado un tutorial para poder construirnos un script en php que permite pasar un video a éste formato, usando para ello las utilidades de FFMPEG, herramienta open source que nos permite pasar videos a diferentes formatos. Para acceder a ffMpeg, necesitaremos la librería ffmpeg-php.

Lo pasos a dar son estos:

flowchart

El código final es el siguiente:

$srcFile = "/path/to/clock.avi";
$destFile = "/path/to/clock.flv";
$ffmpegPath = "/path/to/ffmpeg";
$flvtool2Path = "/path/to/flvtool2";
// Create our FFMPEG-PHP class
$ffmpegObj = new ffmpeg_movie($srcFile);
// Save our needed variables
$srcWidth = makeMultipleTwo($ffmpegObj->getFrameWidth());
$srcHeight = makeMultipleTwo($ffmpegObj->getFrameHeight());
$srcFPS = $ffmpegObj->getFrameRate();
$srcAB = intval($ffmpegObj->getAudioBitRate()/1000);
$srcAR = $ffmpegObj->getAudioSampleRate();
// Call our convert using exec()
exec($ffmpegPath . " -i " . $srcFile . " -ar " . $srcAR . " -ab " . $srcAB . " -f flv -s " . $srcWidth . "x" . $srcHeight . " " . $destFile . " | " . $flvtool2Path . " -U stdin " . $destFile);
// Make multiples function
function makeMultipleTwo ($value)
{
$sType = gettype($value/2);
if($sType == "integer")
{
return $value;
} else {
return ($value-1);
}
}

Sobre Asier

Arquitecto web enganchado al desarrollo, estudio y planteamiento de proyectos en internet. Trabajo en Blackslot, empresa que fundé en el 2009. Me encanta el cine, el café, el sexo, la cultura geek, la cultura oriental y la música electrónica.
Artículo publicado en Desarrollo Web, PHP. Enlace a esta entrada..

9 espuestas a Codificar o pasar video a .flv desde php

  1. Pingback: Anónimo

  2. joel dijo:

    Hola, una pregunta con este solo archivo e instalado el ffmpeg ya podremos convertir los archivos o hay que tener algo mas, tambien les quiero preguntar si siempre se instala el ffmpeg en esta ruta en linux.

    “/path/to/ffmpeg”;

    ya que he solicitado a mi webmaster instalar el programa e intentado convertir pero no pasa nada y tampoco me saca algun error..

    que estara pasando…?????????’

  3. Claudio dijo:

    ¿Como instalo esas librerias en xampp y windows xp

  4. esteban dijo:

    cómo se pueden instlar estas libreerías en XAMPP… es igual para win q linux… saludos

  5. Ezequiel dijo:

    Tengo una pregunta, estoy haciendo una aplicacin web, y debe permitir que alguien vea un video desde cualquier otro lado, ya subido para un servidor streamin, es con symfony, hay un plugin que se llama flvplayer, mi pregunta es si puedo usarlo, y usar este codigo anteriomente puesto para convertir a este formato, o existe otra forma, ???

  6. Sergio Núñez dijo:

    Gracias por el código, funcionó casi a la perfección. Tuve que hacer un pequeño cambio y es que FLV admite formato de audio a 11025 | 22050 | 44100 por lo que le agregue un control para chequear y elegir cual utilizar.

    $VidSrcAR = $FFmpegObj->getAudioSampleRate();
    if ($VidSrcAR > 44100)
    $SrcAR = 44100;
    if ($VidSrcAR < 35000)
    $SrcAR = 22050;
    if (!$SrcAR)
    $SrcAR = 11025;

    Saludos

  7. dark_vader dijo:

    Hola, tengo una duda, me preguntaba si se puede hacer algo parecido pero en windows, porque quiero convertir videos a .flv en php pero sobre SO windows me preguntaba si tendran algun codigo que me pueda ayudar… GRACIAS!!!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos requeridos, están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>