Recompilar ffmpeg – faac no es GPL

Hace poco escribía sobre cómo codificar videos para el PSP. Sin embargo, si intentan el comando ahí mencionado en la nueva versión de ffmpeg, se llevarán una sorpresa al ver que no encuentra la librería para codificar faac.

Estuve buscando soluciones, y me encontré con que el cambio fue intencional debido a que la licencia de faac no es GPL. Así que no hay de otra: hay que compilar ffmpeg.

La tarea en sí no es complicada, solo hay que asegurarse de tener todas las librerías que uno piensa habilitar en ffmpeg. Asegúrense de incluir la opción –enable-libfaac. Cuestión de buscar con apt o yum, instalar y probar hasta obtener el resultado deseado.

Si tienen Fedora 12, la mejor opción es construir el RPM a partir del código fuente, agregándole la opción para habilitar faac. Los pasos son:

  1. Bajar el RPM del código fuente. rpmfusion es el mejor lugar para encontrarlo.
  2. rpmbuild –rebuild –with faac <nombre del RPM del código fuente>
  3. Desinstalar con yum los paquetes ffmpeg, ffmpeg-devel y ffmpeg-libs. Esto va a desinstalar otras dependencias. En mi caso fueron 13. Hacer lista de lo que desinstala para volverlo a instalar después.
  4. Ir al directorio donde quedaron los RPM recién construídos.
  5. Instalar los rpm que ahí se crearon (los nuevos ffmpeg, ffmpeg-devel, ffmpeg-libs).
  6. Reinstalar los programas y dependencias que fueron borrados en el punto 3.

Y listo. Ya se puede usar nuevamente libfaac en ffmpeg. Probé codificando un capítulo de Family Guy:

Me muero de sueño, pero tenía que documentar esto.