自分的によく使うffmpegコマンドを備忘的にかいていきます(随時更新予定)
画像系
フレーム毎の切り出し
ffmpeg -i "input.mp4" -s 120x68 -filter:v fps=fps=29.97:round=down -y "outputs/%06d.jpg" 2>&1
指定フレームサムネイル切り出し
ffmpeg -hide_banner -ss 00:00:04.945668 -i "input.mp4" -vf scale=-1:540 -vframes 1 -f image2 -y "output.png" 2>&1
オーディオ系
オーディオトラックの合成
ffmpeg -y -i 'video.mp4' -i 'audio1.wav' -i 'audio2.wav' -i '.audio3.wav' -map 0:v:0 -map 1:0 -map 2:0 -map 3:0 output.mp4
オーディオトラックの抽出
ffmpeg -y -i 'input.mp4' -map 0:1 -vn -acodec copy audio001.m4a -map 0:2 -vn -acodec copy audio002.m4a -map 0:3 -vn -acodec copy audio003.m4a
map オプションの:の後ろに?をつける o:2?
とオーディオトラックがない場合にエラー停止せずに実行する(→ない場合、先頭のオーディオトラックが抽出される)
オーディオトラックを選択して保存
ffmpeg -i input.mp4 -map 0:0 -map 0:1 -c:v copy -c:a copy output.mp4
変換系
mp4 → hls 変換
ffmpeg -i input.mp4 -c:v copy -c:a copy -f hls -hls_time 9 -hls_playlist_type vod -hls_segment_filename "stream%3d.ts" output.m3u8
mp4 → m4aのhls変換
ffmpeg -i input.mp4 -vn -acodec copy -f hls -hls_time 60 -hls_playlist_type vod -hls_segment_filename "stream%3d.m4a" output.m3u8
mp4 から m4a音声の抽出
ffmpeg -y -i input.mp4 -map 0:1? -vn -acodec copy 001.m4a -map 0:2? -vn -acodec copy 002.m4a -map 0:3? -vn -acodec copy 003.m4a -map 0:4? -vn -acodec copy 004.m4a
-map
以降で抽出するオーディオトラックを指定、 0:3?
のように?
をつけるとエラーを吐かずに処理する
オプション
無限ループ指定&時間カット指定オプション
-stream_loop -1 -t 385 -i .\123.mp4
-stream_loop -1
で無限ループ、-stream_loop 3
で3回ループ
-t 123
で123秒でカット