码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【FFmpeg】视频与图片互相转换 ( 视频与 JPG 静态图片互相转换 | 视频与 GIF 动态图片互相转换 )


    文章目录

    • 一、视频与 JPG 静态图片互相转换
      • 1、视频转静态图片
      • 2、视频转多张静态图片
      • 3、多张静态图片转视频
    • 二、视频与 GIF 动态图片互相转换
      • 1、视频转成 GIF 动态图片
      • 2、 GIF 动态图片转成视频






    一、视频与 JPG 静态图片互相转换




    1、视频转静态图片


    执行

    ffmpeg -i input.mp4 -y -f image2 -ss 00:00:02 -vframes 1 -s 848x480 output.jpg
    
    • 1

    命令 , 将 输入文件 input.mp4 中的 第 2 秒 开始的 1 帧数据 转为一张 848x480 像素的图片 , 输出到 output.jpg 文件中 ;

    在这里插入图片描述


    上述命令解析 :

    ffmpeg -i input.mp4 -y -f image2 -ss 00:00:02 -vframes 1 -s 848x480 output.jpg
    
    • 1
    • -i input.mp4 : 指定输入文件为 input.mp4 , -i 参数用于设置输入文件 ;

    • -y : 设置 如果输出文件已存在 , 直接覆盖 , 如果不设置该选项 , 会中断执行 , 询问用户是否覆盖 , 用户需要输入 y , 然后 回车 覆盖已存在的文件 ;
      在这里插入图片描述

    • -f image2 : 设置 输出格式 为 图像序列 ;

    • -ss 00:00:02 : 设置从视频的哪个时间点开始截取图片 , 这里设置的是在第 2 秒开始处截取图片 ;

    • -vframes 1 : 设置只提取 1 帧图像 , 也就是 第 2 秒后的 第一帧图像 ;

    • -s 848x480 : 设置输出图片的大小为 848x480 像素 ;


    2、视频转多张静态图片


    执行

    ffmpeg -i input.mp4 -y -f image2 -ss 00:00:02 -t 00:00:02 -r 15 -s 848x480 output%03d.jpg
    
    • 1

    命令 , 将 输入文件 input.mp4 中的 第 2 秒 开始的 2 秒数据 的 图像帧 对应的 图像序列输出出来 , 并且指定 帧率为 15FPS , 也就是 1 秒输出 15 帧 , 总共输出 30 张图片 ;

    在这里插入图片描述

    命令参数解析 :

    • -i input.mp4 : 指定输入文件为 input.mp4 , -i 参数用于设置输入文件 ;

    • -y : 设置 如果输出文件已存在 , 直接覆盖 , 如果不设置该选项 , 会中断执行 , 询问用户是否覆盖 , 用户需要输入 y , 然后 回车 覆盖已存在的文件 ;
      在这里插入图片描述

    • -f image2 : 设置 输出格式 为 图像序列 ;

    • -ss 00:00:02 : 设置从视频的哪个时间点开始截取图片 , 这里设置的是在第 2 秒开始处截取图片 ;

    • -t 00:00:02 : 指定提取图像的时间长度为 2 秒 , 即从 -ss 指定的 00:00:02 时间点开始 , 截取 2 秒的连续图像 ;

    • -r 15 : 设置提取图像的帧率为 15 FPS , 截取 2 秒图像就是 30 张图像 ;

    • -s 848x480 : 设置输出图片的大小为 848x480 像素 ;

    • output%03d.jpg : 指定输出文件的命名模式 , %03d 是一个占位符 , 表示输出的图片文件名将包含一个三位的序号 , 从 001 开始计数 , 直到 999 ;


    3、多张静态图片转视频


    执行

    ffmpeg -f image2 -i output%03d.jpg -r 15 video.mp4
    
    • 1

    命令 , 将上一个章节生成的 30 张图像 生成一个新的视频 , 设置 帧率为 15FPS , 说明会生成一个 2 秒的视频 ;

    在这里插入图片描述





    二、视频与 GIF 动态图片互相转换




    1、视频转成 GIF 动态图片


    执行

    ffmpeg -i input.mp4 -ss 00:00:02 -t 00:00:05 -r 5 -s 848x480 output.gif
    
    • 1

    命令 , 将 视频 的 第 2 ~ 7 秒图像转为了 GIF 动态图片 , 每秒有 5 帧图像数据 ;

    在这里插入图片描述

    转换后的图像如下 :

    请添加图片描述


    2、 GIF 动态图片转成视频


    执行

    ffmpeg -f gif -i output.gif video.mp4
    
    • 1

    命令 , 将 output.gif 动态图片转为 mp4 视频 ;

    在这里插入图片描述

  • 相关阅读:
    WPF透明置顶窗口wine适配穿透问题解决
    Flutter 项目中管理你的 Assets Texts Widgets
    自适应对话式团队构建,提升语言模型代理的复杂任务解决能力
    华为云云耀云服务器L实例评测 | 实例评测使用之硬件参数评测:华为云云耀云服务器下的 Linux 网络监控神器 bmon
    【第二章 数据的表示和运算】d1
    面试25题
    炫酷登录注册界面【超级简单 jQuery+JS+HTML+CSS实现】
    vue入门
    Amlogic S905X4 平台上针对HDMI TX(OUT) CEC操作
    CSDN编程挑战赛第六期——Python题解
  • 原文地址:https://blog.csdn.net/han1202012/article/details/138043134
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号