title: FFmpeg
text: # 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.
  
  