2017-12-12 20 views
0

私はビデオ上に画像をレンダリングしようとしています。いくつかの研究の後に次のコマンドを使用します。ffmpegフィルタはオーバレイでスケールを回転させます。

ffmpeg -y -i "my_video.mp4" -i "my_image.jpg" -filter_complex "color=color=blue:size=711x400:rate=25[container];[0:v]scale=w=400:h=400,setpts=expr=PTS-STARTPTS[vidscaled];[container][vidscaled]overlay=eval=init:shortest=1:x=155:y=0[overlay0];[1:v]scale=w=123:h=123,rotate=a=323.7*PI/180:[email protected]:oh='roth(323.7*PI/180)':ow='rotw(323.7*PI/180)':bilinear=1[imgproc];[overlay0][imgproc]overlay=eval=init:x=18:y='237-abs(123*sin(323.7*PI/180))'[overlay1]" -map "[overlay1]" -map 0:a -strict -2 -preset ultrafast -g 120 output.mp4 

このアプローチの問題は、回転する前にスケーリングが適用されているため、画像の品質が低いことです。だから私は

ffmpeg -y -i "my_video.mp4" -i "my_image.jpg" -filter_complex "color=color=blue:size=711x400:rate=25[container];[0:v]scale=w=400:h=400,setpts=expr=PTS-STARTPTS[vidscaled];[container][vidscaled]overlay=eval=init:shortest=1:x=155:y=0[overlay0];[1:v]rotate=a=323.7*PI/180:[email protected]:oh='roth(323.7*PI/180)':ow='rotw(323.7*PI/180)':bilinear=1,scale=w=173:h=173[imgproc];[overlay0][imgproc]overlay=eval=init:x=18:y='237-abs(123*sin(323.7*PI/180))'[overlay1]" -map "[overlay1]" -map 0:a -strict -2 -preset ultrafast -g 120 output.mp4 

、問題(次のコマンドを参照)、スケーリングの前に回転を適用しようとしました:0 @C =黒はもう機能していない、回転した画像の周囲にバウンディングボックスは透明ではありません。

誰でもこの魂を助けてください。

PD:C =どれもあまりにも動作しません使用するには、緑の背景

答えて

1

は、現時点ではこれをテストすることはできませんが、事前にアルファ・プレーンを追加するトリックを行う必要がありました。

[1:v]format=yuva444p,rotate=a=323.7*PI/180:[email protected]:oh='roth(323.7*PI/180)':ow='rotw(323.7*PI/180)':bilinear=1,scale=w=123:h=123[imgproc]; 
+0

ありがとうございました!それはトリックをしたC: –

関連する問題