オーディオおよびビデオファイルを操作するための便利なFFmpegコマンド
公開: 2022-02-26FFmpegは、オーディオファイルとビデオファイルを変換するための非常に強力で用途の広いコマンドラインツールです。 これは無料で、Windows、Mac、およびLinuxマシンで利用できます。 2つのビデオファイルを結合する場合でも、ビデオファイルからオーディオコンポーネントを抽出する場合でも、ビデオをアニメーションGIFに変換する場合でも、FFmpegはそれ以上のことを実行できます。
この単純なFFmpegコマンドを使用して、ビデオファイルからオーディオを抽出します。
便利なFFmpegコマンド
FFmpegは、一般的なすべてのオーディオおよびビデオ形式をサポートしています。 または、コマンド./ffmpeg -formats
を実行して、FFmpegインストールでサポートされているすべての形式のリストを取得できます。 始めたばかりの場合は、このツールの機能を理解するためのコマンドをいくつか紹介します。
1.ビデオファイルを小さなクリップにカットします
タイムオフセットパラメータ(-ss)を使用して、HH:MM:SS.ms形式で開始タイムスタンプを指定できます。-tパラメータは、クリップの実際の長さを秒単位で指定するためのものです。
ffmpeg -i input.mp4 -ss 00:00:50.0 -codec copy -t 20 output.mp4
2.ビデオを複数の部分に分割します
再エンコードせずに大きなビデオを複数の小さなクリップに分割したい場合は、ffmpegが役立ちます。 このコマンドは、ソースビデオを2つの部分に分割します。1つは開始から50秒で終了し、もう1つは50秒で開始して入力ビデオの最後で終了します。
ffmpeg -i video.mp4 -t 00:00:50 -c copy small-1.mp4 -ss 00:00:50 -codec copy small-2.mp4
3.ビデオをあるフォーマットから別のフォーマットに変換します
-vcodec
パラメーターを使用して、出力ビデオに使用されるエンコード形式を指定できます。 ビデオのエンコードには時間がかかりますが、出力ビデオの品質が低下しますが、プリセットを強制することでプロセスをスピードアップできます。
ffmpeg -i youtube.flv -c:v libx264 filename.mp4
ffmpeg -i video.wmv -c:v libx264 -preset ultrafast video.mp4
4.ビデオファイルを結合(連結)します
同じコーデックでエンコードされた複数のオーディオまたはビデオファイルがある場合は、FFmpegを使用してそれらを1つのファイルに結合できます。 連結するすべてのソースファイルのリストを含む入力ファイルを作成してから、このコマンドを実行します。
ffmpeg -f concat -i file-list.txt -c copy output.mp4
5.ビデオをミュートします(オーディオコンポーネントを削除します)
-an
パラメータを使用して、ビデオストリームのオーディオ部分を無効にします。
ffmpeg -i video.mp4 -an mute-video.mp4
6.ビデオからオーディオを抽出します
-vn
スイッチはビデオからオーディオ部分を抽出し、-abスイッチを使用してオーディオを256kbpsMP3オーディオファイルとして保存します。
ffmpeg -i video.mp4 -vn -ab 256 audio.mp3
7.ビデオをアニメーションGIFに変換します
FFmpegは、ビデオをアニメーションGIFに変換するための優れたツールであり、品質も悪くありません。 スケールフィルターを使用してGIFの幅を指定します。-tパラメーターは期間を指定し、-rはフレームレート(fps)を指定します。
ffmpeg -i video.mp4 -vf scale=500:-1 -t 10 -r 10 image.gif
8.ビデオから画像フレームを抽出します
このコマンドは、15秒マークのビデオフレームを抽出し、800px幅のJPEG画像として保存します。 -sスイッチ(-s 400x300など)を使用して、画像ファイルの正確なサイズを指定することもできますが、画像サイズが元のビデオファイルのアスペクト比に従わない場合は、引き伸ばされた画像が作成される可能性があります。
ffmpeg -ss 00:00:15 -i video.mp4 -vf scale=800:-1 -vframes 1 image.jpg
9.ビデオを画像に変換する
FFmpegを使用すると、「n」秒ごとにビデオから画像フレームを自動的に抽出でき、画像は順番に保存されます。 このコマンドは、4秒ごとにビデオから画像フレームを保存します。
ffmpeg -i movie.mp4 -r 0.25 frames_%04d.png
10.オーディオとビデオのファイルをマージします
-shortest
スイッチを指定して、最短のクリップが終了したときにエンコードを終了することもできます。
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental output.mp4
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental -shortest output.mp4
11.ビデオのサイズを変更します
アスペクト比を維持しながらビデオのサイズを変更するには、ffmpegでサイズ(-s)スイッチを使用します。
ffmpeg -i input.mp4 -s 480x320 -c:a copy output.mp4
12.画像からビデオスライドショーを作成します
このコマンドは、img001.png、img002.pngなどの名前の一連の画像を使用してビデオスライドショーを作成します。各画像の長さは5秒(-r 1/5)です。
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p slideshow.mp4
13.ポスター画像を音声に追加します
カバー画像をオーディオファイルに追加すると、出力ビデオの長さは入力オーディオストリームの長さと同じになります。 これは、MP3をYouTubeにアップロードする場合に便利です。
ffmpeg -loop 1 -i image.jpg -i audio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4
14.単一の画像をビデオに変換します
-tパラメーターを使用して、ビデオの長さを指定します。
ffmpeg -loop 1 -i image.png -c:v libx264 -t 30 -pix_fmt yuv420p video.mp4
15.映画に字幕を追加する
これにより、.srtファイルから字幕が取得されます。 FFmpegはすべての一般的な字幕フォーマットをデコードできます。
ffmpeg -i movie.mp4 -i subtitles.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mkv
16.オーディオファイルを切り取ります
これにより、トランスコーディングせずに元のオーディオファイルから90秒で始まる30秒のオーディオファイルが作成されます。
ffmpeg -ss 00:01:30 -t 30 -acodec copy -i inputfile.mp3 outputfile.mp3
17.音量を変更します
ボリュームフィルターを使用して、FFmpegを使用してメディアファイルのボリュームを変更できます。 このコマンドは、オーディオファイルの半分の音量になります。
ffmpeg -i input.wav -af 'volume=0.5' output.wav
18.ビデオを回転させる
このコマンドは、ビデオクリップを時計回りに90°回転させます。 移調を2に設定すると、ビデオを反時計回りに90度回転させることができます。
ffmpeg -i input.mp4 -filter:v 'transpose=1' rotated-video.mp4
これにより、ビデオが反時計回りに180度回転します。
ffmpeg -i input.mp4 -filter:v 'transpose=2,transpose=2' rotated-video.mp4
19.ビデオをスピードアップまたはスローダウンします
FFmpegのsetpts
(セットプレゼンテーションタイムスタンプ)フィルターを使用して、ビデオの速度を変更できます。 このコマンドは、ビデオを8倍(1/8)速くするか、 setpts=4*PTS
を使用してビデオを4倍遅くします。
ffmpeg -i input.mp4 -filter:v "setpts=0.125*PTS" output.mp4
20.オーディオをスピードアップまたはスローダウンします
オーディオの速度を変更するには、 atempo
オーディオフィルターを使用します。 このコマンドは、オーディオの速度を2倍にします。 オーディオには0.5から2.0までの任意の値を使用できます。
ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv
Stack Exchangeには、FFmpegを使い始めるための優れた概要があります。 また、ffmpeg.orgの公式ドキュメントまたはtrac.ffmpeg.orgのwikiをチェックして、FFmpegで実行できるすべての可能性について知る必要があります。
参照:基本的なLinuxコマンド