ffmpeg之 一张/多张图片合成视频

ffmpeg 把一张图片合成视频,并且设置视频时长

(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)运行结果:

ffmpeg与opencv结合之 多张图片合成视频

注意:需要注意的是参数的选取和图像大小

img_root:是jpg图片存放的路径

out_root:是avi视频的保存路径

string = img_root + 'img' + str(im_name) + '.jpg':是图片的存储路径。此处我的图片是在images文件夹下,

  • 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视频文件,

原文 ffmpeg之 一张/多张图片合成视频

★文末名片可以免费领取音视频开发学习资料,内容包括(FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音视频学习路线图等等。

见下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

猜你喜欢

转载自blog.csdn.net/yinshipin007/article/details/131724828