- FFmpegは、 コマンド 多数のコーデックとフォーマットをサポートし、オーディオとビデオを記録、変換、処理できるクロスプラットフォーム。
- 単純な形式変換から、切り取り、サイズ変更、ロゴの挿入、GIF の生成、画像シーケンスからのビデオの作成などの高度なタスクまで、あらゆるタスクを実行できます。
- その真の可能性は、スクリプトや自動化されたワークフローに統合されたときに発揮され、クリップの連結、トランジションの適用、オーディオの正規化、コンテンツ制作の標準化が可能になります。
- いくつかのよく理解されたコマンドを使用すると、面倒なグラフィカル インターフェイスに頼ることなく、ビデオ編集と圧縮のための効率的なワークフローを構築できます。

動画を頻繁に扱う人なら、遅かれ早かれ、 FFmpegは、変換、圧縮、タスクの自動化のための万能ツールです。グラフィカルインターフェースのエディタから来たとしても、 ストリーミング またはシンプルなオンラインコンバーター: 細かい制御、珍しい形式、大規模な自動化が必要な場合は、FFmpeg が役立ちます。
初めて見ると、少し威圧感を感じるのも事実です。 大量のパラメータ、非常に長いコマンド、そしてメッセージ ターミナルしかし、そのロジックを一度理解すれば、形式の変更、ファイルサイズの縮小、切り取り、ロゴの追加、GIF の生成、写真からのタイムラプス ビデオの作成など、繰り返しのタスクに非常に便利なツールになります。
FFmpeg とは何ですか? また、なぜビデオでよく使用されるのですか?
FFmpegは、無料のソフトウェアツールとライブラリのセットです。 オーディオとビデオの録音、変換、処理、ストリーミング用に設計されています。美しいウィンドウやボタンを備えたアプリケーションではなく、コマンドラインから制御されるため、非常に柔軟で、自動化、サーバー、スクリプト作成に最適です。
その名前は MPEG早送りMPEGビデオ規格を定義したグループを指します。2000年にFabrice Bellard氏がプロジェクトを立ち上げて以来、コミュニティはそれを拡張してきました… 数え切れないほどのプログラムやサービスで使用されているマルチメディアエンジン 知らないうちに(ストリーミング プラットフォーム、エディター、コンバーターなど)。
その最大の美点の一つは 膨大な数のコーデックとコンテナをサポート (動画に最適なコーデックの選び方): MP4、MOV、MKV、AVI、WebM、FLV、Ogg、アニメーションGIF、画像シーケンス、 MP3AAC、OGG、WAV、WMAなど、他にもたくさんのフォーマットがあります。お気に入りのプレーヤーで再生できるものなら、FFmpegで読み込んだり生成したりできるはずです。
さらに、FFmpegは クロスプラットフォーム問題なくインストールできます Linux, WindowsmacOSおよび類似のシステム Unixのまた、コンソールから使用されますが、コマンドを表示せずに段階的に進めたい場合は、バックグラウンドでこれを使用するグラフィカル インターフェイスがいくつかあります。
Windows、macOS、LinuxにFFmpegをインストールする方法

