ffmpeg工具实用命令

news2025/1/9 19:29:51

说明:ffmpeg是一款非常好用的媒体操作工具,包含了许多对于视频、音频的操作,有些视频播放器里面实际上就是使用了ffmpeg。本文介绍ffmpeg的使用以及一些较为实用的命令。

安装

ffmpeg是命令行操作的,不需要安装,可在官网下载压缩包;

在这里插入图片描述

解压到一个没有中文、没有数字的路径下,配置一下环境变量,这些都是基本操作,不再详细介绍;

在这里插入图片描述

打开CMD,输入ffmepg,出现以下信息表示环境变量配置成功;

在这里插入图片描述

使用

命令1:提取视频所有帧

有时我们需要对视频图像进行处理,可以考虑把视频按帧提取出来成图片,再使用代码对图像进行逐帧处理,可使用以下命令:

ffmpeg -i <视频文件名> -r 60(帧数) -qscale:v 2 out/%04d.jpg(图片路径及命令规则)

参数介绍:

  • out/%04d.jpg:表示提取出来的图片放在当前目录下的out文件夹,名称按照"0001.jpg、0002.jpg……"的方式命名;

比如,我这里有一个视频(before.mp4)

在这里插入图片描述

在当前目录创建一个out文件夹,用于接收图片,输入下面命令,将视频按照24帧/秒转为图片;

在这里插入图片描述

可以感受到提取速度还是非常快的,1分半的视频,2090帧,几秒钟就全部提取出来了,这是因为ffmpeg工具是使用C系语言开发的;

在这里插入图片描述

另外,记住转换的解码率,后面合并图片为视频时需要用;

在这里插入图片描述

命令2:图片合成视频

一般来说,我们将上面提取出来的图片进行了一些处理后,就可以将处理后的图片集合成视频,使用下面这行命令:

ffmpeg -f image2 -framerate 24(帧数) -i %04d.jpg -b:v 5626k(转码率) <生成视频名>
  • %04d.jpg:表示输入的图片集合是以“0001.jpg、0002.jpg……”命名规则命名的;

比如将上面提取出来的图片再合成一个视频,如下:

在这里插入图片描述

啊?!视频怎么这么小,并且画质非常糟糕?

在这里插入图片描述

因为上面的命令中,解码率是7920k,我少了一个k,删掉视频,重新合并:

在这里插入图片描述

这会正常了,而且画质也和原视频一样,所以注意合并视频时,解码率需要和提取视频帧时一致

在这里插入图片描述

命令3:提取视频的音频

可使用下面的命令,提取出视频中的音频;

ffmpeg -i <视频文件> -f mp3 -vn <生成的音频文件>

比如把我这个视频(before.mp4)中的音频提取出来,命名为audio.mp3

在这里插入图片描述

实际使用时,可以灵活一点,比如需要把某种音频类型,转为另一种类型,直接修改后缀名可能会造成文件损坏不可用,就可以使用这种方式进行提取,达到音频类型转换的目的;

在这里插入图片描述

命令4:音视频合并

可以使用下面这个命令,把音频和视频进行合并;

ffmpeg -i <视频文件名> -i <音频文件名> -c:v copy -c:a aac -strict experimental <生成视频名>

像上面使用命令2合成的视频,当然是没有声音的,想做成一个完整的视频,还需要把音频进行合并,如下:

在这里插入图片描述

这样,一个完整的视频抽取图片,处理图片,提取音频,合成视频的制作流程就完成了;

在这里插入图片描述

命令5:分割视频

分割视频的命令有许多方式,如下:

ffmpeg -ss 01:00:00 -i <视频文件> -vcodec copy -acodec copy -t 00:06:00 <生成视频文件>

ffmpeg -ss 00:00:00 -i <视频文件> -c copy -t  600  <生成视频文件>

ffmpeg -i <视频文件> -ss 1 -c copy -to 75 <生成视频文件>

我最喜欢用最后这种,非常方便,前面的数字表示起始秒,后面表示末尾秒,比如把上面的视频final.mp4截取第10~20秒,如下:

在这里插入图片描述

