GNU/Linux >> Linux の 問題 >  >> Linux

初心者のための20以上の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

出力例:

見る?現在、メディアファイルの詳細のみが表示されます。

推奨読書:

  • 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.mp4

FFmpegでサポートされているフォーマットのリストを確認するには、次のコマンドを実行します:

$ ffmpeg -formats

3。ビデオファイルをオーディオファイルに変換する

ビデオファイルをオーディオファイルに変換するには、出力形式を.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です。 、4410048000 Hz。
  • -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を指定したためです。 非常に低いビットレートとしてのビット/秒。これにより、より小さな出力ファイルが作成されます。最高品質の出力を得るには、ビットレート値を320kとして使用します 320だけでなく 。

4。オーディオファイルの音量を変更する

FFmpegを使用すると、"volume filter"を使用してオーディオファイルの音量を変更できます。 オプション。

たとえば、次のコマンドは音量を半分に減らします。

$ ffmpeg -i input.mp3 -af 'volume=0.5' output.mp3

同様に、以下のように音量を上げることができます:

$ ffmpeg -i input.mp3 -af 'volume=1.5' output.mp3

5。ビデオファイルの解像度を変更する

ビデオファイルに特定の解像度を設定する場合は、次のコマンドを使用できます。

$ 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 128k

7。オーディオファイルの圧縮

ビデオファイルを圧縮するのと同じように、 -abを使用してオーディオファイルを圧縮することもできます。 ディスク容量を節約するためにフラグを立てます。

320のオーディオファイルがあるとします。 kbpsビットレート。ビットレートを以下のように低い値に変更して圧縮します。

$ ffmpeg -i input.mp3 -ab 128 output.mp3

利用可能なさまざまなオーディオビットレートのリストは次のとおりです。

  1. 96kbps
  2. 112kbps
  3. 128kbps
  4. 160kbps
  5. 192kbps
  6. 256kbps
  7. 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.mp3

10。ビデオから画像を抽出する

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.pngimage-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。動画の特定の部分を変換する

ビデオファイルの特定の部分(期間)のみを別の形式に変換したい場合があります。たとえば、次のコマンドは最初の10を変換するとします。 秒 指定されたvideo.mp4ファイルを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.mp4

15。開始時間と停止時間を使用してメディアファイルをトリミングします

開始時間と停止時間を使用してビデオをより小さなクリップにトリミングするには、次のコマンドを使用できます。

$ 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.mp3

16。オーディオ/ビデオファイルを複数の部分に分割する

一部の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。複数のオーディオ/ビデオパーツを1つに結合またはマージする

FFmpegはまた、複数のビデオパーツを結合し、単一のビデオファイルを作成します。

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.mp4part3.mp4 、およびpart4.mp4 ファイルを"output.mp4"という1つのファイルにまとめます 。

または、次のワンライナーコマンドを使用して、ディレクトリ内のすべてのファイルを結合することもできます。ファイルがあるディレクトリに移動し、次のコマンドを実行して、audio1.mp3という名前のファイルを結合します。 、audio2,mp3 およびaudio3.mp3 output.mp3に 。

$ ffmpeg -i "concat:audio1.mp3|audio2.mp3|audio3.mp3" -c copy output.mp3

18。ビデオファイルに字幕を追加する

FFmpegを使用してビデオファイルに字幕を追加することもできます。ビデオの正しい字幕をダウンロードして、以下に示すようにビデオに追加します。

$ fmpeg -i input.mp4 -i subtitle.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mp4

19。ビデオまたはオーディオファイルのプレビューまたはテスト

プレビューして、出力ファイルが適切にトランスコードされているかどうかを確認またはテストすることをお勧めします。これを行うには、次のコマンドを使用してターミナルから再生できます:

$ ffplay video.mp4

同様に、以下に示すようにオーディオファイルをテストできます。

$ ffplay audio.mp3

20。ビデオの再生速度を上げる/下げる

FFmpegを使用すると、ビデオの再生速度を調整できます。

