初心者向けの 20 以上の FFmpeg コマンド
FFmpeg チュートリアルと例
このガイドでは、FFmpeg マルチメディア フレームワークの使用方法を例を挙げて、さまざまなオーディオ、ビデオのトランスコーディング、変換操作を実行する方法について説明します。初心者向けに、最も一般的かつ頻繁に使用される 20 個以上のFFmpeg コマンドをまとめました。
このガイドは、随時例を追加して更新し続けます。このガイドをブックマークし、しばらくしてから戻って更新を確認してください。始めましょう?
Linux に FFmpeg をインストールする
Linux システムに FFmpeg をまだインストールしていない場合は、次のガイドを参照してください。
- Linux に FFmpeg をインストールする
FFmpeg コマンドと例
FFmpeg コマンドの一般的な構文は次のとおりです。
ffmpeg [global_options] {[input_file_options] -i input_url} ...
{[output_file_options] output_url} ...
ここでは、重要で便利な FFmpeg コマンドをいくつか見ていきます。
1. オーディオ/ビデオ ファイル情報の取得
メディア ファイルの詳細を表示するには、次のコマンドを実行します。
ffmpeg -i video.mp4サンプル出力:
ffmpeg version n4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8.2.1 (GCC) 20181127
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.20.100
Duration: 00:00:28.79, start: 0.000000, bitrate: 454 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/bt470bg/smpte170m), 1920x1080 [SAR 1:1 DAR 16:9], 318 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : ISO Media file produced by Google Inc. Created on: 04/08/2019.
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : ISO Media file produced by Google Inc. Created on: 04/08/2019.
At least one output file must be specified上記の出力に見られるように、FFmpeg は、バージョン、構成の詳細、著作権表示、ビルドおよびライブラリのオプションなどの FFmpeg の詳細とともにメディア ファイル情報を表示します。
FFmpeg バナーやその他の詳細を表示したくないが、メディア ファイル情報のみを表示したい場合は、以下のように -hide_banner フラグを使用します。
ffmpeg -i video.mp4 -hide_bannerサンプル出力:
FFmpeg を使用してオーディオ、ビデオ ファイル情報を表示する
見る?現在は、メディア ファイルの詳細のみが表示されます。
推奨読書:
- MediaInfo を使用して Linux でメディア ファイル情報を表示する
2. 動画ファイルを別の形式に変換する
FFmpeg は機能が豊富で強力なオーディオおよびビデオ コンバーターであるため、異なる形式間でメディア ファイルを変換することができます。たとえば、mp4 ファイルを avi ファイル に変換するには、次のコマンドを実行します。
ffmpeg -i video.mp4 video.avi同様に、メディア ファイルを任意の形式に変換できます。
たとえば、YouTube の flv 形式の動画を mpeg 形式に変換するには、次のコマンドを実行します。
ffmpeg -i video.flv video.mpegソース動画ファイルの品質を維持したい場合は、'-qscale 0' パラメータを使用します。
ffmpeg -i input.webm -qscale 0 output.mp4FFmpeg でサポートされている形式のリストを確認するには、次を実行します。
ffmpeg -formats3. ビデオファイルをオーディオファイルに変換する
ビデオ ファイルをオーディオ ファイルに変換するには、出力形式を .mp3、.ogg、またはその他のオーディオ形式として指定するだけです。
上記のコマンドは、input.mp4 ビデオ ファイルを output.mp3 オーディオ ファイルに変換します。
ffmpeg -i input.mp4 -vn output.mp3また、以下に示すように、出力ファイルに対してさまざまなオーディオ トランスコーディング オプションを使用できます。
ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -ab 320 -f mp3 output.mp3ここ、
-vn- 出力ファイルでのビデオ録画を無効にしたことを示します。-ar- 出力ファイルの音声周波数を設定します。使用される一般的な値は、22050、44100、48000Hz です。-ac- オーディオ チャンネルの数を設定します。-ab- オーディオのビットレートを示します。-f- 出力ファイル形式。この例では、mp3形式です。
上記のコマンドを実行すると、以下のような警告メッセージが表示されます。
[libmp3lame @ 0x5589ed539240] Bitrate 320 is extremely low, maybe you mean 320k
The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s
これは、非常に低いビットレートとして 320 ビット/秒を指定したためです。これにより、より小さな出力ファイルが作成されます。最高品質の出力を得るには、ビットレート値を 320 ではなく 320k として使用します。
4. オーディオファイルの音量を変更する
FFmpeg では、"volume filter" オプションを使用してオーディオ ファイルの音量を変更できます。
たとえば、次のコマンドは音量を半分に下げます。
ffmpeg -i input.mp3 -af 'volume=0.5' output.mp3同様に、以下のように音量を増やすことができます。
ffmpeg -i input.mp3 -af 'volume=1.5' output.mp35.ビデオファイルの解像度を変更する
ビデオ ファイルに特定の解像度を設定したい場合は、次のコマンドを使用できます。
ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4または、
ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4上記のコマンドは、指定されたビデオ ファイルの解像度を 1280x720 に設定します。
同様に、上記のファイルを 640x480 サイズに変換するには、次のコマンドを実行します。
ffmpeg -i input.mp4 -filter:v scale=640:480 -c:a copy output.mp4または、
ffmpeg -i input.mp4 -s 640x480 -c:a copy output.mp4このトリックは、ビデオ ファイルをタブレットやモバイルなどの小型の表示デバイスに合わせて拡大縮小するのに役立ちます。
6. ビデオファイルの圧縮
ディスク領域を節約するには、メディア ファイルのサイズを小さいサイズに縮小することをお勧めします。
次のコマンドは、出力ファイルのサイズを圧縮して削減します。
ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4動画ファイルのサイズを小さくしようとすると、品質が低下することに注意してください。その crf 値を 23 に下げることができ、24 の場合はそれ以下にすることができます。攻撃的すぎるです。
次のオプションを含めることで、オーディオを少しトランスコードしてステレオにし、サイズを小さくすることもできます。
-ac 2 -c:a aac -strict -2 -b:a 128k7. オーディオファイルの圧縮
ビデオ ファイルの圧縮と同様に、ディスク領域を節約するために、-ab フラグを使用してオーディオ ファイルを圧縮することもできます。
320 ビットレートのオーディオ ファイルがあるとします。以下のようにビットレートを低い値に変更して圧縮したいとします。
ffmpeg -i input.mp3 -ab 128 output.mp3利用可能なさまざまなオーディオ ビットレートのリストは次のとおりです。
- 96kbps
- 112kbps
- 128kbps
- 160kbps
- 192kbps
- 256kbps
- 320kbps
8. ビデオファイルからオーディオストリームを削除する
ビデオ ファイルからの音声が不要な場合は、-an フラグを使用します。
ffmpeg -i input.mp4 -an output.mp4ここで、'an' は音声が録音されていないことを示します。つまり、このオプションは音声をミュートします。
上記のコマンドは、オーディオ関連のフラグをすべて元に戻します。
9. メディア ファイルからのビデオ ストリームの削除
同様に、ビデオ ストリームが不要な場合は、'vn' フラグを使用してメディア ファイルから簡単に削除できます。 vn はビデオ録画なしの略です。つまり、このコマンドは指定されたメディア ファイルをオーディオ ファイルに変換します。
次のコマンドは、指定されたメディア ファイルからビデオを削除します。
ffmpeg -i input.mp4 -vn output.mp3次の例に示すように、'-ab' フラグを使用して出力ファイルのビットレートを指定することもできます。
ffmpeg -i input.mp4 -vn -ab 320 output.mp310. ビデオから画像を抽出する
FFmpeg のもう 1 つの便利な機能は、ビデオ ファイルから画像を簡単に抽出できることです。これは、ビデオ ファイルからフォト アルバムを作成する場合に非常に便利です。
ビデオ ファイルから画像を抽出するには、次のコマンドを使用します。
ffmpeg -i input.mp4 -r 1 -f image2 image-%2d.pngここ、
-r- フレーム レートを設定します。つまり、1 秒あたりに画像に抽出されるフレームの数です。デフォルト値は25です。-f- 出力形式、つまりこの場合は画像形式を示します。image-%2d.png- 抽出された画像にどのような名前を付けるかを示します。この場合、名前はimage-01.png、image-02.png、image-03.pngなどのように始まる必要があります。 。%3dを使用する場合、画像の名前はimage-001.png、image-002.pngなどのように始まります。
11. ビデオのトリミング
FFMpeg を使用すると、指定したメディア ファイルを任意の寸法でトリミングできます。
ビデオ ファイルをクロップする構文は次のとおりです。
ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4ここ、
input.mp4- ソースビデオファイル。-filter:v- ビデオ フィルタを示します。crop- クロップ フィルタを示します。w- ソースビデオから切り取る長方形の幅。h- 長方形の高さ。x- ソースビデオから切り取る長方形の x 座標。y- 長方形の y 座標。
幅 640 ピクセルと高さ 480 ピクセルのビデオを作成したいとします。 位置 (200,150) の場合、コマンドは次のようになります。
ffmpeg -i input.mp4 -filter:v "crop=640:480:200:150" output.mp4ビデオをトリミングすると品質に影響することに注意してください。必要な場合以外はこれを行わないでください。
12. ビデオの特定部分を変換する
場合によっては、ビデオ ファイルの特定の部分 (期間) のみを別の形式に変換したい場合があります。たとえば、次のコマンドは、指定された video.mp4 ファイルの最初の 10 秒を video.avi 形式に変換するとします。
ffmpeg -i input.mp4 -t 10 output.aviここでは時間を秒単位で指定します。また、hh.mm.ss 形式で時刻を指定することもできます。
13. ビデオのアスペクト比を設定する
以下のように -aspect フラグを使用してビデオ ファイルにアスペクト比を設定できます。
ffmpeg -i input.mp4 -aspect 16:9 output.mp4一般的に使用されるアスペクト比は次のとおりです。
- 16:9
- 4:3
- 16:10
- 5:4
- 2:21:1
- 2:35:1
- 2:39:1
14. ポスター画像をメディアファイルに追加する
ポスター画像をファイルに追加すると、オーディオ ファイルまたはビデオ ファイルの再生中に画像が表示されるようになります。これは、ビデオ ホスティングまたは共有 Web サイトでオーディオ ファイルをホストするのに便利です。
ffmpeg -loop 1 -i inputimage.jpg -i inputaudio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp415. 開始時間と終了時間を使用してメディア ファイルをトリミングする
開始時間と終了時間を使用してビデオを小さなクリップにトリミングするには、次のコマンドを使用できます。
ffmpeg -i input.mp4 -ss 00:00:50 -codec copy -t 50 output.mp4ここ、
--s- ビデオクリップの開始時間を示します。この例では、開始時間は 50 秒目です。-t- 合計時間を示します。
これは、開始時刻と終了時刻を使用してオーディオ ファイルまたはビデオ ファイルから一部を切り取りたい場合に非常に役立ちます。
同様に、以下のように音声ファイルをトリミングできます。
ffmpeg -i audio.mp3 -ss 00:01:54 -to 00:06:53 -c copy output.mp316. オーディオ/ビデオ ファイルを複数の部分に分割する
一部の Web サイトでは、特定のサイズのビデオのみをアップロードできます。たとえば、Whatsapp では、インドのユーザーに対してステータス メッセージとして設定できるのは 15 秒のビデオのみです。このような場合は、以下のように大きな動画ファイルを複数の小さな部分に分割することができます。
ffmpeg -i input.mp4 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -codec copy part2.mp4ここで、-t 00:00:30 は、動画の先頭から 30 秒目までに作成される部分を示します。 -ss 00:00:30 は、ビデオの次の部分の開始タイムスタンプを示します。これは、2 番目のパートが 30 秒目から始まり、元のビデオ ファイルの終わりまで続くことを意味します。
Recommended Download - Free Guide: "How to Start Your Own Successful Podcast"17. オーディオファイルとビデオファイルを結合する
オーディオ ファイルとビデオ ファイルをオーディオ再エンコードでマージするには、次のコマンドを実行します。
ffmpeg -i inputvideo.mp4 -i inputaudio.mp3 -c:v copy -c:a aac output.mp4上記のコマンドは、inputvideo.mp4 ファイルと inputaudio.mp3 を output.mp4 にマージします。音声ファイルも再エンコードされます。
ここでは、オーディオ ファイルとビデオ ファイルが同じ長さであり、ビデオ ファイルにはオーディオ ストリームが含まれていないと仮定します。
オーディオまたはビデオ ストリームが長い場合は、-shortest オプションを追加して、1 つのファイルが終了すると ffmpeg がエンコードを停止するようにすることができます。
入力ビデオに既にオーディオが含まれており、それを置き換えたい場合は、以下に示すように、どのオーディオ ストリームを取得するかを ffmpeg に指示する必要があります。
ffmpeg -i inputvideo.mp4 -i inputaudio.mp3 -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 output.mp4-map オプションを使用すると、ffmpeg は最初の入力からの最初のビデオ ストリームと 2 番目の入力からの最初のオーディオ ストリームのみを出力ファイルに使用します。
音声ファイルをビデオファイルと結合したい場合。オーディオを再エンコードせずに、以下のように両方のファイルをコピーするだけです。
ffmpeg -i inputvideo.mp4 -i inputaudio.mp3 -c copy output.mkv18. 複数のオーディオ/ビデオ部分を 1 つに結合またはマージする
FFmpeg は複数のビデオ部分を結合して 1 つのビデオ ファイルを作成します。
結合するファイルの正確なパスを含む join.txt ファイルを作成します。すべてのファイルは同じ形式 (同じコーデック) である必要があります。以下のように、すべてのファイルのパス名を 1 つずつ記載する必要があります。
file /home/sk/myvideos/part1.mp4
file /home/sk/myvideos/part2.mp4
file /home/sk/myvideos/part3.mp4
file /home/sk/myvideos/part4.mp4次に、次のコマンドを使用してすべてのファイルを結合します。
ffmpeg -f concat -i join.txt -c copy output.mp4以下のようなエラーが発生した場合。
[concat @ 0x555fed174cc0] Unsafe file name '/path/to/mp4'
join.txt: Operation not permitted「-safe 0」 を追加します。
ffmpeg -f concat -safe 0 -i join.txt -c copy output.mp4上記のコマンドは、part1.mp4、part2.mp4、part3.mp4、および part4.mp4 ファイルを結合します。 "output.mp4" という単一のファイルに保存します。
あるいは、次のワンライナー コマンドを使用して、ディレクトリ内のすべてのファイルを結合することもできます。ファイルがあるディレクトリに移動し、次のコマンドを実行して、audio1.mp3、audio2,mp3、および audio3.mp3 という名前のファイルを結合します。 output.mp3 にコピーします。
ffmpeg -i "concat:audio1.mp3|audio2.mp3|audio3.mp3" -c copy output.mp3
19. ビデオファイルに字幕を追加する
FFmpeg を使用してビデオ ファイルに字幕を追加することもできます。以下に示すように、ビデオの正しい字幕をダウンロードし、ビデオに追加します。
fmpeg -i input.mp4 -i subtitle.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mp420.ビデオまたはオーディオファイルのプレビューまたはテスト
プレビューして、出力ファイルが適切にトランスコードされているかどうかを確認またはテストすることができます。これを行うには、ターミナルから次のコマンドを使用して再生できます。
ffplay video.mp4ffplayを使用してビデオファイルを再生する
同様に、以下に示すようにオーディオ ファイルをテストできます。
ffplay audio.mp3ffplayを使用してオーディオファイルを再生する
21. ビデオの再生速度を増減する
FFmpeg を使用すると、ビデオの再生速度を調整できます。
ビデオの再生速度を上げるには、次のコマンドを実行します。
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4このコマンドはビデオの速度を 2 倍にします。
ビデオの速度を遅くするには、1 より大きい乗数を使用する必要があります。再生速度を下げるには、次を実行します。
ffmpeg -i input.mp4 -vf "setpts=4.0*PTS" output.mp422. オーディオの再生速度を増減する
オーディオ再生の速度を上げたり下げたりするには、"atempo" オーディオ フィルターを使用します。次のコマンドはオーディオの速度を 2 倍にします。
ffmpeg -i input.mp4 -filter:a "atempo=2.0" -vn output.mp4オーディオには 0.5 から 2.0 までの任意の値を使用できます。
23. アニメーションGIFの作成
私たちは、ほぼすべてのソーシャル ネットワークやプロフェッショナル ネットワークで、さまざまな目的で GIF 画像を使用しています。 FFmpeg を使用すると、アニメーションビデオファイルを簡単かつ迅速に作成できます。
次のガイドでは、Linux および Unix 系システムで FFmpeg と ImageMagick を使用してアニメーション GIF ファイルを作成する方法を説明します。
- Linux でアニメーション GIF を作成する方法
推奨読書:
- Gifski - クロスプラットフォームの高品質 GIF エンコーダー
24. PDF ファイルからビデオを作成する
私は何年にもわたって多くの PDF ファイル (主に Linux チュートリアル) を収集し、タブレット PC に保存しました。タブレットから読むのが面倒に感じることもあります。
そこで、PDF ファイルからビデオを作成し、テレビやコンピューターなどの大画面デバイスで視聴することにしました。 PDF ファイルのコレクションからムービー ファイルを作成する方法を疑問に思ったことがある場合は、次のガイドが役立ちます。
- Linux で PDF ファイルからビデオを作成する方法
25.ビデオを回転する
異なる向き (縦または横) のビデオ ファイルがある場合は、次のガイドの説明に従ってそれらを回転できます。
- コマンドラインから FFMpeg を使用してビデオを回転する方法
26.ビデオをWhatsAppビデオ形式に変換する
WhatsApp は一部のビデオをサポートしていません。連絡先と共有したり、WhatsApp ステータスに設定したりすることはできません。心配ない!次のリンクで説明されているように、FFmpeg を使用して WhatsApp がサポートするビデオ形式を簡単に変換できます。
- FFmpeg を使用してビデオを WhatsApp ビデオ形式に変換する
27. ビデオのズームインとズームアウト
FFmpeg には、特定のタスクを実行するための便利なフィルターが多数あります。そのうちの 1 つはズームパンです。ズームパン フィルターを使用すると、X 秒ごとに定期的に簡単にズームインおよびズームアウトできます。
詳細については、次のリンクを参照してください。
- FFmpeg を使用してビデオをズームインおよびズームアウトする方法
28. 助けを求める
このガイドでは、最も一般的に使用される FFmpeg コマンドについて説明しました。さまざまな高度な機能を実行するためのさまざまなオプションがあります。詳細については、マニュアルページを参照してください。
man ffmpeg関連記事:
- 初心者向けの例を含む Youtube-dl チュートリアル
結論
このガイドでは、FFmpeg とは何か、さまざまな Linux ディストリビューションに FFmpeg をインストールする方法について説明しました。そして、FFmpeg を使い始めるためによく使用されるFFmpeg コマンドのリストと例を説明しました。
リソース:
- FFmpeg ドキュメント