このガイドでは、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
です。 、44100
、48000
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
利用可能なさまざまなオーディオビットレートのリストは次のとおりです。
- 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.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.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。動画の特定の部分を変換する
ビデオファイルの特定の部分(期間)のみを別の形式に変換したい場合があります。たとえば、次のコマンドは最初の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.mp4
、part3.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コマンドの例を提供してくれることを願っています。