2021/07/03(土) [n年前の日記]
#1 [love2d] ffmpeg勉強中
RGBA動画(UtVideoフォーマットの.avi)の透明部分を、ffmpegだけを使って黒くしてRGB動画として出力できないか試しているところ。以前は AviUtl + 拡張編集プラグインを使って作業したけど、ffmpeg を使って同じことができれば自動化できそうだなと。
環境は、Windows10 x64 20H2 + ffmpeg version 4.4-full_build-www.gyan.dev。
以下の説明ページを参考にしながら作業中。
_透過部分だけに色を付ける | ニコラボ
_映像の上に映像をのせる overlay | ニコラボ
しかし、上手く行かない…。30フレームある動画が、31フレームの動画として出力されてしまったり、UtVideoで出力しようとすると RGB にならなかったりで。
以下のページを参考にしてフレームレートの指定を色々試してたら、それらしい動画が出力できた。
_ffmpeg でのフレームレート設定の違い | ニコラボ
ただ、RGB動画として出力したいのに、RGBA動画として出力される点は変わらず。
環境は、Windows10 x64 20H2 + ffmpeg version 4.4-full_build-www.gyan.dev。
以下の説明ページを参考にしながら作業中。
_透過部分だけに色を付ける | ニコラボ
_映像の上に映像をのせる overlay | ニコラボ
しかし、上手く行かない…。30フレームある動画が、31フレームの動画として出力されてしまったり、UtVideoで出力しようとすると RGB にならなかったりで。
以下のページを参考にしてフレームレートの指定を色々試してたら、それらしい動画が出力できた。
_ffmpeg でのフレームレート設定の違い | ニコラボ
ffmpeg -framerate 60 -i black.png -r 60 -i rgba.avi -filter_complex "overlay=x=0:y=0" -vcodec utvideo rgb.aviおそらくだけど、-framerate 60 や -r 60 を入れる位置によって結果が変わるのだろうなと…。
ただ、RGB動画として出力したいのに、RGBA動画として出力される点は変わらず。
◎ ダメな指定。 :
フレームレートだかフレーム数だかがおかしなことになってしまった際の指定は以下。
ffmpeg -i rgba.avi -filter_complex "color=000000,format=rgb24[c];[c][0]scale2ref[c][i];[c] [i]overlay=format=auto:shortest=1,setsar=1" -vcodec utvideo -r 60 -pix_fmt rgb24 rgb.avi ffmpeg -i black.png -r 60 -i rgba.avi -filter_complex "overlay=x=0:y=0" -vcodec utvideo -r 60 rgb.avi ffmpeg -i black.png -framerate 60 -i ..\render\%04d.png -filter_complex "overlay=x=0:y=0" -vcodec utvideo -r 60 rgb.aviちなみに、black.png は、1280x720、黒一色(RGB=0,0,0)のpng画像。
[ ツッコむ ]
以上、1 日分です。