ビデオの再生速度を上げるには、次のコマンドを実行します:

$ ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4

このコマンドは、ビデオの速度を2倍にします。

動画の速度を落とすには、 1より大きい乗数を使用する必要があります 。再生速度を下げるには、次のコマンドを実行します:

$ ffmpeg -i input.mp4 -vf "setpts=4.0*PTS" output.mp4

21。オーディオ再生速度を増減する

オーディオ再生の速度を上げたり下げたりするには、"atempo"を使用します オーディオフィルター。次のコマンドは、オーディオの速度を2倍にします。

$ ffmpeg -i input.mp4 -filter:a "atempo=2.0" -vn output.mp4

0.5の間の任意の値を使用できます および2.0 オーディオ用。

22。アニメーションGIFを作成する

さまざまな目的で、ほぼすべてのソーシャルネットワークおよびプロフェッショナルネットワークでGIF画像を使用しています。 FFmpegを使用すると、アニメーションビデオファイルを簡単かつ迅速に作成できます。

次のガイドでは、LinuxおよびUnixライクなシステムでFFmpegとImageMagickを使用してアニメーションGIFファイルを作成する方法について説明します。

  • LinuxでアニメーションGIFを作成する方法

推奨される読み物:

  • Gifski-クロスプラットフォームの高品質GIFエンコーダー

23。 PDFファイルからビデオを作成する

私は何年にもわたって多くのPDFファイル(主にLinuxチュートリアル)を収集し、タブレットPCに保存しました。時々私はタブレットからそれらを読むのが面倒だと感じます。

そこで、PDFファイルからビデオを作成し、テレビやコンピューターなどの大画面デバイスで視聴することにしました。 PDFファイルのコレクションからムービーファイルを作成する方法を知りたい場合は、次のガイドが役立ちます。

  • LinuxでPDFファイルからビデオを作成する方法

24。動画を回転する

向きの異なるビデオファイル(縦向きまたは横向き)がある場合は、次のガイドの説明に従って回転させることができます。

  • コマンドラインからFFMpegを使用してビデオを回転させる方法

25。ビデオをWhatsAppビデオフォーマットに変換する

WhatsAppは一部のビデオをサポートしていません。連絡先と共有したり、whatsappステータスに設定したりすることはできません。心配ない!次のリンクで説明されているように、FFmpegを使用してWhatsAppでサポートされているビデオ形式を簡単に変換できます。

  • FFmpegを使用してビデオをWhatsAppビデオ形式に変換する

26。動画をズームインおよびズームアウトします

FFmpegには、特定のタスクを実行するための便利なフィルターがたくさんあります。それらの1つはズームパンです。ズームパンフィルターを使用すると、X秒ごとに定期的に簡単にズームインおよびズームアウトできます。詳細については、次のリンクを参照してください。

  • FFmpegを使用してビデオをズームインおよびズームアウトする方法

27。ヘルプを得る

このガイドでは、最も一般的に使用されるFFmpegコマンドについて説明しました。さまざまな高度な機能を実行するためのさまざまなオプションがあります。詳細については、manページを参照してください。

$ man ffmpeg

関連記事:

  • 初心者向けの例を含むYoutube-dlチュートリアル

そして、それがすべてです。このガイドがFFmpegの使用を開始するのに十分なFFmpegコマンドの例を提供してくれることを願っています。


Linux
  1. 初心者向けのDNFコマンドの例

  2. 初心者向けのYAML

  3. 初心者のためのLinux:ターミナルで始めるための10のコマンド

  1. 効果的なプロセス管理のための8つのLinuxコマンド

  2. 例を挙げて説明する初心者向けの20の基本的なLinuxコマンド

  3. Ubuntu 22.04 に FFmpeg をインストールする方法

  1. 一般的なLinuxコマンドのチートシート

  2. ネットワーク診断用の10のLinuxコマンド

  3. 初心者向けLinux:ファイルを操作するためのさらに10個のコマンド