お役立ち情報2023.07.27Written by 毎日チャレンジャーcolumn No.8
FFmpegとは
皆様は動画や音声ファイルなどを変換する場合、どのようはツールをお使いでしょうか。
多くはGUIを持つソフトウェアやツールをお使いと思いますが、今回、CUIを使ったツール、もう少しわかりやすく言うとコマンドラインで操作できる動画変換ツールをご紹介します。
名称:FFmpeg(エフエフエムペグ)
※動画や音声を変換するためのコマンドラインツールです。
コマンドラインツールとはコマンドプロンプト等を使い文字だけで操作するソフトウェアです。
FFmpegはフリーウェアにも関わらず高機能で対応コーデックが非常に多いことで有名です。様々なアプリケーションやプロダクトで使われており、ユーザーが直接FFmpegの存在を意識することは殆どありませんが、例えばストーミング配信等でよく利用されるOBS Studioでも利用されています。
また、コマンドラインツールとして利用するためスクリプトなどのバッチ処理でも利用できます。
それでは、どのような事ができるのか見ていきたいと思います。
FFmpegで何ができる?
FFmpegを使用することにより、例えば下記のことが出来るようになります。
- 映像・音声の画質の変換 (トランスコード)・切り出しや結合
ビットレートの変換や画角を変更することが可能。
他にも、映像の特定位置だけを抜き出して保存し直したり、繋げることも出来ます。
- 映像・音声のフォーマットを変換、特定の場所に保存させる
mp4をrtmpに変換して配信したり、hlsの生成等が行えます。
- 映像・音声を合成・編集する
映像AとBを繋いだり、音声だけのファイルを作る、オーバーレイ等が行えます。
入手方法
FFmpegはソフトウェアではありますが、インストーラのようなものはなありません。パッケージをダウンロードして、好きなところに展開するだけで完了です。
-
- ダウンロード先:https://ffmpeg.org/
※2023年5月23日現在

その後、コマンドプロンプトで使用できるようにパスを繋げる「環境変数」という設定を開き、ファイルを展開したディレクトリのパスを追加します。下記はWindowsの設定の場合の例です。
-
- システムのプロパティ>詳細設定>環境変数>システム環境変数>Path
Path登録例)Drive:C/Prgram Files配下にディレクトリを作成し、展開した場合
C:\Program Files\ffmpeg-master-latest-win64-gpl\ffmpeg-master-latest-win64-gpl\bin

起動確認
コマンドプロンプトを開き、「ffmpeg -version」と入力してみます。
正しく設定ができていると、画面上に展開したFFmpegのVersion情報や使用できるコーデックの一覧等が展開表示されます。
画面例)成功時

画面例)失敗時:設定が間違っている

コマンド構成例
設定が完了しましたので、いくつかのコマンド構成例をご紹介いたします。
- ファイル名:input fileをmp4形式に変換、outputfile.mp4という名前(ディレクトリ)で保存したい
ffmpeg -i inputfile -f mp4 -vcodec libx264 -acodec libfaac -vb 256k -ab 64k outputfile.mp4
- ファイル名:input fileの音声だけを取り出して、outputfile.aacという名前で保存したい
ffmpeg -i inputfile -f aac -vn -acodec libfaac -ab 64k outputfile.aac
- 映像ファイル(video.mp4)と音声ファイル(audio.wav)を合成、音声はaudio.wavに書き換えたい
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 output.mp4
- ファイル名:input fileをrtmpで配信したい(Youtube Live等)。配信先URLはrtmp://example.com/stream
ffmpeg -re -i inputfile -vcodec libx264 -acodec libfaac -vb 256k -ab 64k -f flv
rtmp://example.com/stream
- 映像同士のオーバーレイ 動画ファイルinputfile_largeの中に動画ファイルinputfile_smallを左上に設置、1つの動画に合成
ffmpeg -i inputfile_large.mp4 -i inputfile_small.mp4 -filter_complex "overlay=x=0:y=0" -preset ultrafast merge.mp4
コマンド入力時の主なメインオプション
ファイルの入出力そのものにかかわるオプションをご紹介します。
- -I
- 入力ファイル名を設定する ※絶対パス
- -f
- 出力フォーマットを指定する ※絶対パス
- -y
- 出力するファイル名と同じ名前のファイルが出力先にある場合に上書する
- -ss
- 指定した時間から最後までを変換する
- -t
- 上記をより細かく、エンドも指定する
- -re
- 配信を行う際は、これで強制等倍にしておかないと早送り映像が配信されてしまう
コマンド入力時の主なビデオオプション
映像品質や画角などを設定するオプションをご紹介します。
- -b
- 動画部分のビットレートを設定する ※–b 4000k等
- -r
- フレームレートを設定する ※デフォルトは25
- -s
- 動画のサイズを横×縦で設定する ※1280x720等
- -aspect
- アスペクト比を設定する ※4:3, 16:9 or 1.3333, 1.7777
- -vn
- ビデオを無効にする。動画からmp3ファイルを生成する際等に使用する
- -vcodec/-c:v
- ビデオコーデックを設定する。設定しない場合は入力ファイルと同じコーデックになる
※ffmpeg –hのヘルプを参照し、使用しているFFmpegのバージョンによる“単位”を確認する必要があります。
例)-b bitrate video bitrate (please use -b:v)
コマンド入力時の主なオーディオオプション
音声の設定に関するオプションをご紹介します。
- -ab
- オーディオの全チャンネル合計のビットレートを設定する ※-ab 64 -ab 128k等
- -ar
- サンプリング周波数を設定する ※-ar 48000
- -ac
- 音声のチャンネル数を設定する
- -acodec/-c:a
- 音声コーデックを設定する。設定しない場合は入力されたファイルと同じコーデック
- an
- 音声を無効にする
無声映画の作製や、別途音声は吹き替えやBGMを入れる場合のベース作製等
- -vol
- 通常の音量を256として音量を設定する ※128/512等
※ffmpeg –hのヘルプを参照し、使用しているFFmpegのVerによる単位を確認する必要がある
例)-ab bitrate audio bitrate (please use -b:a)
GUIに慣れてしまうとコマンドラインを使うシーンはあまりないかも知れませんが、機会がありましたら是非、使ってみて下さい。
毎日チャレンジャー業務系のシステム開発やWEBサービスの企画・開発、SaaSサービスの営業等を長きにわたり経験したのちイノコスへ。放送や映像業界には全くの素人ながら業界に飛び込み、全力で勉強中。趣味はジム・ヨガ・旅行・グルメ・ウォーキング・Netflixと多彩。