コマンドの発行を開始する前に、ツールをインストールする必要があります。 プロセスはオペレーティング システムによって異なります。しかし、いずれの場合も、それは一度だけ実行され、その後は忘れられてしまいます。
WindowsにFFmpegをインストールする
Windowsではいくつかのオプションがありますが、最も一般的なのは、 静的パッケージはすでにコンパイルされていますこれにより、何かをコンパイルしたり依存関係を処理したりする必要がなくなります。
典型的なワークフローは次のようになります。FFmpegの公式ウェブサイトまたは信頼できるビルドページにアクセスし、 ダウンロード A ZIPまたは7z形式の「静的」バージョンそれを任意のフォルダ(例えばセカンダリドライブ)に解凍すると、その中にいくつかのサブディレクトリを含むディレクトリが表示されます。 ビン実行可能ファイル ffmpeg.exe、ffplay.exe、ffprobe.exe が配置されています。
常にそのフォルダにアクセスしなくても済むようにするための理想的な解決策は システム環境変数にbinディレクトリへのパスを追加しますコントロールパネル > システム > 詳細システム設定 > 環境変数から、Path変数を見つけて編集し、binフォルダへのフルパスを追加します。そこから、以下のコマンドを記述できます。 ffmpeg どのコンソールでも実行できます。
もう一つの非常に便利な代替手段は、 Chocolateyのようなパッケージマネージャー 管理コンソールで実行します。 choco install ffmpegインストールと PATH はマネージャー自身が管理します。
macOSにFFmpegをインストールする
En Mac最も実用的な方法は、引っ張ることです 自作お持ちでない場合は、 スクリプト ターミナルの設置担当者。運用開始後は、以下の手順に従ってください。
brew install ffmpeg
数分で どの端末からでも使えるffmpegHomebrew は依存関係、パス、および将来のアップデートを自動的に処理します。
一人でやりたい場合は、ダウンロードすることもできます すでにコンパイルされたバイナリ macOS用ですが、実際にはHomebrewを使えば手間が省け、FFmpegを簡単な操作でアップデートできます。 brew upgrade ffmpeg.
LinuxにFFmpegをインストールする
最近のディストリビューションのほとんどでは、 FFmpegは公式リポジトリで入手可能です例えばDebian、Ubuntu、および派生版では、 次のコマンドでインストールできます:
sudo apt install ffmpeg
他のディストリビューションではパッケージ マネージャーは変わりますが、考え方は同じです。 ffmpegパッケージと関連ツールをインストールしますffprobeのように。その後、 which ffmpeg そして次のようなものが得られます /usr/bin/ffmpegすべて順調です。
より高度なシナリオ(例えば、 特定のコーデックまたはライブラリに対する特定のサポートFFmpegをソースコードからコンパイルし、MP3用のLAME、libogg、libvorbisなどのモジュールを手動で追加したり、mplayerと統合したりすることを好む人もいます。この場合、これらのライブラリは事前にダウンロードしてコンパイルし、パーミッションとパスを調整する必要があります(LD_LIBRARY_PATH)とシンボリックリンクが作成されます /usr/lib FFmpegライブラリに向けて /usr/local/lib.
FFmpegの基本構文を理解する

インストールしたら、次のステップは理解することです 最小限のFFmpegコマンドの書き方一般的な構造は通常次のようになります。
ffmpeg -i entrada.ext salida.ext
重要なパラメータは -iこれは入力ファイルまたはストリームを示します。このオプションの前後に追加するものはすべて、出力の処理方法と生成方法に影響を与える設定です。
単に ビデオファイルから技術情報を取得する、使用できます:
ffmpeg -hide_banner -i video.mp4
これにより、FFmpegは次のような詳細を表示します。 継続時間、ビットレート、ビデオおよびオーディオコーデック、解像度、フレームレート およびその他のメタデータ。パラメータ -バナーの非表示 これにより、膨大な初期構成とコンパイル ブロックが表示されることがなくなり、本当に役立つ情報に集中できるようになります。
ガイドとして役立ついくつかのグローバル パラメータは次のとおりです。
- -フォーマット: サポートされている形式 (コンテナー) を一覧表示します。
- -コーデック: すべての入力および出力コーデックを表示します。
- -デコーダー: 入力として受け入れられるコーデックの詳細を示します。
- -エンコーダー: エクスポート時に使用できるコーデックを一覧表示します。
最低限の情報があれば、 出力拡張子を変更するだけで、ある形式から別の形式に変換できます。。 例えば、
ffmpeg -i video_origen.mov video_destino.mp4
この場合、FFmpegは以下を選択します。 拡張子に応じた適切なコーデックたとえば、特に指定しない限り、ビデオの場合は H.264、MP4 のオーディオの場合は AAC になります。
コーデック、コンテナ、主要な品質パラメータ
FFmpegを最大限に活用するには、 コーデックとコンテナを区別するMP4 (コンテナ) は H.264 や H.265 (ビデオ コーデック) とは異なりますが、日常会話ではこれらの用語が混同されることがよくあります。
Un コーデック オーディオまたはビデオ データ ストリーム (H.264、H.265/HEVC、AV1、VP9、AAC、MP3、Ogg Vorbis など) を圧縮および解凍するアルゴリズムです。 コンテナ (MP4、MKV、AVI、MOV、WebM、Oggなど)は、複数のビデオトラックとオーディオトラックを含むことができる「ラッパー」です。 サブタイトル およびメタデータ。
一般的なコンテナーは次のとおりです。
- AVI: 広く使用されている古典的な Windows プログラムですが、現代的な制限があります。
- MOV: Apple 環境で広く使用されている QuickTime 標準形式。
- MP4: MPEG-4 の標準コンテナ。デバイス間で高い互換性があります。
- オッグ- Vorbis や Theora などのコーデック用のオープン コンテナー。
- MKVMatroska 形式は非常に柔軟かつオープンで、マスターやアーカイブに最適です。
FFmpegでは、主に次のようなパラメータで品質を制御できます。 -b:v (ビデオビットレート)、 -b:a (オーディオビットレート)または人気の CRF H.264やH.265などのコーデックで。例:
ffmpeg -i video.avi -b:v 2500k -b:a 192k salida.mp4
この場合、ビデオのビットレートを 2.500キロバイト/秒 音声録音1件 192キロバイト/秒一般的に、ビットレートが高いほど画質は向上しますが、ファイルサイズも大きくなります。逆もまた同様です。CRF(Constant Rate Factor)では、このロジックが若干変わります。 値が低いほど品質が高く、ファイル サイズが大きくなります。たとえば、H.265 では、CRF が 18 ~ 22 付近の場合、多くの場合、元のファイルとほとんど区別がつきません。
ビデオの変換、圧縮、フォーマットの変更
FFmpegの最も一般的な用途の1つは ビデオを変換および再圧縮してサイズを小さくしたり、形式を変更したりします。適切な品質を維持しながら。グラフィカルインターフェースの代替手段をご希望の場合は、 VLCを使って動画を編集・変換する方法.
のために 基本的な変換入口と出口のポイントを示すだけです:
ffmpeg -i origen.avi destino.mpg
より細かく設定したい場合は、ビデオとオーディオのコーデック、品質モード、コンテナを指定できます。例えば、 H.265 (libx265) を使用してビデオを圧縮する 非常に良い品質で、オーディオに触れることなく:
ffmpeg -i "input.mp4" -c:v libx265 -preset veryslow -crf 18 -c:a copy "salida_comprimida.mkv"
ここで使用しているのは:
- -c:v libx265: H.265 ビデオ コーデック (非常に効率的)。
- -プリセット veryslow: エンコード速度は遅くなりますが、圧縮率は向上します。
- -crf 18: 非常に高品質。軽量化が望める場合は 20 ~ 22 まで上げることができます。
- -c:コピー: オーディオを再圧縮せずにそのままコピーします。
ご希望の場合 音声も圧縮する 128 kb/s の AAC の場合、次を使用できます。
ffmpeg -i input.mp4 -c:v libx265 -preset veryslow -crf 18 -c:a aac -b:a 128k output.mkv
MKVコンテナ形式は、この種の作業に非常に安定しており、柔軟性に優れています。後からどうしてもMP4が必要になった場合は、 再多重化(再圧縮せずにコンテナを変更する) と:
ffmpeg -i salida.mkv -c copy salida_final.mp4
この最後のステップは 速いファイルの「ラッパー」のみが変化するため、 動画や音声コンテンツに触れることなく.
FFmpegを使った基本的な編集操作
FFmpegでは、多くの 重いビデオエディタを開かずに古典的な編集タスクを実行大規模なクリエイティブ編集には不便ですが、特定のタスクには即時に使用できます。
時間の断片を切り取る
動画から特定のセグメントを抽出したい場合は、オプションを使用することができます。 -NS, -t y 〜へ。 例えば、
ffmpeg -i video.mp4 -ss 35 -t 30 fragmento.mp4
この場合、 35秒目からスタート 30秒を抽出します。別のバリエーションとしては、
ffmpeg -i video.mp4 -ss 00:00:35 -to 00:01:05 fragmento.mp4
ここで定義します 開始時間と終了時間 時:分:秒の形式で指定します。指定する順序によって異なります。 -NS に関して -i切断は速くなりますが精度は低くなります。あるいはその逆になります。ほとんどの実用的用途では、例のままにしておくことができます。
ビデオ解像度を変更する
ビデオを別の解像度(例えば1920×1080から)に適応させるには 1280x720、使用できます:
ffmpeg -i entrada.mov -s 1280x720 salida.mp4
パラメータ -s 出力サイズを定義します。ビデオフィルター(-vf スケール=) を使用すると、スケールの変更をより細かく制御したり、特定の比率を維持したりできます。
オーディオトラックを削除または抽出する
したい場合は 音声のみ保存 たとえば、MP3 ビデオの場合は次のものを使用できます。
ffmpeg -i video.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 audio.mp3
これは、ビデオを -vnサンプリング周波数とチャンネルが調整され、MP3 に適したオーディオ ビットレートが定義されます。
欲しいものがあれば ビデオから音声を削除する 画像だけを残すには、次のようにします。
ffmpeg -i entrada.mp4 -an -c:v copy salida_sin_audio.mp4
選択 -an 音声は削除され、 -c:vコピー ビデオの再圧縮を避け、時間を節約し、品質を維持します。
ロゴや透かしを挿入する
ビデオの隅に固定のロゴを配置するには、フィルターを使用できます。 オーバーレイ典型的な例:
ffmpeg -i video.mp4 -i logo.png -filter_complex "overlay=10:10" salida.mp4
このコマンドでは、 オーバーレイ=10:10 これは、ロゴが左端から10ピクセル、上端から10ピクセルの位置にあることを示しています。ロゴを右下隅に移動したい場合は、幅と高さに基づいた式を使用できます。
overlay=x=(main_w-overlay_w):y=(main_h-overlay_h)
この方法ではロゴはどんなビデオ解像度にも適応します 手動で位置を計算する必要はありません。
画像の操作:フレームの抽出とビデオの作成
FFmpegはクラシックビデオだけでなく、 ビデオと画像を変換するタイムラプス、ストップモーション、または特定のフレームの分析に最適です。
ビデオから画像を抽出する
変換したい場合 各フレーム 画像では、このようなもので十分です(その他のオプションについては、 動画やGIFからフレームを抽出する方法):
ffmpeg -i video.mp4 image%d.jpg
これにより、フレームごとに 1 つのファイルが生成されます。 画像1.jpg、画像2.jpg、画像3.jpg…ほとんどのビデオは 25 ~ 30 fps で実行されるため、ビデオが長い場合は、数千枚の画像が作成されることになります。
膨大な数のファイルが生成されないように、フィルターを使用して抽出を制限することができます。 FPSたとえば、1 秒あたり 1 枚の画像の場合:
ffmpeg -i video.mp4 -vf fps=1 image%d.png
この方法では、元のビデオの1秒あたり1つの画像のみがエクスポートされるため、視覚的な要約や 自動サムネイル.
画像からビデオを作成する(タイムラプスとスライドショー)
番号が付けられた写真の連続がある場合(たとえば、 img-01.png、img-02.png、img-03.png…ビデオを簡単に作成できます:
ffmpeg -framerate 5 -i img-%02d.png video.avi
この場合、 -フレームレート 5 生成される動画では、1秒あたり5枚の画像が使用されます。タイムラプス動画の場合は、動きを滑らかにしたい場合は速度を上げ、ゆったりとしたスライドショーにしたい場合は速度を下げると良いでしょう。
FFmpeg はいくつかの命名パターンを理解します。
- ファイル名-%03d.png- filename-001.png から filename-999.png まで一致します。
- ファイル名-%d.png- filename-1.png、filename-2.png などに一致します。
- ファイル名-*.png: 厳密な番号付けに従わない場合の、より一般的なパターン (この場合、順序を制御するために追加のパラメータが必要になります)。
出力ビデオを特定のMP4形式に強制したい場合は、 再生フレームレート次のようなことができます:
ffmpeg -framerate 1 -i img%03d.png -r 25 -pix_fmt yuv420p output.mp4
ここで定義します 1秒あたり1枚の画像をキャプチャ 再生フレームレートは 25 fps で、ピクセル形式はほとんどのプレーヤーと互換性があります。
アニメーションGIFやシンプルなエフェクトを生成する
FFmpegのもう一つの定番は、小さなビデオを ウェブサイトやネットワーク用のアニメーションGIFプロセスは 1 行に簡素化することも、品質を向上させるために複数のステップで実行することもできます。
のために 最も直接的なケース:
ffmpeg -i entrada.mp4 salida.gif
これでGIF画像が作成できますが、最適化されていない可能性があります。サイズと画質をより細かく制御したい場合は、次の方法があります。 ビデオのサイズを変更し、PNGフレームを生成し、そこからGIFを作成します。。 例えば、
ffmpeg -i input.mp4 -vf scale=640x360 -c:v h264 -crf 18 -c:a aac salida_intermedia.mp4
ffmpeg -i salida_intermedia.mp4 frame%04d.png
ffmpeg -i salida_intermedia.mp4 salida.gif
あるいは、外部のGIF編集ツールを使えば、さらに洗練された仕上がりになります。このワークフローでは、 最終ファイルの解像度、品質、サイズを完全に制御.
スクリプトとYAMLでビデオ編集を自動化する
FFmpegが真価を発揮するのは、 反復的なタスクを自動化するスクリプト毎週同じタイプのビデオ(コース、インタビュー、機関向け資料など)を制作する場合は、標準ワークフローを定義して、スクリプトで実質的にすべてを実行できます。
非常に効果的なアプローチは、プロジェクトを次のように説明することです。 YAML ファイル (config.yml)必要なクリップ、画像、継続時間、カット、ボリューム、トランジションの詳細を指定すると、スクリプトがそれを複雑な FFmpeg コマンドに変換します。
このシステムでは、例えば、 要素のリスト(画像、ビデオ、オーディオトラック)を定義する これらは一時ディレクトリで個別に処理(トリミング、音量変更、再スケーリング、正規化)され、その後、オーディオとビデオの同期を維持しながらミリメートル単位の精度で連結されます。
一般的な使用例は次のとおりです:
- トレーニングビデオを作成する スライド + 短いクリップ.
- 複数の標準ブロックで構成される情報カプセルを作成します。
- 一連のビデオ全体のイントロとアウトロを生成します。
FFmpeg を使った実用的なスクリプトの例
この自動化の考え方に基づいて、 さまざまな種類のスクリプト最も単純な設定から非常に複雑な設定まで、常に FFmpeg をエンジンとして使用します。
画像と動画を連結するための一般的なスクリプト
汎用スクリプトは、 異種元素のリスト YAMLで記述された動画、画像、音声クリップ、それぞれの再生時間、開始と終了のトリム、相対的な音量などを割り当てます。スクリプトは事前に調整された一時バージョンを生成し、その後、 リストファイル FFmpeg を使用してすべてを連結します。
これにより、次のことを細かく制御できます。
- プロジェクトの最終解像度と FPS。
- 各セグメントの個別のボリューム。
- グラフィック エディターを開かずに各クリップの開始と終了を行います。
シンプルなスクリプト:カバー画像 + メインビデオ
さらによくあるシナリオは、 静的スライドをカバー画像として表示する (タイトル、ロゴ、イベントの詳細) を数秒間表示してから、メイン ビデオを起動します。
典型的なスクリプト それは次のようになります:
- 表紙画像を 約5秒のビデオクリップ.
- カバーとメイン クリップの両方を、連結と互換性のある形式 (mpegts など) でエンコードします。
- コンテンツを再圧縮せずに両方のセグメントを連結するため、プロセスが高速化され、品質の低下を回避できます。
このタイプのソリューションは通常、次のようなパスに保存されます。 /オートメーション/ビデオ-オープン-サブジェクト/ 授業、講義、録画されたプレゼンテーションの録画ワークフローに簡単に統合できます。
トランジション付きのモンタージュ用に開発されたスクリプト
より高レベルでは、次のようなスクリプトを構築することができます。 スムーズなオーディオとビデオのトランジションを備えた複数のブロック典型的な例としては次のようなものがあります:
- 音楽とアニメーションを使った施設紹介。
- 会議のタイトルと詳細が記載された静止画像。
- メインビデオは RAW で録画されます (最初と最後はトリミング可能)。
- アニメーションと音楽で終わります。
FFmpegでは次のようなフィルタを適用できます。 エックスフェード (ビデオトランジション)と クロスフェード (オーディオトランジション)を使用すると、ブロック間の切り替えがスムーズになります。さらに、以下のこともできます。
- YAML に指定された時間に従って、メインビデオをオンザフライでトリミングします。
- 各セグメントの音量を個別に調整します。
- 720p 解像度や 44.1 kHz オーディオなどの標準パラメータを強制します。
アセンブリのロジックは、 config.yml 各要素のパス、トランジションの持続時間、カットポイントなど、そして次のようなフォルダ内のスクリプト /オートメーション/カフェエディション/ これらすべてをFFmpegのフィルターとマップのチェーンに変換します。その結果、最小限の手作業で、視覚的にも聴覚的にも一貫性のある最終ビデオが完成します。
より便利なコマンドと高度なトリック
上記のすべてに加えて、FFmpegには 無限の使用 必要な時に役立つ「ニッチ」な商品。例えば:
- メタデータの一覧表示または抽出:
ffmpeg -i INPUT -f ffmetadata metadata.txt. - ビデオのオーディオトラックを置き換える ビデオに触れることなく:
ffmpeg -i video.mp4 -i nuevo_audio.mp3 -map 0:v -map 1:a -c copy salida.mp4. - ビデオ内のオーディオ波形の視覚化を生成する フィルター付き
showwavesポッドキャストタイプのビデオに便利です。 - 字幕の形式を変更するたとえば、VTT から ASS へ:
ffmpeg -i subtitulos.vtt salida.ass字幕を簡単に編集するには、 Wordを字幕エディタとして使う. - 音量を調整する すぐに
-volまたはより高度なオーディオ フィルター。
完全なリストを管理するのはほぼ不可能ですが、公式ドキュメントと実用的な例を組み合わせることで構築を開始できます。 頻繁に使用するコマンドの独自のレパートリー 毎回車輪を再発明する必要がなくなるのです。
FFmpegは「奇妙なコンソールプログラム」から 変換、圧縮、一括編集、ビデオ作成の自動化のための中心的なツール個人のコンピューターでも、専門的なスクリプトやワークフローでも、いくつかの基本的なコマンドを書くことに慣れてしまえば、それぞれの新しいユースケースは、すでに習得している基礎に小さな部分を追加するだけの問題になります。
バイトの世界とテクノロジー全般についての情熱的なライター。私は執筆を通じて自分の知識を共有するのが大好きです。このブログでは、ガジェット、ソフトウェア、ハードウェア、技術トレンドなどについて最も興味深いことをすべて紹介します。私の目標は、シンプルで楽しい方法でデジタル世界をナビゲートできるよう支援することです。