需要注意,切割视频会有画面的丢失,需要手动微调一下分割点,比如从10秒开始,画面有丢失,稍微加一点,比如10.5秒,10.7秒可能丢失的画面会变少(当然减一点也可以,看自己的情况),可通过微调达到画面基本不丢失;

在这里插入图片描述

命令6:合并视频

可输入以下命令,合并两个视频;

ffmpeg -f concat -safe 0 -i <合并视频列表.txt> -c copy <生成视频名.mp4>
  • 合并视频列表.txt:指合并的视频清单,如下表示合并part1.mp4,part2.mp4这两个视频;

在这里插入图片描述

我再分割出来一个视频(part2.mp4),然后把这两个视频进行合并,如下:

在这里插入图片描述


在这里插入图片描述

命令7:播放视频

上面合成后的视频通过系统播放器可能无法播放,这时可以通过ffmpeg自带的播放视频/音频的命令ffplay来打开视频/音频文件;

ffplay <视频/音频文件>

打开上面合成的视频,如下:

在这里插入图片描述

总结

ffmpeg是一款非常方便,功能强大的媒体操作工具,本文介绍了ffmpeg较为常用的一些操作命令;

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

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

相关文章

ADSP21569之开发笔记(一)

CLDP烧写SigmStudio融合程序到Flash实现脱机步骤&#xff1a; 1、配置CCES属性&#xff0c;生成ldr文件。 ADI的flash烧写都需要驱动&#xff0c;这个驱动并不是通用的&#xff0c;每一个型号的flash都会有自己对应的驱动&#xff0c;ADI提供了一个例程&#xff0c;即IS25LP512…

CS61B Spring 2021 proj2 gitlet

Gitlet 项目简介整体结构对象概念&#xff08;object concept&#xff09;追踪文件&#xff08;track file&#xff09;分支管理&#xff08;branch management&#xff09;持久化目录结构&#xff08;folder structure&#xff09; 命令功能与具体实现initaddcommitrmloggloba…

设计模式之三大类

目录 设计模式分类 创建型模式(Creational Patters) 结构型模式(Structural Patterns) 行为型模式(Behavioral Patterns) 命令模式(The Command Pattern) 适配器模式 Object and Class Adapters 设计模式分类 1.创建型模式(Creational Patters) Fatory Method - 本质&…

直线电机模组在激光切割机上的作用

激光切割机是将从激光器发射出的激光&#xff0c;经光路系统&#xff0c;聚焦成高功率密度的激光束。激光束照射到工件表面&#xff0c;使工件达到熔点或沸点&#xff0c;同时与光束同轴的高压气体将熔化或气化金属吹走。激光切割加工是用不可见的光束代替了传统的机械刀&#…

一起学数据结构(3)——万字解析:链表的概念及单链表的实现

上篇文章介绍了数据结构的一些基本概念&#xff0c;以及顺序表的概念和实现&#xff0c;本文来介绍链表的概念和单链表的实现&#xff0c;在此之前&#xff0c;首先来回顾以下顺序表的特点&#xff1a; 1.顺序表特点回顾&#xff1a; 1. 顺序表是一组地址连续的存储单元依次存…

<STM32>STM32F103ZET6-可调参数定时器1互补PWM输出

&#xff1c;STM32&#xff1e;STM32F103ZET6-可调参数定时器1互补PWM输出 一 基础工程 本例基础工程以正点原子战舰V3开发板配套 库函数 开发例程《实验9 PWM输出实验》&#xff1b; 在此例程基础上进行 定时器1互补PWM输出。 二 代码修改 基于例程&#xff0c;只需修改ma…

Uniapp基于微信小程序以及web端文件、图片下载,带在线文件测试地址

一、效果 传送门 二、UI视图 <scroll-view scroll-x="true" scroll-y="true" :style

第一章-数据结构绪论

第一章-数据结构绪论 数据结构的起源和相关概念 数据结构是一门研究非数值计算的程序设计问题中的操作对象&#xff0c;以及它们之间的关系和操作等相关问题的学科。 程序设计的实质是选择一个好的结构&#xff0c;再设计一种好的算法。 数据&#xff1a;是描述客观事物的符…

Zookeeper与Kafka

