這是我的代碼,它將圖像添加到通過PHP運行的視頻中:
exec('ffmpeg -i input.mp4 -i logo.png -filter_complex "[0:v][1:v] overlay=10:10" -pix_fmt yuv420p -c:a copy output.mp4');
它運作良好,但問題在於,圖像縮小或縮小,取決於視頻分辨率。例如,在以下圖片中,徽標寬度是,50px
但視頻分辨率不同:
和這個
如何防止圖像縮小/放大?
ffmpeg -i input.mp4 -i logo.png -filter_complex "[1:v][0:v]scale2ref=(W/H)*ih/8:ih/8[wm][base];[base][wm]overlay=10:10" -pix_fmt yuv420p -c:a copy output.mp4
和
ffmpeg -i input.mp4 -i logo.png -filter_complex "[1:v][0:v]scale2ref=(W/H)*ih/8:ih/8[wm][base];[wm]setsar=1[wmsar]; [base][wmsar]overlay=10:10" -pix_fmt yuv420p -c:a copy output.mp4
這工作得很好,但它不會保持徽標的長寬比。我在兩個不同分辨率的視頻上試過這個代碼,這就是結果
和這個
有沒有可能改進這個解決方案?
寫回答關注邀請回答
提問於 2018-04-28
1 個回答
用戶回答回答於 2018-04-28
ffmpeg -i input.mp4 -i logo.png -filter_complex "[1:v][0:v]scale2ref=(W/H)*ih/8/sar:ih/8[wm][base];[base][wm]overlay=10:10" -pix_fmt yuv420p -c:a copy output.mp4
這將調整標誌的高度到視頻高度的1/8。