ffmpeg工具实用命令

说明: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帧/秒转为图片。

需要注意哦,帧数不是随意设置的,一般视频帧数是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.mzph.cn/news/33248.shtml

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

相关文章

Vue+SpringBoot后台管理系统:Vue3+TypeScript项目搭建(一)

写在开始:一个搬砖程序员的随缘记录文章目录 一、Node安装二、Vue CLI安装三、相关的版本四、创建Vue3TypeScript项目五、Vue项目初始化六、项目启动 一、Node安装 查看Note版本 node -v查看npm版本 npm -v然后将npm升级至最新版本 npm -g install npm将npm下载源换至http:…

Electron 应用实现截图并编辑功能

Electron 应用实现截图并编辑功能 Electron 应用如何实现截屏功能&#xff0c;有两种思路&#xff0c;作为一个框架是否可以通过框架实现截屏&#xff0c;另一种就是 javaScript 结合 html 中画布功能实现截屏。 在初步思考之后&#xff0c;本文优先探索使用 Electron 实现截屏…

森海塞尔为 CUPRA 首款纯电轿跑 SUV – CUPRA Tavascan 注入音频魅力

森海塞尔为 CUPRA 首款纯电轿跑 SUV – CUPRA Tavascan 注入音频魅力 音频专家森海塞尔携手富有挑战精神的 CUPRA&#xff0c;雕琢时代新贵车型&#xff0c;打造畅快尽兴的驾驶体验 全球知名音频专家森海塞尔与以颠覆传统、充满激情、不甘现状而闻名的汽车品牌 CUPRA 展开合作…

掌握Python的X篇_28_python包管理工具pip命令

本篇将会介绍在实际使用python中最能节省效率的内容&#xff0c;利用第三方库拿来就用。 文章目录 1. pip命令是什么2. pip相关操作2.1 list2.2 install2.3 uninstall2.4 导出和导入2.4.1 freeze命令2.4.2 “-r” 3. 国内镜像4. Python Packges Index网站 1. pip命令是什么 p…

SpringBoot复习:(33)WebMvcAutoconfiguration内部静态类WebMvcAutoConfigurationAdapter

WebMvcAutoconfiguration内部静态类WebMvcAutoConfigurationAdapter实现了WebMvcConfigurer接口&#xff0c;重写了一些方法&#xff0c;也就是默认对Spring Mvc进行了一些配置: 该静态类上有个**Import**注解&#xff1a; Import(EnableWebMvcConfiguration.class) 它的父类…

【uniapp】滚动相关

1、滚动到一定区域&#xff0c;顶部内容置换并置顶 功能&#xff1a; 当我向下滚动时&#xff0c;当关注那一行快到顶部的时候&#xff0c;把左侧区域的内容切换成右侧区域的内容&#xff0c;并置顶 原先我使用v-if来显示隐藏&#xff0c;发现会出现闪屏的现象&#xff0c;后来…

选读SQL经典实例笔记23_读后总结与感想兼导读

1. 基本信息 SQL经典实例 SQL Cookbook [美]安东尼莫利纳罗&#xff08;Anthony Molinaro&#xff09; / 人民邮电出版社 / 2018-07 / 其他 人民邮电出版社,2018年7月出版第1版&#xff0c;2021年12月出版第2版 1.1. 读薄率 1版书籍总字数827千字&#xff0c;笔记总字数30…

c++QT文件操作

1 介绍 QT的文件操作来源于其抽象基类QIODevice&#xff0c;中用于处理输入输出设备。提供了统一的接口来处理不同类型的数据源&#xff0c;如文件、套接字、缓冲区等。QIODevice 主要用于读取和写入数据&#xff0c;无论数据来自何种源头&#xff0c;都可以通过 QIODevice 统一…

【资料分享】全志科技T507-H开发板规格书

1 评估板简介 创龙科技TLT507-EVM是一款基于全志科技T507-H处理器设计的4核ARM Cortex-A53国产工业评估板,主频高达1.416GHz,由核心板和评估底板组成。核心板CPU、ROM、RAM、电源、晶振等所有器件均采用国产工业级方案,国产化率100%。同时,评估底板大部分元器件亦采用国产…

