FFmpeg

entorno de trabajo multimedia

FFmpeg es una colección de software libre que puede grabar, convertir (transcodificar) y hacer streaming de audio y vídeo. Incluye libavcodec, una biblioteca de códecs. FFmpeg está desarrollado en GNU/Linux, pero puede ser compilado en la mayoría de los sistemas operativos, incluyendo Windows. El proyecto comenzó por Gerard Lantau, un seudónimo de Fabrice Bellard, y ahora es mantenido por Michael Niedermayer. Es destacable que la mayoría de los desarrolladores de FFmpeg lo sean también del proyecto MPlayer (más un miembro del proyecto Xine), y que FFmpeg esté hospedado en el servidor del proyecto MPlayer.

FFmpeg
Información general
Tipo de programa Framework multimedia
Autor Fabrice Bellard
Desarrollador Equipo de FFmpeg
Modelo de desarrollo Software libre
Lanzamiento inicial 20 de diciembre de 2000
Vulnerabilidades
Licencia GNU LGPL 2.1+
GNU GPL 2+
Información técnica
Programado en C[1]
Plataformas admitidas
Versiones
Última versión estable 7.1 (info) ( 30 de septiembre de 2024 (1 mes y 14 días))
Archivos legibles
Archivos editables
Enlaces

FFmpeg está liberado bajo una licencia GNU Lesser General Public License 2.1+ o GNU General Public License 2+ (dependiendo de qué bibliotecas estén incluidas).[2]​ Los desarrolladores recomiendan utilizar el último snapshot de Subversion ya que mantienen constantemente una versión estable.

FFmpeg es un programa de línea de órdenes que en cierta medida puede ser utilizado tanto por personas con conocimientos avanzados como por usuarios con conocimentos básicos. Es capaz de elegir el códec con sólo escribir la extensión. Por ejemplo, FFmpeg usará x264 si elegimos .mp4, mpeg4 si usamos .avi, VP8 si usamos .webm, etc...

Componentes

editar
 
Esquema de funcionamiento.

El proyecto está compuesto por:

  • ffmpeg: es una herramienta de línea de comandos para convertir audio o video de un formato a otro. También puede capturar y codificar en tiempo real desde DirectShow, una tarjeta de televisión u otro dispositivo compatible.
  • ffserver: es un servidor de streaming multimedia de emisiones en directo que soporta HTTP (la compatibilidad con RTSP está en desarrollo). Todavía no está en fase estable, y de momento no está disponible para Windows.
  • ffplay: es un reproductor multimedia basado en SDL y las bibliotecas FFmpeg.
  • libavcodec: es una biblioteca que contiene todos los códecs de FFmpeg. Muchos de ellos fueron desarrollados desde cero para asegurar una mayor eficiencia y un código altamente reutilizable.
  • libavformat: es una biblioteca que contiene los multiplexadores/demultiplexadores para los archivos contenedores multimedia.
  • libavutil: es una biblioteca de apoyo que contiene todas las rutinas comunes en las diferentes partes de FFmpeg.
  • libpostproc: es una biblioteca de funciones de postproceso de vídeo.
  • libswscale: es la biblioteca de escalado de vídeo.

Códecs

editar

Es la biblioteca principal del proyecto FFmpeg es capaz de codificar/decodificar en varios formatos de audio y vídeo, está desarrollada en C.

Códecs de video implementados

editar

El códec de MPEG-4 utilizado por defecto en el FFmpeg tiene el código FourCC de FMP4.

Códecs de audio implementados

editar

Caso útil

editar

Si el problema es el tamaño de un archivo de video que se puede considerar como excesivo para la calidad del video y se necesita que el archivo conserve la calidad (dentro de lo posible), o simplemente que su tamaño sea menor; una buena opción sin usar códecs privativos es usar el códec de video H264 o también conocido como MPEG-4 parte 10.

ffmpeg -i 'in_Pelicula.avi'-ab 128k -vcodec libx264 'out_Pelicula.avi'

-i Para indicar el archivo (formato) a convertir, en este caso "in_Pelicula.avi".

-ab Para indicar la tasa de bits, se indican 128kbps. Por defecto FFmpeg convierte los videos a una tasa de bits de 64k, puede que sea necesario saber la tasa de bit del video original e indicarla para conservar la calidad del sonido. Se puede consultar la información de un video con "ffprobe".

-vcodec Para indicar el códec de video a utilizar, en este caso se le indica libx264. Se puede consultar los códecs de video y audio utilizando "ffmpeg -codecs".

Un ejemplo práctico algo más extenso para comprimir un archivo de vídeo conservando una calidad casi transparente, con el códec libre x264 y aac lc:

ffmpeg -y -i 'video' -vcodec libx264 -crf 25 -preset slower -tune film -acodec aac -ar 44100 -b:a 112k -ac 2 -strict experimental 'video_convertido.mp4'

Legalidad

editar

El estado legal del FFmpeg varía según el país. Algunos códecs incluidos, (como el Soreson 3) son reclamados por los dueños de las patentes. Estos reclamos tendrían valor en países como Estados Unidos donde se reconocen las patentes de software. Aun así muchos de estos códecs están liberados bajo términos que prohíben la ingeniería inversa, incluso para facilitar la interoperabilidad, términos que están prohibidos en algunos países. Por ejemplo en algunos países de la Unión Europea no se reconocen las patentes de software o disponen de leyes que expresamente permiten la ingeniería inversa para cuestiones de interoperabilidad. En cualquier caso muchas distribuciones de GNU/Linux no incluyen FFmpeg para evitar complicaciones legales.

Proyectos que hacen uso de FFmpeg

editar
 
Xvidcap.

FFmpeg es usado en muchos proyectos libres y propietarios, incluyendo ffmpeg2theora, VLC, MPlayer, HandBrake, Blender, Google Chrome, MystiQ, Videomorph y otros.[3]

También hay varios frameworks multimedia que hacen uso de FFmpeg como DirectShow/VFW (ffdshow), QuickTime (perian), GStreamer, OpenMAX, xine.

Véase también

editar

Referencias

editar
  1. «Ohloh Analysis Summary - FFmpeg». Ohloh. Consultado el 18 de octubre de 2009. 
  2. Proyectos

Enlaces externos

editar