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


    目录

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

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


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

    (1)执行代码,

    完整代码:

    1. import subprocess
    2. import os
    3. # 把一张图片合成视频,设置视频时长
    4. 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"
    5. subprocess.call(cmdLine, shell=True)

    (2)运行结果:

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

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

    • img_root:是jpg图片存放的路径

    • out_root:是avi视频的保存路径

    • string = img_root + 'img' + str(im_name) + '.jpg':是图片的存储路径

    • fps:是帧速率,会直接造成视频的帧数和时长不同

    • 参数

    (1)可以按照自己的需要来修改代码中的一些变量和参数,

    (2)执行代码,

    我的完整代码:

    1. import cv2
    2. from cv2 import VideoWriter, VideoWriter_fourcc, imread, resize
    3. import os
    4. from subprocess import call
    5. img_root = 'images/'
    6. out_root = 'pig.avi'
    7. fps = 1
    8. fourcc = VideoWriter_fourcc(*"MJPG") #支持jpg
    9. videoWriter = cv2.VideoWriter(out_root, fourcc, fps, (640, 480))
    10. im_names = os.listdir(img_root)
    11. print(len(im_names))
    12. for im_name in range(1, 4):
    13. string = img_root + 'img' + str(im_name) + '.jpg'
    14. print(string)
    15. frame = cv2.imread(string)
    16. frame = cv2.resize(frame, (640, 480))
    17. videoWriter.write(frame)
    18. videoWriter.release()
    19. # 将输出的视频变为mp4格式或者压缩
    20. dir = out_root.strip(".avi")
    21. command = "ffmpeg -i %s.avi %s.mp4" % (dir, dir)
    22. call(command.split())

    (3)执行过程中,我们可以看到一共处理了3张图片,

     等待代码运行完成,

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

  • 相关阅读:
    Android Studio开发工具学习之Git远程仓库拉取与推送
    java动漫电影网站管理系统ssm
    构造pop链
    程序员如何进化成架构师?
    Lit(六):模板
    怎样做音乐相册?这篇文章教会你
    C语言——qsort()函数_学习笔记
    Pythony应用(02)-文字识别训练tesseract-ocr4
    ERR_NGROK_108
    迪杰斯特拉算法(C++)
  • 原文地址:https://blog.csdn.net/qq_45956730/article/details/125545892