Soporte para Transcodificación

Este artículo explica los requerimientos de software que debe tener el equipo que está ejecutando Prontus, para que la transcodificación funcione.

Requerimientos

Versión 11.2.1 hasta 11.2.15
Se necesita que los siguientes paquetes estén instalados en el sistema operativo:

  • ffmpeg v0.5.2 o superior.
  • libx264
Versión 11.2.16 en adelante.

Se necesita que los siguientes paquetes estén instalados en el sistema operativo:

  • ffmpeg v0.5.2 o superior.
  • libx264
  • python

Verificar versión y codecs instalados

1. Para verificar la versión instalada de ffmpeg, se puede utilizar el siguiente comando:

$ ffmpeg -version

El resultado de este comando, contiene la versión y las opciones de compilación del programa. Con esto, podemos darnos cuenta si fue compilado con soporte para x264.

FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.configuration: --prefix=/usr/local --mandir=/usr/local/man --enable-shared --enable-gpl --enable-swscale --enable-postproc --enable-avfilter --enable-avfilter-lavf --enable-pthreads --enable-memalign-hack --cc=cc --extra-cflags=-msse -I/usr/local/include/vorbis -I/usr/local/include --extra-ldflags=-L/usr/local/lib --extra-libs=-pthread --disable-debug --enable-libamr-nb --enable-nonfree --enable-libamr-wb --enable-nonfree --disable-libdirac --enable-libfaac --enable-nonfree --enable-libfaad --enable-libfaadbin --enable-libgsm --disable-vhook --enable-ipv6 --enable-libmp3lame --disable-libopenjpeg --enable-libschroedinger --disable-ffplay --enable-libspeex --enable-libtheora --enable-libvorbis --disable-x11grab --enable-libx264 --enable-libxvid
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 1 / 52.20. 1
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 0. 4. 0 / 0. 4. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Jun 7 2010 19:01:33, gcc: 4.2.1 20070719 [FreeBSD]
FFmpeg 0.5.2
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 1 / 52.20. 1
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 0. 4. 0 / 0. 4. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0

Destacado en negrita, se muestra la información que nos interesa. La versión 0.5.2 y la librería libx264.

En el caso de no aparecer --enable-libx264 luego de haber ejecutado el comando ffmpeg junto al flag de versión, significa que ffmpeg no está compilado con la librería libx264, por lo cual será necesario instalar otra versión o compilarlo con soporte para este. Para el último caso, se puede revisar este artículo, donde se explica como compilar FFmpeg en Linux.

Con respecto a la versión, esta puede ser mayor o igual a 0.5.2, pero no inferior. En caso de tener una versión inferior, se debe instalar la requerida.

2. Luego de verificar que ffmpeg fue compilado con libx264, para verificar la capacidad de compresión en h264 de ffmpeg, se puede realizar ejecutando el siguiente comando:

$ ffmpeg -formats | grep 264Lo cual, entregará algo como esto:

EV libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
DE h264 raw H.264 video format
E ipod iPod H.264 MP4 format
La E indica encoder, si sólo aparece D (decoder), significa que no se podrá codificar en h264. Debe existir al menos una linea con E.

En el caso de que no aparezca una linea con la letra E, quiere decir que FFmpeg no tiene soporte para h264, por lo cual será necesario verificar si fue compilado con soporte para dicha librería, para ello revisar el paso 1.

Si todo está correcto, la transcodificación debería funcionar sin problemas.

Integración al FID

Para integrar transcodificación de video a un FID, está disponible dentro de la distribución de Prontus, una macro reserva llamada "_video_xcode.html". Además, también se incluye el player de video para reproducir los videos dentro del FID:

La macro, puede ser integrada de la siguiente manera:

< !-- archivos video -- >
< div class="cabecera" id="body4" >
%%MACRO(_video_xcode.html)%%
< /div >
< !-- /archivos video -- >

Vale recordar, que hay que agregar el tab correspondiente a la macro *_tabs.html:

< li >< a href="#body4" class="button" >< span >Transcodificación< /span >< /a >< /li >