FFmpegでよく使うコマンド集3
星杜なぎさです☆
本記事ではFFmpegで個人的によく使うコマンドを紹介します!
今回は、実用性重視です。
はじめに
前提条件など補足
変換元の動画情報
動画の長さ : 1秒(正確には1.5秒ほどだが、切り捨て表示っぽい)
ビデオ
フレーム幅(width) : 1920
フレーム高(height) : 1080
フレーム率(FPS) : 29.92frame/sec
オーディオ
チャンネル:2(ステレオ)
サンプリングレート:48000Hz
FFmpegバージョン
ffmpeg version 6.1.1
1. 動画から画像を切り抜く
一番シンプルに動画から画像を切り抜くコマンド
ユースケース
機械学習の学習元画像を、動画から作成する場合
(特に、監視カメラやスマホで録画したものを用いる時、便利)動画投稿前に良いサムネを見つけたい時
(映えそうな画像を、複数の画像から選ぶことができる)
コマンド
一番シンプルなものは、以下の通り
ffmpeg -i X.mp4 ./png/%05d.png
備考
%05dは、0埋め5桁の連番画像で出力する、という意味になる
(先に出力結果の画像ファイル名を見た方が、直観的に分かりやすいかと思います)
出力結果
00001.png~00045.pngまでの連番(合計45枚)の画像が抽出された
画像サイズは、動画元のフレーム幅とフレーム高がそのまま引き継がれる
よく使うオプション
ffmpeg -i X.mp4 -r 10 -ss 0 -t 1 ./png2/%03d.png
-r :1秒当たり何枚の動画を切り出すか?を指定
-ss:切り抜き開始時間を指定
-t :切り抜き開始時間から何秒分を切り抜き対象とするか?を指定
2. 連番画像から、動画を作成する
先ほどとは逆に、連番画像から、1つの動画ファイルを生成します
(ちなみに、Windows標準のメディアプレイヤーでは。2で生成された動画は再生できませんでした。
VLCでは再生できたので、動画生成は問題なくできているっぽいです)
ユースケース
作成した機械学習モデルによる予測結果をまとめたい時
(報告等の際に映えるので、オススメ)
コマンド
ffmpeg -i ./png/%%05d.png 10_merged.mp4
出力結果
デフォルトの場合、FPS=25となるようです
(また、なぜか動画のフレーム高が1072に変更されてます)
オプション
ffmpeg -r 29.92 -i ./png/%05d.png -s 1280x720 merged.mp4
r:動画のフレームレートをいくつにするか?を指定
-s:出力動画のフレーム幅とフレーム高を指定
(-iより後ろで指定してください)
3. 動画から音声を抽出する
ユースケース
機械学習の学習用データを作成するとき
動画コンテンツをAudioBookのように、携帯・使用したいとき
コマンド
ffmpeg -i X.mp4 X.wav
出力結果
動画からオーディオファイルに変換できていることを確認
(サンプリングレート、チャネル数(channels)は未指定の場合、
そのまま引き継がれる)
よく使うオプション
ffmpeg -i X.mp4 -ac 1 -ar 8000 X_mono.wav
-ac:出力チャンネル指定(1:モノラル、2:ステレオ)
-ar:オーディオのサンプリングレート(8000 = 8000Hz)
4. 動画に画像を埋め込む
ユースケース
投稿する動画の右下に、アイコン等を表示(生産者表示)を埋め込む
コマンド
動画を1つ目の-iに、埋め込む画像を2つ目の-iの後に指定します
ffmpeg -i X.mp4 -i icon.png -filter_complex "overlay=W-w-10:H-h-10" add_image.mp4
出力結果
以上。
この記事が気に入ったらサポートをしてみませんか?