FFmpeg（エフエフエムペグ）は動画と音声を記録・変換・再生するためのフリーソフトウェアである。Unix系オペレーティングシステム (OS) 生まれであるが現在ではクロスプラットフォームであり、libavcodec（動画/音声のコーデックライブラリ）、libavformat（動画/音声のコンテナライブラリ）、libswscale（色空間・サイズ変換ライブラリ）、libavfilter（動画のフィルタリングライブラリ）などを含む。ライセンスはコンパイル時のオプションによりLGPLかGPLに決定される。コマンドラインから使用することができる。対応コーデックが多く、多彩なオプションを使用可能なため、幅広く利用されている。

解説 
FFmpegは、単体ではGUIを持たないツールでUNIXコマンドのように振る舞う。その為、対話式アプリケーションとして使用される場合、フロントエンドを用いる事も多い。コマンドラインから実行するCUIとして配布されているのは、ユーザが必要とすればフロントエンドを利用でき、スクリプトなどのバッチ処理を行う際に呼び出す事もできるという利点からである。また、FFserverと組み合わせる事により、ファイルシステムやデバイスファイルとストリーミングサーバ間のフィルタとしても動作する。

2011年3月13日にFFmpegの開発は、開発体制の対立からffmpeg.orgとlibav.orgに分裂した。どちらもffmpegというソフトウェアをリリースしているが、側はavconvに名称を切り替える作業を進めている。この分裂に伴い、Debian、Ubuntu 11.04、Gentoo LinuxはLibav側を採用した。

2015年7月にDebianはセキュリティ問題への対応姿勢からLibavを排除し、FFmpeg採用に戻った。UbuntuもFFmpeg採用に戻っている。

2022年1月17日に大きなAPIの変更と非推奨APIの削除が行われたFFmpeg 5.0がリリースされた。

サポートしているファイル形式 

 4xm
 8088flex TMV
 Adobe Filmstrip
 Audio IFF (AIFF CD-ROM XA ADPCMを含む)
 American Laser Games MM
 3GPP AMR
 Apple HTTP Live Streaming
 ASF
 AVI
 AVISynth
 AVS
 Beam Software SIFF
 Bethesda Softworks VID
 Bink
 Bitmap Brothers JV
 Brute Force & Ignorance
 BWF
 Interplay C93
 Delphine Software International CIN
 CD+G
 Core Audio Format
 CRC testing format
 Creative Voice
 CRYO APC
 D-Cinema audio
 Deluxe Paint Animation
 DFA
 DV video
 DXA
 Electronic Arts cdata
 Electronic Arts Multimedia
 FFM (FFserver live feed)
 Flash (SWF)
 Flash 9 (AVM2)
 FLI/FLC/FLX animation
 Flash Video (FLV)
 framecrc testing format
 FunCom ISS
 GIF アニメーション
 GXF
 id Quake II CIN video
 id RoQ
 IEC61937 encapsulation
 IFF
 Interplay MVE
 IV8
 IVF (On2)
 LMLM4
 LOAS
 LXF
 Matroska
 Matroska audio
 FFmpeg metadata
 MAXIS XA
 MD Studio
 Mobotix .mxg
 Monkey's Audio
 Motion Pixels MVI

 MOV/QuickTime/MP4
 MP2
 MP3
 MPEG-1 System
 MPEG-PS (program stream)
 MPEG-TS (transport stream)
 MPEG-4
 MIME マルチパート JPEG
 MSN TCP webcam
 MTV
 Musepack
 Musepack SV8
 Material eXchange Format (MXF)
 Material eXchange Format (MXF), D-10 Mapping
 NC camera feed
 NTT TwinVQ (VQF)
 Nullsoft Streaming Video
 NuppelVideo
 NUT
 Ogg
 Playstation Portable PMP
 TechnoTrend PVA
 QCP
 raw ADTS (AAC)
 raw AC-3
 raw Chinese AVS video
 raw CRI ADX
 raw Dirac
 raw DNxHD
 raw DTS
 raw E-AC-3
 raw FLAC
 raw GSM
 raw H.261
 raw H.263
 raw H.264
 raw Ingenient MJPEG
 raw MJPEG
 raw MLP
 raw MPEG
 raw MPEG-1
 raw MPEG-2
 raw MPEG-4
 raw NULL
 raw video
 raw id RoQ
 raw Shorten
 raw TrueHD
 raw VC-1
 raw PCM A-law
 raw PCM mu-law
 raw PCM
 整数: 符号付きまたは符号なし、ビット数は8、16、24、32ビット、エンディアンはリトルエンディアンとビックエンディアン
 浮動小数点: 32ビットまたは64ビットエンディアンはリトルエンディアンとビックエンディアン

 RDT
 REDCODE R3D
 RealMedia
 Redirector
 Renderware TeXture Dictionary
 RL2
 RPL/ARMovie
 Lego Mindstorms RSO
 RTMP
 RTP
 RTSP
 SAP
 SDP
 Sega FILM/CPK
 Sierra SOL
 Sierra VMD
 Smacker
 Sony OpenMG (OMA)
 Sony PlayStation STR
 Sony Wave64 (W64)
 SoX native format
 SUN AU format
 テキストファイル
 THP
 Tiertex Limited SEQ
 True Audio
 VC-1 test bitstream
 WAV
 WavPack
 WebM
 Windows Televison (WTV)
 Wing Commander III movie
 Westwood Studios audio
 Westwood Studios VQA
 XMV
 xWMA
 YUV4MPEG pipe
 Psygnosis YOP

