码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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视频文件,

  • 相关阅读:
    xv6源码解析(四)——进程管理
    【JUC系列-12】深入理解PriorityQueue的底层原理和基本使用
    SpringBoot 声明式事务
    springboot学生成绩分析系统 java ssm
    【HTTPS】运营商劫持、中间人攻击 与 加密
    【JavaEE基础与高级 第55章】Java中的对象流详细介绍与使用
    GPT如何避免从入门到放弃(一)——认识GPT
    调教 文心一言 生成 AI绘画 提示词(Midjourney)
    亚马逊自养号进行买家测评需要注意什么?
    【无标题】QCC 308x 518x 517x增加usb voice 32k采样率
  • 原文地址:https://blog.csdn.net/qq_45956730/article/details/125545892
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号