Comunidad de diseño web y desarrollo en internet online

Convertir videos de cualquier formato a FLV con ffmpeg y PHP

En este tip mostraré cómo subir a un servidor un archivo de vídeo de cualquier formato y codificarlo automáticamente en formato FLV.

Pare realizar este proceso tendremos los siguiente requerimientos:



Una vez cumplamos con ellos, iniciaremos los siguientes procesos:

Instalar php_ffmpeg


Ya descargado el php_ffmpeg, lo descomprimes y copias el archivo php_ffmpeg.dll en php/ext

Añades esta lineas en el php.ini: "extensión = php_ffmpeg.dll"
Luego copias los archivos avcodec.dll y avformat.dll en windows/system32

Nota :

En linux, el proceso es muy similar. Sólo reemplaza los archivos y rutas por sus equivalentes


Instalar ffmpeg


Es simple. Ya descargado, coges el ffmpeg.exe y lo copias en windows/system32. Para ver si te funcionó, dirígete a Inicio -> Ejecutar luego escribes ffmpeg.exe y enter. Si corre es por que ya esta muy bien. Ya puedes convertir tus vídeos a .FLV o a cualquier formato.

Convertir los videos mediante PHP


Como ya tienes instalado todo lo necesario ahora esto es muy fácil tan solo llamando al ffmpeg con la función exec(),
los las conversiones se guardan en la misma carpeta donde esta el archivo.php

De .xxx formato a .FLV


Código :

<form id="form2" name="form1" enctype="multipart/form-data" method="post" action="">
      <span id="sprytextfield3">
      Nombre del  el mp3<br />
        <input name="arts" type="text" id="arts" />  
      <span class="textfieldRequiredMsg"></span></span>
              <br />
              Seleciona el video que quieres transformar a mp3<br />
        <input type="file" name="video" id="video" />
 <br />
        <br />
        <input type="submit" name="button" id="button" value="Convertir" />
      </label>
    </form>
      <?
      if(isset($_FILES[video])){
//$pumit  = rand(1,50);md5($pumit);
$to = $_POST["arts"];
$video = $_FILES['video']['tmp_name']. $_FILES['archivito']['name'] ;
$imagenes=(exec("ffmpeg -i ".$video."  ".$to.".flv  2>&1",$output));
echo $imagenes."<br>";

foreach($output as $item){
   echo $item;
}} else {echo "Selecciona tu video";}
?>


Extraer audio de un video


Código :

<form id="form2" name="form1" enctype="multipart/form-data" method="post" action="">
      <span id="sprytextfield3">
      Nombre del  el mp3<br />
        <input name="arts" type="text" id="arts" />  
      <span class="textfieldRequiredMsg"></span></span>
              <br />
              Seleciona el video que quieres transformar a mp3<br />
        <input type="file" name="video" id="video" />
 <br />
        <br />
        <input type="submit" name="button" id="button" value="Convertir" />
      </label>
    </form>
      <?
      if(isset($_FILES[video])){
//$pumit  = rand(1,50);md5($pumit);
$to = $_POST["arts"];
$video = $_FILES['video']['tmp_name']. $_FILES['archivito']['name'] ;
$imagenes=(exec("ffmpeg -i ".$video."  -ar 44100 -ac 2 -ab 192 -f mp3 ".$to.".mp3  2>&1",$output));
echo $imagenes."<br>";

foreach($output as $item){
   echo $item;
}} else {echo "Selecciona tu video";}
?>


Extraer una imagen de un video


Código :

<form id="form" name="form1" enctype="multipart/form-data" method="post" action="">
      <label> Del segundo<br />
        <input name="ds" type="text" id="ds" value="00:00:10 " />
        <br />
        <br />
        Al segundo<br />
        <input name="fs" type="text" id="textfield4" value="00:00:10 " />
        <br />
        <br />
        Seleciona el video que quieres transformar a mp3<br />
        <input type="file" name="videos" id="videos" />
      </label>
      <label> <br />
        <br />
        <input type="submit" name="buttons" id="buttons" value="Convertir" />
      </label>
    </form>
      <?
     if(isset($_FILES["videos"])){

 $pumit  = rand(1,5);
$to = md5($pumit);
$video = $_FILES['videos']['tmp_name']. $_FILES['archivitoz']['name'] ;
$imagenes=(exec("ffmpeg -i ".$video."  -t ".$_POST['ds']." -ss ".$_POST['ds']." -vframes 1 ".$to."%d.jpg  2>&1",$output));
echo $imagenes."<br>";

foreach($output as $item){
   echo $item;}
 } else 
 {
   echo "Selecciona tu video";
   }
