Python - 使用 OpenCV 如何将 .png 粘贴到单个 mp4 中?
Python - Using OpenCV how to stick .png's into a single mp4?
我有一个 .png 图像目录,我想将其粘贴到单个 mp4 中?
我相信 OpenCV 可以用来这样做,但我找不到任何关于如何做到这一点的资源?有任何想法吗?或教程?
谢谢。
最好的方法是使用 ffmpeg,您可以这样做:
ffmpeg -framerate 24 -i img%03d.png output.mp4
其中:
-framerate
是您想要的帧率(以 fps 为单位)
-i
表示您的图像格式为 img001.png
、img002.png
等等...
- output.mp4 是输出文件
更多信息here
你可以先用VideoWriter把你的mp4写入一个新文件,然后把你的图片写入这个文件的尾部,如图:
import cv2
import cv
cap = cv2.VideoCapture("your_mp4.mp4")
ret,img=cap.read()
frame1=cv2.imread("your_img1.jpg")
frame2=cv2.imread("your_img2.jpg")
height , width , layers = img.shape
fps=20
video = cv2.VideoWriter("rec_out.avi", cv.CV_FOURCC(*'DIVX'), fps, (img.shape[1], img.shape[0]))
while True:
ret,img=cap.read()
height , width , layers = img.shape
video.write(img)
cv2.imshow('Video', img)
video.write(img)
if(cv2.waitKey(10) & 0xFF == ord('b')):
break
#stick your images here
video.write(frame1)
video.write(frame2)
cv2.destroyAllWindows()
video.release()
我有一个 .png 图像目录,我想将其粘贴到单个 mp4 中? 我相信 OpenCV 可以用来这样做,但我找不到任何关于如何做到这一点的资源?有任何想法吗?或教程?
谢谢。
最好的方法是使用 ffmpeg,您可以这样做:
ffmpeg -framerate 24 -i img%03d.png output.mp4
其中:
-framerate
是您想要的帧率(以 fps 为单位)-i
表示您的图像格式为img001.png
、img002.png
等等...- output.mp4 是输出文件
更多信息here
你可以先用VideoWriter把你的mp4写入一个新文件,然后把你的图片写入这个文件的尾部,如图:
import cv2
import cv
cap = cv2.VideoCapture("your_mp4.mp4")
ret,img=cap.read()
frame1=cv2.imread("your_img1.jpg")
frame2=cv2.imread("your_img2.jpg")
height , width , layers = img.shape
fps=20
video = cv2.VideoWriter("rec_out.avi", cv.CV_FOURCC(*'DIVX'), fps, (img.shape[1], img.shape[0]))
while True:
ret,img=cap.read()
height , width , layers = img.shape
video.write(img)
cv2.imshow('Video', img)
video.write(img)
if(cv2.waitKey(10) & 0xFF == ord('b')):
break
#stick your images here
video.write(frame1)
video.write(frame2)
cv2.destroyAllWindows()
video.release()