# FFmpeg

FFmpeg és una col·lecció de programari lliure que permet gravar, convertir (transcodificar) i fer streaming d'àudio i vídeo. Inclou libavcodec, una biblioteca de còdecs. FFmpeg és desenvolupat en GNU/Linux, però pot ser compilat en la majoria de sistemes operatius, incloent-hi Windows o Mac. El projecte es iniciat per en Gerard de Lantau, un pseudònim de Fabrice Bellard, i ara és mantingut per Michael Niedermayer. És remarcable que la majoria de desenvolupadors del FFmpeg també són al projecte MPlayer (més d'un membre del projecte Xine), i que FFmpeg està allotjada al servidor del projecte MPlayer.
FFmpeg està alliberat sota una llicència GNU Lesser General Public License 2.1+ o GNU General Public License 2+ (depenent de quines biblioteques estiguin incloses). Els desenvolupadors recomanen utilitzar l'últim snapshot de Subversion, ja que mantenen constantment una versió estable.
FFmpeg és un programa bastant senzill i molt fàcil d'usar, orientat tant a persones amb coneixements avançats com a usuaris nouvinguts. És capaç de triar el còdec amb només escriure l'extensió. Per exemple, FFmpeg usarà x264 si triem .mp4, mpeg4 si usem .avi, VP8 si usem .webm, etc.

## Components

* ffmpeg: és una eina de línia de comandos per convertir àudio o vídeo d'un format a un altre. També pot capturar i codificar en temps real des de DirectShow, una targeta de televisió o un altre dispositiu compatible.
* ffserver: és un servidor de streaming multimèdia d'emissions en directe que suporta HTTP (la compatibilitat amb RTSP està en desenvolupament). Encara no està en fase estable, i de moment no està disponible per Windows.
* ffplay: és un reproductor multimèdia basat en SDL i les biblioteques FFmpeg.
* libavcodec: és una biblioteca que conté tots els còdecs de FFmpeg. Molts d'ells van ser desenvolupats des de zero per assegurar una major eficiència i un codi altament reutilitzable.
* libavformat: és una biblioteca que conté els multiplexadors/demultiplexadors per als arxius contenidors multimèdia.
* libavutil: és una biblioteca de suport que conté totes les rutines comunes en les diferents parts de FFmpeg.
* libpostproc: és una biblioteca de funcions de postprocés de vídeo.
* libswscale: és la biblioteca d'escalat de vídeo.

## Còdecs

És la biblioteca principal del projecte FFmpeg és capaç de codificar/descodificar en diversos formats d'àudio i vídeo, està desenvolupada en C.

### Còdecs de vídeo implementats

* MPEG-1
* MPEG-2
* MPEG-4 Part 2 (el format utilitzat pels còdecs DivX i Xvid)
* H.261
* H.263
* H.264/MPEG-4 AVC (únicament la descodificació)
* x264
* WMV versió 7, 8 i 9 (únicament la descodificació)
* Sorenson codec
* Cinepak
* MJPEG
* Huffyuv
* Snow
* Theora (únicament la descodificació)
* VP3 / VP5 / VP6 (únicament la descodificació)
* VP8 / WebM
El códec de MPEG-4 utilitzat per defecte en el FFmpeg té el codi FourCC de FMP4

### Còdecs d'àudio implementats

* Apple Lossless
* AAC LC (Usar amb -strict experimental)
* Cook Codec
* FLAC
* MP2
* MP3
* Shorten
* QDM2
* RealAudio 1.0
* RealAudio 2.0
* Vorbis
* WavPack
* WMA

## Cas útil

Si el problema és la grandària d'un arxiu de vídeo que es pot considerar com a excessiu per a la qualitat del vídeo i es necessita que l'arxiu conservi la qualitat (en la mesura del possible), o simplement que la seva grandària sigui menor; una bona opció sense usar còdecs privatius és usar el còdec de vídeo H264 o també conegut com a MPEG-4 part 10.
-i Per indicar l'arxiu (format) a convertir, en aquest cas "in_Pelicula.avi".
-ab Per indicar la taxa de bits, s'indiquen 128kbps. Per defecte FFmpeg converteix els vídeos a una taxa de bits de 64k, pot ser que sigui necessari saber la taxa de bit del vídeo original i indicar-la per conservar la qualitat del so. Es pot consultar la informació d'un vídeo amb "ffprobe".
-vcodec Per indicar el còdec de vídeo a utilitzar, en aquest cas se li indica libx264. Es pot consultar els còdecs de vídeo i àudio utilitzant "ffmpeg -codecs".
Un exemple pràctic una mica més extens per comprimir un arxiu de vídeo conservant una qualitat gairebé transparent, amb el còdec lliure x264 i aac lc:

## Legalitat

L'estat legal del FFmpeg varia segons el país. Alguns còdecs inclosos, (com el Soreson 3) són reclamats pels amos de les patents. Aquests reclams tindrien valor en països com Estats Units on es reconeixen les patents de programari. Així i tot molts d'aquests còdecs estan alliberats sota termes que prohibeixen l'enginyeria inversa, fins i tot per facilitar la interoperabilitat, termes que estan prohibits en alguns països. Per exemple en alguns països de la Unió Europea no es reconeixen les patents de programari o disposen de lleis que expressament permeten l'enginyeria inversa per a qüestions d'interoperabilitat. En qualsevol cas moltes distribucions de GNU/Linux no inclouen FFmpeg per evitar complicacions legals.

## Projectes que fan ús de FFmpeg

FFmpeg és usat en molts projectes lliures i propietaris, incloent ffmpeg2theora, VLC, MPlayer, HandBrake, Blender, Google Chrome i uns altres.
També hi ha diversos frameworks multimèdia que fan ús de FFmpeg com DirectShow/VFW (ffdshow), QuickTime (perian), GStreamer, OpenMAX, xine.

## Referències

* ↑ «FFmpeg License and Legal Considerations». ffmpeg.org. [Consulta: 27 agost 2010].
* ↑ Proyectos

## Enllaços externs

* Lloc web oficial de FFmpeg (anglès)
* Recopilació de tutorials de ffmpeg.
* Com compilar FFmpeg en Mac US X (anglès)