?>


Más cosas que puede hacer con ffmpeg


Obtener información de un vídeo

Código :

ffmpeg -i video.avi


Combinar una serie de imágenes en un vídeo

Código :

ffmpeg -f image2 -i imagen%d.jpg video.mpg

Con este comando convertiríamos todas las imágenes del directorio actual (con nombres imagen1.jpg, imagen2.jpg, etc) en un video llamado video.mpg.

Convertir un vídeo en imágenes

Código :

ffmpeg -i video.mpg imagen%d.jpg

Con este comando se crearan varias imágenes imagen1.jpg, imagen2.jpg, ... Para las imágenes resultantes se pueden usar los formatos PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TIFF o SGI.

Convertir un vídeo para verlo en el iPod/iPhone

Código :

ffmpeg -i entrada.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320×180 -title X salida.mp4

  • Video original: entrada.avi
  • Codec de audio: aac
  • Bitrate del audio: 128kb/s
  • Codec de vídeo: mpeg4
  • Bitrate del vídeo: 1200kb/s
  • Tamaño del vídeo: 320×180
  • Vídeo generado: salida.mp4


Convertir un vídeo para verlo en la PSP

Código :

ffmpeg -i entrada.avi -b 300 -s 320×240 -vcodec xvid -ab 32 -ar 24000 -acodec aac salida.mp4

  • Video original: entrada.avi
  • Codec de audio: aac
  • Bitrate del audio: 32kb/s
  • Codec de vídeo: xvid
  • Bitrate del vídeo: 1200kb/s
  • Tamaño del vídeo: 320×180
  • Vídeo generado: salida.mp4


Extraer el sonido de un vídeo, y guardarlo como MP3

Código :

ffmpeg -i video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 audio.mp3

  • Video original: video.avi
  • Codec de audio: mp3
  • Bitrate del audio: 192kb/s
  • Archivo generado: audio.mp3


Convertir un wav en MP3

Código :

ffmpeg -i audio.wav -ar 44100 audio.mp3


Convertir un avi a mpg

Código :

ffmpeg -i entrada.avi salida.mpg


Convertir un mpg a avi

Código :

ffmpeg -i entrada.mpg salida.avi


Convertir un avi a gif

Código :

ffmpeg -i entrada.avi salida.gif


Añadir el sonido de un archivo de audio a un vídeo

Código :

ffmpeg -i audio.wav -i video_entrada.avi video_salida.mpg


Convertir avi a flv

Código :

ffmpeg -i entrada.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320×240 -f flv salida.flv


Convertir avi a dv

Código :

ffmpeg -i entrada.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 salida.dv

O bien

Código :

ffmpeg -i entrada.avi -target pal-dv salida.dv


Convertir avi a mpeg para reproductores de dvd

Código :

ffmpeg -i entrada.avi -target pal-dvd -ps 2000000000 -aspect 16:9 salida.mpeg

  • target pal-dvd: Formato de salida
  • ps 2000000000: Tamaño máximo del archivo resultante en bits (en el ejemplo, 2Gb)
  • aspect 16:9: Panorámico


Comprimir avi a divx

Código :

ffmpeg -i entrada.avi -s 320×240 -vcodec msmpeg4v2 salida.avi


Comprimir Ogg Theora a Mpeg dvd

Código :

ffmpeg -i entrada.ogm -s 720×576 -vcodec mpeg2video -acodec mp3 salida.mpg


Comprimir avi a SVCD mpeg2. Para PAL:

Código :

ffmpeg -i entrada.avi -target pal-svcd salida.mpg


Para NTSC:

Código :

ffmpeg -i entrada.avi -target ntsc-svcd salida.mpg


Comprimir avi a VCD mpeg2. Para PAL:

Código :

ffmpeg -i entrada.avi -target pal-vcd salida.mpg


Para NTSC:

Código :

ffmpeg -i entrada.avi -target ntsc-vcd salida.mpg


Codificación con varias pasadas

Código :

ffmpeg -i entrada -pass 2 -passlogfile ffmpeg2pass salida

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate