Ffmpeg创建视频幻灯片,图像覆盖其他人和缩放

时间:2017-11-11 09:15:16

标签: ffmpeg

我有ffmpeg命令,可以使图像叠加其他和缩放,但缩放效果不能正常工作,它只能在叠加图像帧内工作。

import cv2

cap = cv2.VideoCapture(0)
#help(cv2)
while cap.isOpened():
    #BGR image feed from camera
    ret, img = cap.read()
    cv2.imshow('output', img)
    #BGR to grayscale
    img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    cv2.imshow('grayscale', img2)
    #BGR to binary(RED) thershholded
    imgthreshhold = cv2.inRange(img, (3,3,125), (40,40,255))
    cv2.imshow('threshholded', imgthreshhold)

    k = cv2.waitKey(10)
    if k==27:
        break

cap.release()
cv2.destroyAllWindows()

任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:0)

叠加过滤器不支持动态调整大小,因此您需要进行黑客攻击:

ffmpeg -i pic001.jpg -i pic002.jpg -filter_complex
 "[0:v]scale=-1:720,format=yuva422p,pad=1.5*iw:1.5*ih:(ow-iw)/2:(oh-ih)/2:color=black@0,
  zoompan=z='min(zoom+0.0015,1.5)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=125:s=WxH,
  trim=duration=5[scaled_video];
  [1:v]scale=1920:1080,boxblur=15[blur_image];
  [blur_image][scaled_video]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2[outv]"
-c:v libx264 -aspect 1280/720 -map [outv] -t 10 -y fixed.mp4

诀窍是添加一个alpha通道,然后用透明的黑色填充图像。当重叠时,由于alpha,黑色填充消失。

在zoompan中,你必须用宽度和宽度手动替换W和H.填充图像的高度。在这种情况下,初始缩放后图像的宽度为1.5 x,高度为1.5 x。我选择1.5作为乘数,因为它是zoompan中的最大缩放级别。