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

目录

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

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


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

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值