🎬

動画処理のコードサンプル

2024/04/04に公開

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