FFmpeg
# FFmpeg

FFmpeg è una suite software completa per registrare, convertire e riprodurre audio e video avviata il 20 dicembre 2000. Si basa su libavcodec, libreria per la codifica audio/video. FFmpeg è sviluppato su Linux e può essere compilato ed eseguito su qualunque dei principali sistemi operativi, incluso Microsoft Windows.

## Componenti

* ffmpeg è uno strumento da riga di comando per convertire un file video o audio da un formato a un altro. Inoltre supporta la cattura e la codifica in tempo reale dalla scheda TV.
* ffserver è uno streaming server multimediale HTTP per riproduzioni live in broadcast. Il time shifting di stream live in broadcast è supportato.
* ffplay è un semplice media player basato su SDL e sulle librerie FFmpeg
* libavcodec è una libreria contenente tutti gli encoder/decoder di FFmpeg. Molti codec sono stati sviluppati da zero per garantire le migliori prestazioni e la massima riusabilità del codice.
* libavformat è una libreria contenente parser e generatori condivisi per tutti i formati audio/video.

## Storia

Il progetto è stato iniziato da Fabrice Bellard nel 2000, ed è stato guidato da Michael Niedermayer dal 2004 al 2015.

Il 10 gennaio 2014, due sviluppatori Google hanno annunciato che 1000 bugs di FFmpeg sono stati riparati grazie a due anni di fuzz testing.

## Licenza

LGPL conterrà solo componenti con licenza LGPL o una licenza come BSD in particolare x264 è GPL e quindi rende l'intera build GPL.

"Condiviso" significa che è un gruppo di librerie separate che alimentano un ffmpeg relativamente piccolo.

Non condiviso è statico, il che significa che hai un grande ffmpeg con tutte le librerie integrate: nessuna differenza di funzionalità ma statico è più facile da spostare, quindi l'opzione migliore è la GPL non condivisa. potresti notare che statico è enorme perché stai ricevendo ffmpeg, ffprobe e ffplay con le proprie librerie ciascuno, mentre "condiviso" li fa usare le stesse librerie FFmpeg, ffprobe e ffplay possono essere spostati in directory diverse e continueranno a funzionare in una build condivisa non possono essere separati.