サポートしている画像形式 

 AV1
 GIF parser
 hcom
 Huffyuv
 ARBC
 HEVC
 agm
 lscr
 VP4

 .Y.U.V
 アニメーションGIF
 BMP
 DPX
 JPEG
 JPEG 2000
 JPEG-LS

 LJPEG
 PAM
 PBM
 PCX
 PGM
 PGMYUV
 PIC

 PNG
 PPM
 PTX
 
 Sun Rasterfile
 TIFF
 Truevision Targa(TGA)

サポートしているコーデック 
libavcodecを参照。

サポートしているプロトコル 
 TCP
 UDP
 HTTP
 RTP
 RTSP
 RealMedia RTSP/RDT
 RTMP
 RTMPT, RTMPE, RTMPTE, RTMPS (librtmp経由)
 SDP
 Gopher
 MMS over TCP

サポートしている入出力デバイス 
 Unix
 OSS
 JACK
 X11 grabbing
 dv1394
 bktrドライバ
 Linux
 ALSA
 
 Video4Linux2
 libdc1394 (IEEE 1394)
 Windows
 VfWキャプチャ

入手方法 
公式サイトでは、コンパイル済みのバイナリは配布されていないため、自分の環境に合わせてソースコードをコンパイルすることもできるが、コンパイル済みのバイナリを配布する非公式のサイト等も存在している。

FFmpegを利用・サポートしているアプリケーション 
 エンコーダ
 MEncoder
 HandBrake
 MediaCoder
携帯動画変換君
WinFF
 動画再生
 MPlayer
 VLC
 Xine
 コーデック
 ffdshow
 GStreamer FFmpeg plug-in
 Perian
 Bellagio OpenMAX IL -  STマイクロエレクトロニクスとノキアによって開発されているオープンソースの実装
 FFmpegInterop - Microsoftによって開発されているMediaStreamSource実装
 3D描画
 Blender
 マルチメディアプレーヤ
 Gnash - オープンソースのフラッシュプレーヤー
 swfdec - オープンソースのフラッシュプレーヤー
 Moonlight - マイクロソフトが支援してノベルが開発するオープンソースのSilverlight代替実装
 動画編集
 Avidemux
 Kdenlive
 Jahshaka
 B's 動画レコーダー
 音声編集
 Audacity(1.3.6以降)
 ラジ録12 Windows版
 VoIP
 Ekiga

 構内交換機 (PBX)
 Asterisk
 画像処理
 OpenCV - インテルによって開発されたコンピュータビジョン向けライブラリ。
 ImageMagick - MPEG-2へ出力する際に使用する。
 ウェブブラウザ
 Google Chrome - HTML5のvideoタグに使用している。また、Chromeをベースにしたメディアプレイヤーを作るという計画がある。
 動画処理
Ingex - BBC（英国放送協会）リサーチ・アンド・デベロップメントが開発しBBCが使用している、オープンソースのテレビジョンプロダクション向け総合ソフトウェア
 ラッパー
 JavaCV - OpenCV の Java ラッパーだが、FFmpeg のラッパーも含む

FFmpegに含まれるライブラリ群は多数のマルチメディアアプリケーションにより利用されている。また、Palmのスマートフォン(Palm WebOS)やソニーのブルーレイプレーヤ(BDP-S1、BDP-S1E/BDP-S300/BDP-S280、BDP-S500/BDP-S2000ES)などのデバイスにも利用されている。

音ズレ問題 
音ズレの原因は大きく分けて以下がある。
 フレームレート
 復号タイムスタンプ (DTS)/表示タイムスタンプ (PTS)
 A/V Sync
 ディレイ

FFmpegにおいては、フレームレートは内部的に分数を用いて処理をしているためフレームレートによる音ズレが起こることは少ない。ただし小数でフレームレートを保存するコンテナも存在するため、限界もある。FFmpegのライブラリを使用する場合に、分数を小数に直してから処理すると音ズレを起こす場合がある。

コンテナの実装においてDTSをPTSに又はDTSにPTSを代入した場合や、FFmpegのライブラリを利用したアプリケーションにおいてPTSとDTSを正しく扱わなかった場合などに音ズレを伴う問題が起きる場合がある。また、負のPTSや負のDTSを使用している場合において問題が起きる場合がある。

ディレイの問題は、遅延フレーム、エンコードに必要な無音区間の挿入、デコードに必要的に出力される無音サンプルなどによって起こる。一部のコンテナやその実装においては、ディレイはタグなどのメタデータによって打ち消す。コンテナがディレイを打ち消す方法を提供しない場合は、映像/音声データの方を調節するしかない。一部独自拡張のタグにディレイ情報を埋め込むエンコーダ（LAMEのLAMEタグやiTunesのiTunSMPBなど）も存在し、様々なソフトウェア・ハードウェアが相性問題を抱えている。FFmpegはこれらの幾つかにまだ対応していない。

また、変換前の動画を出力したソフトウェア・ハードウェアや変換後の動画を処理するソフトウェア・ハードウェアのバグや仕様によって問題が起こることも多い。変換前の動画にバグがある場合、-bugオプションを使って回避できる場合がある。