FFmpeg

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

1. 解説
-----

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

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

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

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

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

4xm
8088flex TMV
Adobe Filmstrip
Audio IFF 
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 
Flash 
Flash 9 
FLI/FLC/FLX animation
Flash Video 
framecrc testing format
FunCom ISS
GIF アニメーション
GXF
id Quake II CIN video
id RoQ
IEC61937 encapsulation
IFF
Interplay MVE
IV8
IVF 
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 
MPEG-TS 
MPEG-4
MIME マルチパート JPEG
MSN TCP webcam
MTV
Musepack
Musepack SV8
Material eXchange Format 
Material eXchange Format , D-10 Mapping
NC camera feed
NTT TwinVQ 
Nullsoft Streaming Video
NuppelVideo
NUT
Ogg
Playstation Portable PMP
TechnoTrend PVA
QCP
raw ADTS 
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 
Sony PlayStation STR
Sony Wave64 
SoX native format
SUN AU format
テキストファイル
THP
Tiertex Limited SEQ
True Audio
VC-1 test bitstream
WAV
WavPack
WebM
Windows Televison 
Wing Commander III movie
Westwood Studios audio
Westwood Studios VQA
XMV
xWMA
YUV4MPEG pipe
Psygnosis YOP

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

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

4. サポートしているコーデック
----------------

libavcodecを参照。

5. サポートしているプロトコル
----------------

TCP
UDP
HTTP
RTP
RTSP
RealMedia RTSP/RDT
RTMP
RTMPT, RTMPE, RTMPTE, RTMPS 
SDP
Gopher
MMS over TCP

6. サポートしている入出力デバイス
------------------

Unix
OSS
JACK
X11 grabbing
dv1394
bktrドライバ
Linux
ALSA
Video4Linux2
libdc1394 
Windows
VfWキャプチャ

7. 入手方法
-------

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

8. FFmpegを利用・サポートしているアプリケーション
-----------------------------

エンコーダ
MEncoder
HandBrake
MediaCoder
携帯動画変換君
WinFF
動画再生
MPlayer
VLC
Xine
コーデック
ffdshow
GStreamer FFmpeg plug-in
Perian
Bellagio OpenMAX IL - STマイクロエレクトロニクスとノキアによって開発されているオープンソースのOpenMax IL実装
FFmpegInterop - Microsoftによって開発されているMediaStreamSource実装
3D描画
Blender
マルチメディアプレーヤ
Gnash - オープンソースのフラッシュプレーヤー
swfdec - オープンソースのフラッシュプレーヤー
Moonlight - マイクロソフトが支援してノベルが開発するオープンソースのSilverlight代替実装
動画編集
Avidemux
Kdenlive
Jahshaka
B's 動画レコーダー
音声編集
Audacity
ラジ録12 Windows版
VoIP
Ekiga
構内交換機 
Asterisk
画像処理
OpenCV - インテルによって開発されたコンピュータビジョン向けライブラリ。
ImageMagick - MPEG-2へ出力する際に使用する。
ウェブブラウザ
Google Chrome - HTML5のvideoタグに使用している。また、Chromeをベースにしたメディアプレイヤーを作るという計画がある。
動画処理
Ingex - BBCリサーチ・アンド・デベロップメントが開発しBBCが使用している、オープンソースのテレビジョンプロダクション向け総合ソフトウェア
ラッパー
[1] - OpenCV の Java ラッパーだが、FFmpeg のラッパーも含むFFmpegに含まれるライブラリ群は多数のマルチメディアアプリケーションにより利用されている。また、Palmのスマートフォンやソニーのブルーレイプレーヤなどのデバイスにも利用されている。

9. 出典
-----

10. 関連項目
--------

オープンソースのコーデックとコンテナフォーマット
KMPlayer
ffvp6

11. 外部リンク
---------