【FFmpeg】视频与图片互相转换 ( 视频与 JPG 静态图片互相转换 | 视频与 GIF 动态图片互相转换 )

news2024/12/23 23:33:45

文章目录

  • 一、视频与 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

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

在这里插入图片描述


上述命令解析 :

ffmpeg -i input.mp4 -y -f image2 -ss 00:00:02 -vframes 1 -s 848x480 output.jpg
  • -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

命令 , 将 输入文件 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

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

在这里插入图片描述





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




1、视频转成 GIF 动态图片


执行

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

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

在这里插入图片描述

转换后的图像如下 :

请添加图片描述


2、 GIF 动态图片转成视频


执行

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

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1613397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初始化Git仓库时应该运行哪个命令?

文章目录 初始化Git仓库时,你应该运行git init这个命令。这个命令的作用是在你当前所在的目录里创建一个新的Git仓库。这样,你就可以在这个目录里开始使用Git来管理你的文件了。 下面我给你举个详细的例子来说明一下: 首先,你需要…

# 从浅入深 学习 SpringCloud 微服务架构(三)注册中心 Eureka(3)

从浅入深 学习 SpringCloud 微服务架构(三)注册中心 Eureka(3) 段子手168 1、eureka:高可用的引入 Eureka Server 可以通过运行多个实例并相互注册的方式实现高可用部署, Eureka Server 实例会彼此增量地…

Spark和Hadoop的安装

实验内容和要求 1.安装Hadoop和Spark 进入Linux系统,完成Hadoop伪分布式模式的安装。完成Hadoop的安装以后,再安装Spark(Local模式)。 2.HDFS常用操作 使用hadoop用户名登录进入Linux系统,启动…

ChatGPT研究论文提示词集合2-【形成假设、设计研究方法】

点击下方▼▼▼▼链接直达AIPaperPass ! AIPaperPass - AI论文写作指导平台 目录 1.形成假设 2.设计研究方法 3.书籍介绍 AIPaperPass智能论文写作平台 近期小编按照学术论文的流程,精心准备一套学术研究各个流程的提示词集合。总共14个步骤&#…

Llama3新一代 Llama模型

最近,Meta 发布了 Llama3 模型,从发布的数据来看,性能已经超越了 Gemini 1.5 和 Claud 3。 Llama 官网说,他们未来是要支持多语言和多模态的,希望那天赶紧到来。 未来 Llama3还将推出一个 400B大模型,目前…

Linux--链表 第二十五天

1. 链表 t1.next -> data t1.next->next->data .(点号)的优先级比->的大 所以 t1.next->data 就可以了 不用(t1.next)->data 2. 链表的静态增加和动态遍历 打印链表算法, void printLink(struct Test *head) { struct Te…

安装和部署maven

准备工作 maven下载地址:https://maven.apache.org/download.cgi 使用wget将maven包下载到linux环境上,/toos/ 目录下(也可用迅雷) wget https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.g…

PaddleOCRV4训练自己的模型(4)------模型推理及导出

一、Det模型推理: (1)上一篇文章只讲了推理的实现方法,没有展示结果,这里顺带展示一下结果。 因为训练定位模型的时候是整图训练,所以推理的时候也是整图推理。 (2)在推理的时候可以…

LinkedList和链表

1.ArrayList的缺陷 ArraryList由于底层是一段连续的空间,所以在ArrayList任意位置插入或者删除元素时,就 需要将后续元素往前或者往后搬移,时间复杂度为O(n),效率比较低,因此ArrayList不适合做任意位置插入和删除比较…

断言(Assertion)在IT技术中的确切含义— 基于四类典型场景的分析

当“断言”(Assertion)一词成为IT术语时,语义的混沌性和二义性也随之而生。那么,何为断言?断言何为?实际上,只需分析四种典型场景,确切答案和准确描述就将自然显现。 在SAML&#xf…

【讲解下Spring Boot单元测试】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

数据可视化(七):Pandas香港酒店数据高级分析,涉及相关系数,协方差,数据离散化,透视表等精美可视化展示

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…

websocket 请求头报错 Provisional headers are shown 的解决方法

今日简单总结 websocket 使用过程中遇到的问题&#xff0c;主要从以下三个方面来分享&#xff1a; 1、前端部分 websocket 代码 2、使用 koa.js 实现后端 websocket 服务搭建 3、和后端 java Netty 库对接时遇到连接失败问题 一、前端部分 websocket 代码 <template>…

B2024 输出浮点数 洛谷题单

首选需要进行了解的就是%a.bf所代表的含义就行了&#xff0c;直接莽了&#xff0c;没啥解释的笑脸&#x1f644; 在 Python 中&#xff0c;%a.bf 中的参数 a 和 b 是用来格式化浮点数的输出的&#xff0c;具体含义如下&#xff1a; a 表示总输出宽度&#xff0c;包括小数点、…

Kubernetes Kubelet 的 Cgroups 资源限制机制分析

前言 容器技术的两大技术基石&#xff0c;想必大家都有所了解&#xff0c;即 namespace 和 cgroups。但你知道 cgroups 是如何在 kubernetes 中发挥作用的吗&#xff1f;kubelet 都设置了哪些 cgroups 参数来实现对容器的资源限制的呢&#xff1f;本文就来扒一扒 Kubernetes k…

Docker - WEB应用实例

原文地址&#xff0c;使用效果更佳&#xff01; Docker - WEB应用实例 | CoderMast编程桅杆Docker - WEB应用实例 在之前的章节中&#xff0c;仅对普通容器进行了演示&#xff0c;但在实际中常常使用到 Docker 容器中的 WEB 应用程序。 运行一个WEB应用 拉取镜像 创建一个容器…

VBA技术资料MF144:将PDF首页作为对象插入工作表

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

四.RocketMQ的几种消息发送方式应用

RocketMQ的几种消息发送方式应用 一&#xff1a;普通消息1&#xff09;发送同步消息2&#xff09;发送异步消息3&#xff09;单向发送消息4&#xff09;消费消息-负载均衡模式5&#xff09;消费消息-广播模式 二&#xff1a;顺序消息1.顺序消息指的是:严格按照消息的发送顺序进…

第 394 场 LeetCode 周赛题解

A 统计特殊字母的数量 I 哈希&#xff1a;遍历然后枚举 class Solution {public:int numberOfSpecialChars(string word) {unordered_map<char, int> m;for (auto ch : word)m[ch] 1;int res 0;for (char ch a; ch < z; ch)if (m.count(ch) && m.count(A …

TPM RNG是什么?

TPM是什么&#xff1f; TPM&#xff08;可信平台模块&#xff09;用于提高电脑的安全性。 BitLocker 硬盘加密、Windows Hello 等服务都使用它来安全地创建和存储加密密钥&#xff0c;并确认设备上的操作系统和固件是正确的&#xff0c;没有被篡改。 虽然 TPM 2.0 标准允许英特…