FFmpegとは何ですか
FFmpeg は、オーディオ ファイルとビデオ ファイルの処理、変換、編集、ストリーミングに使用できるオープンソースのクロスプラットフォームのオーディオおよびビデオ処理ツールセットです。オーディオとビデオのデコード、エンコード、カプセル化、フィルタリング、トランスコーディング、その他の機能を実現できる一連の強力なコマンド ライン ツールを提供します。
FFmpegの機能
FFmpeg には多くの機能がありますが、その一部のみを以下に示します。
1️⃣オーディオとビデオのトランスコーディングと変換:オーディオとビデオの形式を変換し、オーディオとビデオのインターセプト、編集、結合などの操作を実装できます。
2️⃣ストリーミングメディア サーバー:ライブ ブロードキャスト、オンデマンド、その他の機能を実現するストリーミング メディア サーバーを構築するために使用できます。
3️⃣コードストリーム分析:オーディオとビデオのコード ストリーム分析を実行して、オーディオとビデオのエンコード情報、フレーム レート、ビット レート、その他のパラメーターを取得できます。
4️⃣マルチメディア処理:オーディオやビデオのキーフレームの抽出、透かしや字幕の追加などに使用できます。
5️⃣オーディオとビデオのパラメータ調整:解像度、フレームレート、ビットレートなどのオーディオとビデオのパラメータを調整できます。
6️⃣ビデオのクリッピングと結合:ビデオ ファイルから特定のセグメントを抽出したり、複数のビデオ ファイルを 1 つに結合したりできます。
7️⃣画像シーケンスをビデオに変換:一連の画像ファイルをビデオ ファイルに変換して、アニメーション効果を実現できます。
8️⃣ビデオのスクリーンショットとサムネイルの生成:ビデオから静止画像を抽出すること、つまりビデオの特定のフレームを画像としてキャプチャすることも、ビデオのサムネイルを生成することもできます。
9️⃣ビデオ録画:画面とカメラのビデオを録画するために使用できます。
ffmpegをインストールする
Windows と Linux で ffmpeg をインストールする方法は少し異なりますので、以下に紹介します。
Windowsにffmpegをインストールする
- ffmpeg 公式 Web サイト (https://ffmpeg.org/download.html) にアクセスして、バイナリ ファイルの最新バージョンをダウンロードします。
- ダウンロードしたファイルを指定したディレクトリに解凍します
C:\Program Files\ffmpeg
。 - コマンドラインから直接使用できるように、ffmpeg をシステム環境変数に追加します。具体的な方法は、「このコンピュータ」を右クリック→「プロパティ」→「システムの詳細設定」→「環境変数」を選択し、「システム環境変数」で「パス」を見つけて編集し、binディレクトリのパスを追加します。 ffmpeg を入力します。
- インストールが成功したかどうかを確認するには、コマンド プロンプトまたは PowerShell を開いて と入力し
ffmpeg -version
、バージョン番号が出力できればインストールは成功です。
Linux に ffmpeg をインストールする
以下は、さまざまな Linux ディストリビューションに ffmpeg をインストールするためのコマンドです。
Debian/Ubuntu
sudo apt update
sudo apt install ffmpeg
フェドーラ
sudo dnf update
sudo dnf install ffmpeg
CentOS/RHEL
sudo yum update
sudo yum install ffmpeg
Arch Linux
sudo pacman -Syu
sudo pacman -S ffmpeg
openSUSE
sudo zypper refresh
sudo zypper install ffmpeg
これらのコマンドは、Linux ディストリビューションによって若干異なる場合があることに注意してください。別のディストリビューションを使用している場合は、その公式ドキュメントで正しいインストール コマンドを参照してください。
FFmpeg ファイルの説明
Static 版 FFmpeg の bin フォルダには ffmpeg、ffplay、ffprobe の 3 つのファイルしかなく、これら 3 つは FFmpeg の 3 つの主要ツールである FFmpeg のソース コードをコンパイルした後に生成される実行ファイルです。
ffmpeg:エンコードとデコードに使用されます。ffmpeg の主なワークフローは比較的単純です。まず、入力ソースが読み込まれます。
ffplay:リアルタイムのオーディオとビデオの処理と再生に使用されます。
ffprobe:コード ストリームの分析に使用されます。
1.フォーマット変換:
FFmpeg は、豊富なオーディオおよびビデオ形式変換機能を提供しており、形式変換コマンドの形式は次のとおりです。
ffmpeg -i 输入文件路径 -b:v 输出视频码率 输出文件路径
2. ストリーミングメディアサーバー
FFmpeg を使用してストリーミング メディア サーバーを構築するコマンドは、使用される特定のオペレーティング システムとネットワーク プロトコルに関連しています。次は、Ubuntu システムで RTMP プロトコルを使用するコマンドの例です。
ffmpeg -i input_file.mp4 -f flv rtmp://server_address/app_name/stream_name
このうち、input_file.mp4 はトランスコードするビデオ ファイル、rtmp://server_address/app_name/stream_name は RTMP ストリームのアドレス、server_address はサーバー アドレス、app_name はアプリケーション名、stream_name はストリーム。
さらに詳細な情報が必要な場合は、FFmpeg 公式ドキュメントを参照するか、関連するチュートリアルを検索してください。
3. コードストリーム分析
FFmpeg のコード ストリーム解析コマンドは ffprobe です。
FFprobe はオーディオおよびビデオ形式情報を分析するツールで、ファイル形式、エンコード方式、パッケージング形式、ビデオパラメータ、オーディオパラメータなどのマルチメディアファイルのメタデータを読み取り、分析できます。
使用方法は、ffprobe [オプション] input_file です。
ffprobe -show_format [FORMAT] filename=[/path/to/]file。
4. マルチメディア処理
FFmpeg には、次のような多くのマルチメディア処理コマンドがあります。
- 特定のビデオをカットします。
ffmpeg -ss 开始时间 -t 持续时间 -i input_file -vcodec copy -acodec copy output_file
- ビデオとオーディオのストリームを分離し、別のファイルとして保存します。
ffmpeg -i input_file -vcodec copy -an output_file_videoffmpeg -i input_file -acodec copy -vn output_file_audio
- ビデオ逆多重化:
ffmpeg -i input_file -vcodec copy -an output_file
- ビデオのトランスコーディング:
ffmpeg -i input_file -vcodec new_codec -s new_size -an output_file
5.ビデオの結合
FFmpeg ビデオ結合を使用するためのコマンドは、特定のニーズに応じて異なりますが、一般的なコマンドの例をいくつか示します。
- 複数のビデオを水平方向に結合します。
ffmpeg -i input1.mp4 -i input2.mp4 -lavfi hstack output.mp4
このうち、input1.mp4 と input2.mp4 は結合対象のビデオ ファイルであり、output.mp4 は出力結合ビデオ ファイルです。
- 複数のビデオを垂直方向に結合します。
ffmpeg -i input1.mp4 -i input2.mp4 -lavfi vstack output.mp4
このうち、input1.mp4 と input2.mp4 は結合対象のビデオ ファイルであり、output.mp4 は出力結合ビデオ ファイルです。
- 複数のビデオをグリッド結合します。
ffmpeg -i input1.mp4 -i input2.mp4 -lavfi grid=rows=2:columns=2 output.mp4
このうち、input1.mp4、input2.mp4 などが結合対象のビデオ ファイルで、output.mp4 が出力結合ビデオ ファイルです。
6. 録画画面
ffmpeg を使用して画面を記録するには、次のコマンドを使用できます。
ffmpeg -f x11grab -s 分辨率 -i :0.0 -framerate 帧率 输出文件名
パラメータの説明:
-f
入力形式を X11 Grab (X11 スクリーン キャプチャ) として指定します。-s
出力ビデオの解像度を「1280x720」などに設定します。-i
続く「:0.0」は、画面全体をキャプチャすることを意味します。特定のウィンドウのみをキャプチャしたい場合は、「:0.0」を対応するウィンドウ番号に置き換えます。-framerate
フレームレートを設定します(例:「30」)。- 最後に、「output.mp4」などの出力ファイル名があります。
たとえば、解像度 1280x720、フレーム レート 30 のビデオ ファイルを録画する場合は、次のコマンドを実行できます。
ffmpeg -f x11grab -s 1280x720 -i :0.0 -framerate 30 output.mp4
7. 録画用カメラ
ffmpeg を使用してカメラビデオを記録するには、次のコマンドを使用できます。
ffmpeg -f v4l2 -i /dev/video0 output.mp4
その中で、-f v4l2
入力デバイスの選択に Video4Linux2 (v4l2) ドライバーを使用することを意味します。/dev/video0
これはカメラデバイスのパスであり、実際の状況に応じて変更できます。output.mp4
は出力ビデオファイル名です。
解像度やフレーム レートなどのパラメータを指定する必要がある場合は、次のようなコマンドを使用できます。
ffmpeg -f v4l2 -i /dev/video0 -s WIDTHxHEIGHT -r FRAME_RATE output.mp4
このうち、 はWIDTHxHEIGHT
動画の解像度などを表します1280x720
。FRAME_RATE
ビデオのフレーム レートを示します (例: ) 30
。