2017-08-05 102 views
0

我有一個ffmpeg命令,它工作正常,在視頻的左上角和右下角注入2個圖像。ffmpeg比例標誌大小根據視頻大小

ffmpeg -i ori.mp4 -y -i 1.png -i 2.png -filter_complex \ 
"[0:v][1:v]overlay=20:20[bkg]; \ 
[bkg][2:v]overlay=(main_w-overlay_w)-20:(main_h-overlay_h)-20" \ 
-codec:v libx264 -crf 18 -preset slow -pix_fmt yuv420p \ 
-c:a aac -strict -2 out1.mp4 

此命令工作正常與視頻有大尺寸的720×480一樣,但是當輸入視頻尺寸爲320x240大小,它會覆蓋一半的視頻的大小。

1.png尺寸爲:160x100

2.png大小:341x44

任何想法如何給scale2ref合併到上面的命令?

一直試圖從這個link解決方案迄今沒有運氣。

更新1:我發現這個命令從here

ffmpeg -i ori.mp4 -y -i 1.png \ 
-filter_complex "[1:v][0:v]scale2ref=iw*0.25:-1[logo1][base]; \ 
[base][logo1]overlay=20:20[v]" -map [v] -map 0:a \ 
-codec:v libx264 -crf 18 -preset slow -pix_fmt yuv420p \ 
-c:a aac -strict -2 out2.mp4 

該命令做工精細獲得一個圖像縮放。

更新2:

ffmpeg -i ori.mp4 -y -i 1.png -i 2.png \ 
-filter_complex "[1:v][0:v]scale2ref=iw*0.25:-1[logo1][base];\ 
[base][logo1]overlay=20:20[v];[2:v][0:v]scale2ref=iw*0.30:-1[logo2][base2];\ 
[base2][logo2]overlay=(main_w-overlay_w)-20:(main_h-overlay_h)-20[v]" \ 
-map [v] -map 0:a -codec:v libx264 -crf 18 -preset slow -pix_fmt yuv420p \ 
-c:a aac -strict -2 out4.mp4 

上面試過了,沒有什麼工作。這樣

Filter overlay has an unconnected output 

得到了錯誤的任何幫助將是巨大

回答

1

使用

ffmpeg -i ori.mp4 -y -i 1.png -i 2.png -filter_complex \ 
"[1:v][0:v]scale2ref=160/100*oh:ih/5[v1][bk1];[bk1][v1]overlay=20:20[bkg]; \ 
[2:v][bkg]scale2ref=341/44*oh:ih/11[v2][bk2];[bk2][v2]overlay=W-w-20:H-h-20" \ 
-c:v libx264 -crf 18 -preset slow -pix_fmt yuv420p \ 
-c:a aac -strict -2 out1.mp4 
+0

工作般的魅力,你救了我的命數 – Teddybugs