目录
(1)执行代码,
完整代码:
- import subprocess
- import os
-
- # 把一张图片合成视频,设置视频时长
- cmdLine = "ffmpeg -r 25 -loop 1 -i images/img1.png -pix_fmt yuv420p -vcodec libx264 -b:v 600k -r:v 25 -preset medium -crf 30 -s 720x576 -vframes 250 -r 25 -t 10 a.mp4"
- subprocess.call(cmdLine, shell=True)

(2)运行结果:

注意:需要注意的是参数的选取和图像大小
img_root:是jpg图片存放的路径
out_root:是avi视频的保存路径
string = img_root + 'img' + str(im_name) + '.jpg':是图片的存储路径
fps:是帧速率,会直接造成视频的帧数和时长不同
参数

(1)可以按照自己的需要来修改代码中的一些变量和参数,
(2)执行代码,
我的完整代码:
- import cv2
- from cv2 import VideoWriter, VideoWriter_fourcc, imread, resize
- import os
- from subprocess import call
-
-
- img_root = 'images/'
- out_root = 'pig.avi'
-
- fps = 1
- fourcc = VideoWriter_fourcc(*"MJPG") #支持jpg
- videoWriter = cv2.VideoWriter(out_root, fourcc, fps, (640, 480))
- im_names = os.listdir(img_root)
- print(len(im_names))
- for im_name in range(1, 4):
- string = img_root + 'img' + str(im_name) + '.jpg'
- print(string)
- frame = cv2.imread(string)
- frame = cv2.resize(frame, (640, 480))
- videoWriter.write(frame)
-
- videoWriter.release()
- # 将输出的视频变为mp4格式或者压缩
- dir = out_root.strip(".avi")
- command = "ffmpeg -i %s.avi %s.mp4" % (dir, dir)
- call(command.split())
(3)执行过程中,我们可以看到一共处理了3张图片,

等待代码运行完成,

(4) 执行结果:会生成两个视频文件,avi视频文件和mp4视频文件,