HarmonyOS SDK开放能力,服务鸿蒙生态建设,打造优质应用体验

华为开发者大会2023&#xff08;HDC.Together&#xff09;于8月4日至6日在东莞松山湖举行&#xff0c;在HarmonyOS端云开放能力技术分论坛上&#xff0c;华为为广大开发者们介绍了HarmonyOS SDK开放能力在基础开发架构、功能特性等方面的变化之处&#xff0c;通过将常见的通用能…

日常BUG——Java使用Bigdecimal类型报错

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 直接上代码&#xff1a; Test public void test22() throws ParseException {System.out.p…

竞赛项目 深度学习疲劳驾驶检测 opencv python

文章目录 0 前言1 课题背景2 实现目标3 当前市面上疲劳驾驶检测的方法4 相关数据集5 基于头部姿态的驾驶疲劳检测5.1 如何确定疲劳状态5.2 算法步骤5.3 打瞌睡判断 6 基于CNN与SVM的疲劳检测方法6.1 网络结构6.2 疲劳图像分类训练6.3 训练结果 7 最后 0 前言 &#x1f525; 优…

SpringBoot在线失物招领系统

一个基于SpringBootSemanticUI的pc Web在线失物招领系统 http://localhost:8080/swzl/index 主页 http://localhost:8080/swzl/login 登录页 用户表user admin字段为true是管理员 false用户 springboot2.3 springmvc mybatis html ajax idea 或eclipse maven mys…

C++11语法笔记

文章目录 一.类中新增的默认成员函数:移动赋值和移动构造二.lambda表达式三.包装器bind函数 一.类中新增的默认成员函数:移动赋值和移动构造 二.lambda表达式 三.包装器 bind函数

使用 PyTorch 逐步检测单个对象

一、说明 在对象检测任务中&#xff0c;我们希望找到图像中对象的位置。我们可以搜索一种类型的对象&#xff08;单对象检测&#xff0c;如本教程所示&#xff09;或多个对象&#xff08;多对象检测&#xff09;。通常&#xff0c;我们使用边界框定义对象的位置。有几种方法可以…

【Fegin技术专题】「原生态」打开Fegin之RPC技术的开端,你会使用原生态的Fegin吗?(上)

前提介绍 Feign是SpringCloud中服务消费端的调用框架&#xff0c;通常与ribbon&#xff0c;hystrix等组合使用。由于遗留原因&#xff0c;某些项目中&#xff0c;整个系统并不是SpringCloud项目&#xff0c;甚至不是Spring项目&#xff0c;而使用者关注的重点仅仅是简化http调…

《golang设计模式》第二部分·结构型模式-01-适配器模式(Adapter)

文章目录 1. 概念1.1 角色1.2 应用场景1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 示例类图 1. 概念 定义一个适配器&#xff0c;帮助原本不能实现接口的类“实现”该接口 1.1 角色 目标&#xff08;Target&#xff09;&#xff1a;客户端调用的目标接口 被适配者&#xff08…

phpspreadsheet excel导入导出

单个sheet页Excel2003版最大行数是65536行。Excel2007开始的版本最大行数是1048576行。Excel2003的最大列数是256列&#xff0c;2007以上版本是16384列。 xlswriter xlswriter - PHP 高性能 Excel 扩展&#xff0c;功能类似phpspreadsheet。它能够处理非常大的文件&#xff0…

微信小程序隐私协议模板

在 设置 中找到 用户隐私保护 进行更新&#xff0c;如下图&#xff1a; 具体协议补充可参考如下&#xff1a; 为了分辨用户&#xff0c;开发者将在获取你的明示同意后&#xff0c;收集你的微信昵称、头像 为了显示距离&#xff0c;开发者将在获取你的明示同意后&#xff0c;收…

dubbo之高可用

负载均衡 概述 负载均衡是指在集群中&#xff0c;将多个数据请求分散到不同的单元上执行&#xff0c;主要是为了提高系统的容错能力和对数据的处理能力。 Dubbo 负载均衡机制是决定一次服务调用使用哪个提供者的服务。 策略 在Dubbo中提供了7中负载均衡策略&#xff0c;默…