2021年6月11日金曜日

よく使うffmpegのコマンドメモ

よく使うffmpegのコマンドメモ

1.  ファイル連結
ffmpeg -f concat -i file.txt  output.mp4

file.txt (ファイル内容)
file 1.mp4
file 2.mp4


2.   時間を指定してファイルを切り取り
ffmpeg -ss 0:0:1 -to 0:0:5 out.mp4 -i in.mp4
-t 00:00:50    指定時間から50秒の動画を切り取り、指定ない場合00:00:00から
-ss 00:00:10  最初の時間を指定
-to 00:00:50  終了の時間を指定
―t は切り取り動画の長さ
―to は動画のタイム時間

3.   ファイルのメタデータ削除する
ffmpeg -i in.mp4 -map_metadata -1 out.mp4


4.   クロップ-領域を指定して動画出力
ffmpeg -i in.mp4 -vf crop=482:180:44:397 out.mp4
クロップサイズw:クロップサイズh:座標x:座標y



5.  動画ファイルを連番画像に変換
ffmpeg -i in.mp4 -r 30 -q:v 1 image%04d.png


6.  複数の画像を動作に変換
ffmpeg -r 30 -i image%04d.png out.mp4
ffmpeg -r 30 -start_number 43 -i %04d.png out.mp4
ファイルのスタート番号は0001ではない場合-start_number 指定


7. 手ぶれ補正(手順は2回、古いビデオカメラに役立つ)
7-1. ffmpeg.exe -i in.mp4 -vf vidstabdetect -an -f null -
       transforms.trf  動作の分析ファイルが作成されます。
7-2. ffmpeg.exe -i in.mp4  -vf vidstabtransform  out.mp4


8.  一枚の写真でMP4動作作成
ffmpeg.exe -i image.JPG -i sound.mp3 -r 1 out.mp4


9.  Mp3 ファイル作成、アルバムアートを追加する
ffmpeg.exe -i audio.mp3 -i art.jpg -disposition:v:1 attached_pic -map 0 -map 1 -id3v2_version 3 outfile.mp3


10.  ffmpeg でインターレース解除
ffmpeg.exe -i in.mp4 -vf bwdif  out.mp4


11.  サウンドの入れ替え(source1の映像、source2の音声)
ffmpeg.exe -i in1.mp4 -i in2.mp4 -map 0:v:0 -map 1:a:0 -shortest out.mp4


12.  動画のサイズ変更 1280x720 から 720x404へ
自動で設定したいほうに -1 をセットする
ffmpeg -i in.mp4 -s 720x404 out.mp4
ffmpeg -i in.mp4 -vf scale=1280:-1 out.mp4
ffmpeg -i in.mp4 -vf scale=-1:720 out.mp4


13.  動画の音量を調整
ffmpeg -i in.mp4 -c:v copy -af "volume=0.5" out.mp4
ffmpeg -i in.mp4 -c:v copy -af "volume=6dB" out.mp4


14.  動画再生速度を調整
2倍
ffmpeg -i in.mp4 -vf setpts=PTS/2.0 -af atempo=2.0 out.mp4
0.5倍
ffmpeg -i in.mp4 -vf setpts=PTS/0.5 -af atempo=0.5 out.mp4


15. 動画を回転する
ffmpeg -i in.mp4 -vf transpose=2 -c:a copy out.mp4 
1 → 90度 時計まわりに回転
2 → 90度 時計反まわりに回転
3 → 90度 時計まわり回転後、上下を反転
0 → 90度 時計反まわり回転後、上下を反転

ffmpeg -i in.mp4 -vf "rotate=45*PI/180" out.mp4  (45°)

rotate と transpose の違い
transpose 1280X720 だと、90度回転すると 720X1280 になる、枠が回転する
rotate で90度と回転後は1280X720のままです、枠は回転しない

ffmpeg - i in.mp4 -vf vflip out.mp4  (上下ミラ)
ffmpeg - i in.mp4 -vf hflip out.mp4  (左右ミラ)


16. ファイルの最大サイズを指定
ffmpeg -i in.mp4 -fs 20M out.mp4


17. ffmpeg ストリーミング ダウンロード
ffmpeg -i url -c copy out.mp4


18. ffmpeg メタデータの追加・変更
ffmpeg -i in.mp4 -metadata comment="vid:xxxxxxx" out.mp4
-metadata key=value


19. ffmpeg h264_qsv
ffmpeg -i in.mp4 -c:v h264_qsv -b:v 3000k out.mp4 

20. ffmpeg h264_nvenc
ffmpeg -i in.mp4 -c:v h264_nvenc -b:v 3000k out.mp4 

21. ffmpeg h264_amf
ffmpeg -i in.mp4 -c:v h264_amf -b:v 3000k out.mp4 

ffmpeg -encoders
h264_nvenc          NVIDIA NVENC H.264 encoder (codec h264)
nvenc_h264          NVIDIA NVENC H.264 encoder (codec h264)
nvenc                   NVIDIA NVENC H.264 encoder (codec h264)
h264_amf             AMD AMF H.264 Encoder (codec h264)
h264_qsv              H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 
                            (Intel Quick Sync Video acceleration) (codec h264)

22. 動画ファイルを指定秒数で連続で分割する
ffmpeg -i in.mp4 -c:v copy -c:a copy -f segment -segment_time 58 out-%02d.mp4

23. メタデータをコピーする
ffmpeg -i in.mp4 -i -map_metadata 0 out.mp4


パッチファイルの例
for %%a in (*.mp4) do echo ffmpeg -i %%a -map_metadata 0 -r 29.97 -c:v h264_qsv -b:v 6M .\H264_qsv\%%a >> filelist.cmd

ffmpeg -i in0.mkv -i in1.mkv -map 1 -c copy \
# copies all global metadata from in0.mkv to out.mkv  
-map_metadata 0 \
# copies video stream metadata from in0.mkv to out.mkv
-map_metadata:s:v 0:s:v \
# copies audio stream metadata from in0.mkv to out.mkv
-map_metadata:s:a 0:s:a \
out.mkv

24. Aviutil FFmpeg 出力時のコマンド設定

-c:a aac
-q:v 23
-c:v h264_qsv
-b:v 3M 
-r 30
-map_metadata -1
-metadata comment="vid:free"

-b:v 6400k
-c:v h264_qsv
-r 29.97
-crf 23
-aspect "16:9"
-map_metadata 1
-metadata comment="vid:Running2022"
-profile main



25. ffmpeg DAR 指定 アスペクト比のみを変更する
-aspect 4:3

26.

x.  思い出したら追加します。








0 件のコメント:

コメントを投稿