🎬
動画処理のコードサンプル
FFmpegなどを使ってたまに動画を処理するが、細かいパラメータなどを毎回忘れてしまうので残しておくことにする。
H.265コーデックでiOS用の動画を作成する
tag:v hvc1
をつけるとiPhoneで再生できる。
ffmpeg -i input.mp4 -c:a aac_at -b:a 128k -c:v libx265 -crf 22 -tag:v hvc1 output.mp4
グリーンバック合成をする
解像度が720x1080
で背景が0x00dd00
近辺のカラーコードの場合に、白色の背景を合成するときのコード。
input=your-file-name
ffmpeg -y -f lavfi -i color=c=white:s=720x1080 -i ${input}.mp4 -filter_complex "[1:v]chromakey=0x00dd00:0.2:0.1[ckout];[ckout]despill=green[despill];[0:v][despill]overlay=shortest=1:format=auto[out]" -map "[out]" -vcodec libx264 -pix_fmt yuv420p -crf 20 white_${input}.mp4
指定秒数の画像を切り出す
1フレームだけ切り出す場合
input=your-file-name
startat=10
ffmpeg -ss ${startat} -i ${input}.mp4 -vframes 1 ${input}_${startat}.jpg
指定した秒数だけ切り出す場合
input=your-file-name
startat=10
duration=170
ffmpeg -ss ${startat} -i ${input}.mp4 -t $duration -r 1 ${input}_${startat}_${duration}s/%04d.jpg
横方向に複数の動画を連結する
以下は4つの動画を連結した場合のコード。
ffmpeg -i v0.mp4 -i v1.mp4 -i v2.mp4 -i v3.mp4 -filter_complex "[0:v][1:v][2:v][3:v]hstack=inputs=4[v]" -map "[v]" -vcodec libx264 -crf 20 output.mp4
VOBファイルを結合する
VOBはcatで連結できる
cat video_1.vob video_2.vob video_3.vob >output.vob
Discussion