Zookeeper与Kafka 一、Zookeeper 概述1.Zookeeper 定义2.Zookeeper 工作机制3.Zookeeper 特点4.Zookeeper 数据结构5.Zookeeper 应用场景6.Zookeeper 选举机制 二、部署 Zookeeper 集群1.准备 3 台服务器做 Zookeeper 集群2.安装 Zookeeper3.拷贝配置好的 Zookeeper 配置文件到…

vue-拦截器

第一步 起步 | Axios 中文文档 | Axios 中文网 安装 npm install axios ​ ​​​​​​ ​ ​ 第二步 ​ ​ 所有的请求都叫http协议 ​ ​ ​ ​ ​ 第三步 ​ 导入后即可使用里面的方法 ​ 任何一个东西都可以导出 ​ ​ 只有一个的时候只需要用defau…

【黑马头条之app端文章搜索ES-MongoDB】

本笔记内容为黑马头条项目的app端文章搜索部分 目录 一、今日内容介绍 1、App端搜索-效果图 2、今日内容 二、搭建ElasticSearch环境 1、拉取镜像 2、创建容器 3、配置中文分词器 ik 4、使用postman测试 三、app端文章搜索 1、需求分析 2、思路分析 3、创建索引和…

高效管理,PDM系统与BOM系统携手合作

在现代制造业中&#xff0c;PDM系统&#xff08;Product Data Management&#xff0c;产品数据管理&#xff09;和BOM系统&#xff08;Bill of Materials&#xff0c;物料清单管理&#xff09;都扮演着关键的角色。PDM系统负责产品数据的统一管理&#xff0c;而BOM系统则专注于…

fishing之第二篇Gophish钓鱼平台搭建

文章目录 一、Gophish介绍二、Gophish部署三、Gophish配置0x01 功能介绍0x02 Sending Profiles(钓鱼邮箱发送配置)0x03 Email Templates(钓鱼邮件模板)0x04 Landing Pages(伪造钓鱼页面)0x05 Users & Groups(用户和组)0x06 Campaigns(钓鱼测试)0x07 Dashboard(仪…

【SpringBoot学习笔记】02. yaml配置注入

yaml配置注入 yaml基础语法 说明&#xff1a;语法要求严格&#xff01; 1、空格不能省略 2、以缩进来控制层级关系&#xff0c;只要是左边对齐的一列数据都是同一个层级的。 3、属性和值的大小写都是十分敏感的。 yaml注入配置文件 1、在springboot项目中的resources目录…

linux命令cat proc/mtd

【cat /proc/mtd】 通过/proc虚拟文件系统读取MTD分区表&#xff0c;输出mtd中保存的系统磁盘分区信息。

TCP 三次握手,四次挥手

1、三次握手 第一次握手 SYN 等于1&#xff0c;SeqX 第二次握手 SYN等于1 ACK等于1&#xff0c;SeqY&#xff0c;AckX1 第三次SYN等于0 ACK等于1&#xff0c;SeqX1&#xff0c;AckY1 ackRow都是对应请求seqraw&#xff0c;三次握手后&#xff0c;Seq就是服务器前一个包中的ac…

享元模式(C++)

定义 运用共享技术有效地支持大量细粒度的对象。 使用场景 在软件系统采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中&#xff0c;从而带来很高的运行时代价——主要指内存需求方面的代价。如何在避免大量细粒度对象问题的同时&#xff0c;让外部客户程序仍…

JDBC用法小结

JDBC用法小结 本文实例总结了JDBC的用法。分享给大家供大家参考。具体分析如下&#xff1a; DriverManger:驱动管理器类 要操作数据库&#xff0c;必须先与数据库创建连接&#xff0c;得到连接对象 public static Connection getConnection(String url, String username,Str…

GSS3 - Can you answer these queries III

GSS3 - Can you answer these queries III 题面翻译 n n n 个数&#xff0c; q q q 次操作 操作0 x y把 A x A_x Ax​ 修改为 y y y 操作1 l r询问区间 [ l , r ] [l, r] [l,r] 的最大子段和 感谢 Edgration 提供的翻译 题目描述 You are given a sequence A of N (N <…

Python(七十三)集合间的关系

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…