ffmpegとは? わかりやすく解説

ffmpeg

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2011/05/09 16:35 UTC 版)

FFmpeg
開発元 FFmpegチーム
最新版 0.6.3[1](2011年4月26日(13日前) (2011-04-26)
プログラミング言語 C言語
対応OS クロスプラットフォーム
サポート状況 活発
種別 マルチメディアフレームワーク
ライセンス LGPL
公式サイト ffmpeg.org
  

FFmpeg(エフエフエムペグ)は動画音声を変換することのできるフリーソフトウェアであり、libavcodec(動画/音声のコーデックライブラリ)、libavformat(動画/音声のコンテナライブラリ)、libswscale(色空間・サイズ変換ライブラリ)、libavfilter(動画のフィルタリングライブラリ)などを含む。ライセンスコンパイル時のオプションによりLGPLGPLに決定される。

携帯動画変換君、WinFFなどのソフトウェア(GUIラッパー)や、WindowsLinuxコマンドラインから使用することができる。 対応コーデックが多く、多彩なオプションを使用可能なため、幅広く利用されている。

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

目次

サポートしている形式

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

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

libavcodecを参照。

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

サポートしているデバイス

  • Unix
    • OSS
    • JACK
    • X11 grabbing
    • dv1394
    • bktrドライバ
    • Linux
      • ALSA
      • Video4Linux
      • Video4Linux2
      • libdc1394 (IEEE 1394)
  • Windows
    • VfWキャプチャ
  • その他

オプション

FFmpegでは数多くのオプションを利用することができる。それらはffmpegのバージョンによって差異があるため、利用前にオプションやコーデックの表記を確認することが望ましい。オプションは ffmpeg -h で表示できる。また、コーデック名等は ffmpeg -formatsffmpeg -codecs で表示できる。( コーデック名は下記注意事項参照

一般的なオプション等の例を以下に挙げる。

メインオプション

  • -i 入力ファイル名を設定する。
  • -f 出力フォーマットの指定。
  • -y 出力するファイル名と同じ名前のファイルが出力先にある場合に上書する。
  • -fs 指定したファイルサイズになったら変換を終了する。
  • -ss 指定した時間から変換を開始する。
  • -title タイトルを設定する。
  • -timestamp タイムスタンプを設定する。
  • -vsync フレームをカットしたり加えたりして音声に動画を同期させる。

ビデオオプション

  • -b 動画部分のビットレートを設定、初期設定は200kbps。( 単位は下記注意事項参照
  • -r フレームレートの設定 初期設定は25
  • -s 動画のサイズを横×縦で設定
  • -aspect アスペクト比の設定
  • -vn ビデオを無効にする。音声部分のみのエンコードなどに使用する。
  • -vcodec ビデオコーデックを設定 設定しない場合は入力ファイルと同じコーデックを使用する。

オーディオオプション

  • -ab チャンネルごと(最近のSVN版では全チャンネル合計)のビットレートを設定する。( 単位は下記注意事項参照
  • -ar サンプリング周波数を設定する。
  • -ac 音声のチャンネル数を設定する。
  • -acodec 音声コーデックを設定する。設定しない場合は動画同様入力されたファイルと同じコーデックを使用する。
  • -an 音声を無効にする。ビデオ部分のみのエンコードなどに使用する。
  • -vol 通常の音量を256として音量を設定する。(2倍の音量にしたい時は512を指定する。)

注意事項

  • -bや-abオプションでビットレートを指定する場合、ffmpegのバージョンによってkbpsの場合と、bpsの場合があるので注意が必要である。(ffmpeg -hでヘルプメッセージを表示させて単位を確認するとよい)
    • たとえば、単位がbpsの場合で64kbpsのビットレートを指定する場合は『 -ab 64k 』と指定し、単位がkbpsの場合は『 -ab 64 』と指定する。ビットレートの計算では一般的にk=1000であり1024ではない。
  • -acodecや-vcodecで指定するコーデック名は、ffmpegのバージョンによって違うことがある。たとえば、AACコーデックの場合、aacと指定する場合と、libfaacと指定する場合がある。また、デコードのみやエンコードのみできるコーデックもあるため、必ず ffmpeg -formatsffmpeg -codecs で指定するコーデックが機能するか確認すべきである。

使用例

  • ヘルプの表示
ffmpeg -h
  • 対応形式の確認
# ファイル形式 (コンテナ/フォーマット/スプリッター)
ffmpeg -formats

# コーデック形式 (映像や音声の形式/圧縮アルゴリズム)
ffmpeg -codecs

# プロトコル形式 (スキーマも含む)
ffmpeg -protocols
  • 動画をMPEG-4/AVC形式に変換する例 (ビットレート固定)
ffmpeg -i inputfile -f mp4 -vcodec libx264 -acodec libfaac -vb 256k -ab 64k outputfile.mp4

# -f の後に変換後のファイル形式、-acodec の後に変換後の音声コーデック、-vcodec の後に変換後の動画コーデックを指定する。
# -vb は変換後の映像のビットレート(ビット/秒)、-ab は変換後の音声のビットレート(ビット/秒)を指定する。
  • 動画をMPEG-4/AVC形式に変換する例 (品質固定)
ffmpeg -i inputfile -f mp4 -vcodec libx264 -acodec libfaac -cqp 23 -aq 100 outputfile.mp4

# ビットレートを指定する代わりに品質を指定することができる。映像は cqp 、音楽は aq となる。
# 品質指定は cqp の場合、値が小さいほど品質が高いことを意味する。aq の場合、値が大きいほど品質が高いことを意味する。
# 値の意味は変換後のコーデックによるので注意。
  • 音楽をAACに変換する例
ffmpeg -i inputfile -f aac -vn -acodec libfaac -ab 128k outputfile.aac

# -vcodec の代わりに -vn を使うことで変換後に映像を入れないという意味になる。同様に、-acodec の代わりに -an を使うことで音声を消すことも可能である。
  • MP4形式の動画から再エンコード無しでFLV形式に変換する例
ffmpeg -i inputfile.mp4 -vcodec copy -acodec copy outputfile.flv

# 変換後のフォーマットによっては、そのフォーマットの仕様の制限やFFmpegが未対応であることなどにより変換前のコーデックが入れられないことがある。
# また、-vcodec copy を -vn にすることによって、再エンコード無しで音楽だけにすることが出来る。
  • RTSPサーバーからMP4動画を保存する例
ffmpeg -i rtsp://example.com/inputfile.mp4 -vcodec copy -acodec copy -scodec copy outputfile.mp4

# 入力ファイルに直接URLを入れることができる。
  • RTSPサーバーに動画を送信する例
ffmpeg -re -i inputfile -f rtsp -vcodec libx264 -acodec libfaac -vb 256k -ab 64k rtsp://example.com/outputfile.mp4

# 出力ファイルにも直接URLを入れることができる。-re を付けると出力速度がリアルタイムになるように調整する。
  • サーバーとして動作させる例
# ffserver.conf を適切に編集してから以下を実行。
ffserver &
ffmpeg -i inputfile http://127.0.0.1:8090/feed.ffm
  • DVDのVOBファイルを、VideoCD形式のMPEG-1ファイルに変換する例
ffmpeg -i inputfile.vob -f mpeg -vcodec mpeg1video -acodec mp2 -vb 1152k -ab 128k -s 352x240 outputfile.mpg
  • 動画を東芝のREGZAが認識できるMPEG2形式に変換する例
ffmpeg -i inputfile -target ntsc-svcd -ab 128k -aspect 4:3 -s 720x480 outputfile.mpg
  • 複数のAVIの動画ファイルを結合する例(この例では、中間処理として、一度AVIファイルをMPEG-1ファイルに変換する必要がある(MPEG-1, MPEG-2 PS, DVも連結可能))
ffmpeg -i input1.avi -sameq inputfile_01.mpg
ffmpeg -i input2.avi -sameq inputfile_02.mpg
cat inputfile_01.mpg inputfile_02.mpg > inputfile_all.mpg
ffmpeg -i inputfile_all.mpg -sameq outputfile.avi

なお、concatスキーマ(concat:input.avi.part1|input.avi.part2)はストリームの物理的な結合のみ行うため、この場合は使えない。

入手方法

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

RPMForge[1]、Livna[2]等のリポジトリを用いて、yumコマンド等でインストールできる

yum --enablerepo=rpmforge install ffmpeg
  • APTがインストールされた環境(Debian, Ubuntuなど)

apt-getコマンドを用いて、ディストリビュージョンのリポジトリに含まれているパッケージからインストールする

apt-get install ffmpeg  

portsツリーに含まれており、該当ディレクトリに移動してmake installするかpkg_addコマンドでバイナリパッケージを導入する。

公式サイトで紹介されているffmpegを用いたプロジェクト([Projects Using FFmpeg)に含まれるものを用いるか、コンパイル済みのバイナリを配布しているサイトからダウンロードする。

バイナリ配布サイトの例 [3]
ffmpegを用いたプロジェクトの例 :携帯動画変換君[4], WinFF[5]
  • Apple OSX

FFMPEGX [6]

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

音ズレ問題

音ズレの原因は大きく分けて以下がある。

  • フレームレート
  • 復号タイムスタンプ(DTS)/表示タイムスタンプ(PTS)
  • A/V Sync
  • ディレイ

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

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

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

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

関連項目

外部リンク

出典

  1. ^ FFmpeg公式サイト
  2. ^ Open Source Packages
  3. ^ Model/Module : BDP-S1
  4. ^ Model/Module : BDP-S1E/BDP-S300/BDP-S280
  5. ^ Model/Module : BDP-S500/BDP-S2000ES
  6. ^ whatwg MPEG-1 subset proposal for HTML5 video codec
  7. ^ Research White Paper - WHP 155
  8. ^ BBC R&D - Automated tapeless production - home page

FFmpeg

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/03/13 06:20 UTC 版)

FFmpeg
Linux で動作中の FFmpeg
作者 Fabrice Bellard
開発元 FFmpegチーム
初版 2000年12月20日 (24年前) (2000-12-20)[1]
最新版 7.1.1[2]  - 2025年3月3日 (10日前) [±]
リポジトリ
プログラミング
言語
C言語アセンブリ言語[3]
対応OS WindowsmacOSLinux(その他各OS向けにコンパイル可能)[4]
プラットフォーム x86ARMPowerPCMIPSDEC AlphaBlackfin、AVR32、SH-4SPARC(その他各デスクトップPC向けにコンパイル可能)
サポート状況 活発
種別 マルチメディアフレームワーク
ライセンス LGPL 2.1+, GPL 2+
NVIDIA Performance Primitivesでコンパイルした場合は再頒布不可[5]
公式サイト ffmpeg.org
テンプレートを表示

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

名前の「FF」はFast Forward(早送り)を意味する[7]

解説

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

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

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

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

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

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

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

libavcodecを参照。

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

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

  • Unix
    • OSS
    • JACK
    • X11 grabbing
    • dv1394
    • bktrドライバ
    • Linux
      • ALSA
      • Video4Linux英語版
      • Video4Linux2
      • libdc1394 (IEEE 1394)
  • Windows
    • VfWキャプチャ

入手方法

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

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

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

出典

  1. ^ Initial revision - git.videolan.org/ffmpeg.git/commit”. git.videolan.org (2000年12月20日). 2013年12月25日時点のオリジナルよりアーカイブ。2013年5月11日閲覧。
  2. ^ [FFmpeg-devel Point releases]” (3 3月 2025). 3 3月 2025閲覧。
  3. ^ Developer Documentation”. ffmpeg.org (2011年12月8日). 2012年1月4日閲覧。
  4. ^ Download”. ffmpeg.org. FFmpeg. 2012年1月4日閲覧。
  5. ^ オプションの外部ライブラリであるNVIDIA Performance Primitivesはプロプライエタリなソフトウェアであり、GPLの条件に基づいて配布することができないため
  6. ^ A complete, cross-platform solution to record, convert and stream audio and video.> http://www.ffmpeg.org/
  7. ^ Bellard, Fabrice (18 February 2006). "FFmpeg naming and logo". Ffmpeg-devel (Mailing list) (英語). 2025年3月13日閲覧
  8. ^ transition: Libav 0.7
  9. ^ Ubuntu Release Management: Transition: "libav"
  10. ^ Why Debian returned to FFmpeg [LWN.net]”. 2015年12月12日閲覧。
  11. ^ FFmpeg 5.0 release
  12. ^ whatwg MPEG-1 subset proposal for HTML5 video codec
  13. ^ Research White Paper - WHP 155
  14. ^ BBC R&D - Automated tapeless production - home page
  15. ^ Open Source Packages
  16. ^ Model/Module : BDP-S1
  17. ^ Model/Module : BDP-S1E/BDP-S300/BDP-S280
  18. ^ Model/Module : BDP-S500/BDP-S2000ES

関連項目

外部リンク





固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ffmpeg」の関連用語

ffmpegのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ffmpegのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのffmpeg (改訂履歴)、FFmpeg (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS