簡體   English   中英

FFmpeg復雜過濾器和-vf填充圖像並將其縮放為視頻

[英]FFmpeg complex filter and -vf to pad and scale images to video

我正在嘗試在不同的時間點用多個圖像覆蓋視頻。 這里的問題是圖像可能比視頻大,但是應該按比例縮小(保持寬高比),並且缺少的空間應該用黑色填充。

這是我到目前為止的內容:

-i 'input_video.mp4' 
-i 'input_image_1.jpg' 
-i 'input_image_2.jpg' 
-i 'input_image3.jpg' 
-i 'input_image4.jpg' 
-filter_complex "[0][1] overlay=0:0:enable='between(t,0.0,2.0)'[s1];
[s1][2] overlay=0:0:enable='between(t,7.0,9.0)'[s2];
[s2][3] overlay=0:0:enable='between(t,18.0,20.0)'[s3];
[s3][4] overlay=0:0:enable='between(t,20.0,22.0)'[s4];" 
-vf 'scale=min(iw*540/ih,960):min(540,ih*960/iw), 
     pad=960:540:(960-iw)/2:(540-ih)/2' 
-pix_fmt yuv420p -c:a copy
'output_image.mp4'

scale和pad的值是動態得出的,並且對應於視頻高度和視頻寬度。

但是,使用此突擊隊時,FFmpeg抱怨-filter_complex-vf不能在同一突擊隊中使用。 我要避免先按比例縮小圖像或從圖像創建視頻文件,然后再覆蓋這些視頻。

任何指針表示贊賞。

采用

-i 'input_video.mp4' 
-i 'input_image_1.jpg' 
-i 'input_image_2.jpg' 
-i 'input_image3.jpg' 
-i 'input_image4.jpg' 
-filter_complex
"[1]scale=min(iw*540/ih,960):min(540,ih*960/iw),
    pad=960:540:(960-iw)/2:(540-ih)/2[img1];
 [2]scale=min(iw*540/ih,960):min(540,ih*960/iw),
    pad=960:540:(960-iw)/2:(540-ih)/2[img2];
 [3]scale=min(iw*540/ih,960):min(540,ih*960/iw),
    pad=960:540:(960-iw)/2:(540-ih)/2[img3];
 [4]scale=min(iw*540/ih,960):min(540,ih*960/iw),
    pad=960:540:(960-iw)/2:(540-ih)/2[img4];
[0][img1] overlay=0:0:enable='between(t,0.0,2.0)'[s1];
[s1][img2] overlay=0:0:enable='between(t,7.0,9.0)'[s2];
[s2][img3] overlay=0:0:enable='between(t,18.0,20.0)'[s3];
[s3][img4] overlay=0:0:enable='between(t,20.0,22.0)'[s4];" 
-c:a copy   'output_image.mp4'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM