FFmepeg——视频处理工具安装以及简单命令学习。

news2024/11/26 10:47:28

FFmpeg 是一个免费、开源且高度可定制的多媒体处理工具,它是一个强大的跨平台框架,用于处理音频、视频、多媒体流和图像。FFmpeg 的主要功能包括解码、编码、转码、流处理、多路复用、分离、合并、过滤等,支持多种音视频格式,包括但不限于MP4、AVI、MKV、MP3、H.264、H.265、AAC 等。

前往官网下载 Download FFmpeg

官方文档:ffmpeg Documentation(具体还有很多功能,可以查看官方文档学习)

安装

windows:

将下载的压缩包,解压缩

将\bin目录加到环境变量,添加后在黑窗口,查看是否有ffmpeg命令;

这样安装就ok了。

基础命令

1. 转码视频格式:

ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4
  • -i input.mp4:指定输入文件为input.mp4,这是要重新编码的源视频文件。
  • -c:v libx264:指定使用libx264编码器来进行视频编码。libx264是一种高效的H.264视频编码器,通常提供高质量的视频压缩。
  • -c:a aac:指定使用AAC编码器进行音频编码。AAC是一种常见的音频编码格式,它在维持高音质的同时提供了较小的文件大小。
  • output.mp4:指定输出文件的名称为output.mp4,这是重新编码后的视频文件的保存位置。

2. 转码音频格式:

ffmpeg -i input.mp3 -c:a aac -b:a 256k output.m4a
  • -i input.mp3:指定输入文件为input.mp3,这是要重新编码的源音频文件。
  • -c:a aac:指定使用AAC编码器进行音频编码。这将重新编码音频文件为AAC格式。
  • -b:a 256k:指定音频的目标比特率为256Kbps。这将控制新生成的AAC文件的音频质量和文件大小。
  • output.m4a:指定输出文件的名称为output.m4a,这是重新编码后的音频文件的保存位置。

3. 剪辑视频:

ffmpeg -i input.mp4 -ss 00:01:00 -t 00:00:30 -c:v copy -c:a copy output.mp4
  • -i input.mp4:指定输入文件为input.mp4,这是要进行剪切操作的源视频文件。
  • -ss 00:01:00:这是用来指定开始时间点的选项。在这里,-ss后面的时间戳00:01:00表示从视频的1分钟处开始剪切。
  • -t 00:00:30:这是用来指定持续时间的选项。在这里,-t后面的时间戳00:00:30表示截取30秒的视频。
  • -c:v copy:这部分表示视频流将保持不变,不进行重新编码。 -c:v copy 意味着视频流会被直接复制到输出文件中,无需重新压缩视频。
  • -c:a copy:这部分表示音频流也将保持不变,不进行重新编码。 -c:a copy 意味着音频流会被直接复制到输出文件中,无需重新编码音频。
  • output.mp4:指定输出文件的名称为output.mp4,这是剪切后的视频文件的保存位置。

4. 合并多个视频

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "concat=n=2:v=1:a=1" -c:v libx264 -c:a aac output.mp4
  • -i input1.mp4:指定第一个输入文件为input1.mp4,这是要合并的第一个视频文件。
  • -i input2.mp4:指定第二个输入文件为input2.mp4,这是要合并的第二个视频文件。
  • -filter_complex "concat=n=2:v=1:a=1":这是使用-filter_complex选项来应用复杂的滤镜图。在这里,concat=n=2:v=1:a=1 是一个复合滤镜,它告诉FFmpeg合并两个输入视频文件,n=2表示两个输入,v=1表示合并视频流,a=1表示合并音频流。
  • -c:v libx264:指定使用libx264编码器进行视频编码。这将重新编码合并后的视频。
  • -c:a aac:指定使用AAC编码器进行音频编码。这将重新编码合并后的音频。
  • output.mp4:指定输出文件的名称为output.mp4,这是合并后的视频文件的保存位置。

5. 改变分辨率

ffmpeg -i input.mp4 -vf "scale=1280:720" output.mp4
  • -i input.mp4:指定输入文件为input.mp4,这是要进行分辨率调整操作的源视频文件。
  • -vf "scale=1280:720":这是使用 -vf(视频滤镜)选项来应用视频滤镜。在这里,scale=1280:720 是一个视频滤镜,它告诉FFmpeg将视频重新缩放为1280x720像素的分辨率。
  • output.mp4:指定输出文件的名称为output.mp4,这是调整分辨率后的新视频文件的保存位置。

6. 同时转换多个视频文件

ffmpeg -i input1.ts -i input2.ts -i input3.ts -c:v libx264 -c:a aac output1.mp4 -output2.mp4 -output3.mp4

这个命令将依次处理每个输入文件(input1.ts、input2.ts 和 input3.ts),为每个输入文件分别创建一个输出文件(output1.mp4、output2.mp4 和 output3.mp4)。每次 -i 后面的输入文件都会对应一个 -c:v(视频编码器选项)和 -c:a(音频编码器选项),以确定每个输出文件的编码方式。

拼接视频方法

  1. 方法一:FFmpeg concat 协议

    对于 MPEG 格式的视频,可以直接连接:

    ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg

    对于非 MPEG 格式容器,但是是 MPEG 编码器(H.264、DivX、XviD、MPEG4、MPEG2、AAC、MP2、MP3 等),可以包装进 TS 格式的容器再合并。在新浪视频,有很多视频使用 H.264 编码器,可以采用这个方法

    ffmpeg -i input1.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input1.ts

    ffmpeg -i input2.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input2.ts

    ffmpeg -i input3.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input3.ts

    ffmpeg -i "concat:input1.ts|input2.ts|input3.ts" -c copy -bsf:a aac_adtstoasc -movflags +faststart output.mp4

    保存 QuickTime/MP4 格式容器的时候,建议加上 -movflags +faststart。这样分享文件给别人的时候可以边下边看。

  2. 直接备注分辨率

    ffmpeg -i begin.mp4 -i mid.mp4 -i end.mp4 -filter_complex "[0:v]scale=1920:1080[0v];[1:v]scale=1920:1080[1v];[2:v]scale=1920:1080[2v];[0v][0:a][1v][1:a][2v][2:a]concat=n=3:v=1:a=1[v][a]" -map "[v]" -map "[a]" -c:v libx264 -c:a aac output.mp4

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

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

相关文章

Flink(十)【处理函数】

前言 冬天学习成本太高了,每天冻得要死,自习室人满为患,确实是辛苦。学校基本的硬件条件差的一批(图书馆贼小贼偏僻、老教室暖气还没有地板热、空教室还得自己一个一个挨着找),个体无法改变环境只能顺应了&…

探索 Vuex 的世界:状态管理的新视角(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

XM平台官网开户注册流程图解

注册前准备 在进行XM外汇官网注册之前,首先需要准备必要的信息,包括个人身份信息、联系方式以及相关财务信息。确保这些信息的准确性是保证注册流程顺利进行的关键。 一、要访问XM外汇官方网站,首先打开您的浏览器。在浏览器的地址栏中输入…

智能优化算法应用:基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.非洲秃鹫算法4.实验参数设定5.算法结果6.…

环境搭建及源码运行_java环境搭建_idea版本下载及安装

1、介绍 Idea是一款被广泛使用的Java集成开发环境,它提供了丰富的功能和工具来帮助开发人员更高效地编写和调试代码。作为一款开源软件,Idea不仅提供了基本的代码编辑、自动完成和调试功能,还支持大量的插件和扩展,可为开发人员提…

MySQL的增删改查(进阶)--下

3. 新增 插入查询结果 在一张表中插入另一张表的查询结果 语法为: INSERT INTO table_name [(column [, column ...])] SELECT ...该语句是组合技:把插入语句和查询语句结合到一起了—以查询结果,来作为插入的值。即把表一查询出来的结果集合…

从西工大安全事件浅谈特权账号管理系统

去年9月,国家计算机病毒应急处理中心发布《西北工业大学遭美国NSA网络攻击事件调查报告(之一)》(以下简称“西工大事件报告”),以充分详实的证据揭示了美国NSA使用41种武器,先后使用了遍布17个国…

创建Maven Web工程

目录下也会有对应的生命周期。其中常用的是:clean、compile、package、install。 比如这里install ,如果其他项目需要将这里的模块作为依赖使用,那就可以 install 。安装到本地仓库的位置: Java的Web工程,所以我们要选…

【LeetCode】每日一题 2023_12_20 判别首字母缩略词(简单题)

文章目录 刷题前唠嗑题目:判别首字母缩略词题目描述代码与解题思路 结语 刷题前唠嗑 LeetCode?启动!!! 困难题我唯唯诺诺,简单题我重拳出击 题目:判别首字母缩略词 题目链接:2828…

【无人机学习篇】构建mavros机载电脑连接,从机载电脑获取pixhawk数据

(本文基于的pixhawk版本:6X minibase V2.2 ,固件:apm) 整个的步骤(baseline): 具体的每一步都可以在网上查到教程,这里只是梳理出一个流程。并且ubantu与ros的版本也不是…

【HCIP学习记录】OSPF Hello报文及状态机

字段长度含义Version1字节版本,OSPF的版本号。对于OSPFv2来说,其值为2。Type1字节类型,OSPF报文的类型,有下面几种类型: 1:Hello报文;● 2:DD报文;● 3:LSR报…

红日靶场-1

实战 | 记一次基础的内网Vulnstack靶机渗透一https://mp.weixin.qq.com/s/A3MIuT7RXTIIPNLjF42OTg 前言 kali一个nat网卡,模拟外网攻击机 win7一个nat网卡,一个VMnet 1网卡(仅主机模式),模拟web服务器win2…

实战案例:缓存不一致问题的解决(redis+本地缓存caffine)

一.问题引入 目前在写项目的时候,在B端查看文章,A端修改文章。为了增加效率,以及防止堆内存溢出,在B端选择本地缓存文章的方案。但是目前出现了A端对文章修改之后,B端读的还是旧数据,出现了缓存不一致的问…

【MATLAB第83期】基于MATLAB的LSTM代理模型的SOBOL全局敏感性运用

【MATLAB第83期】基于MATLAB的LSTM代理模型的SOBOL全局敏感性运用 引言 在前面几期,介绍了敏感性分析法,本期来介绍lstm作为代理模型的sobol全局敏感性分析模型。 【MATLAB第31期】基于MATLAB的降维/全局敏感性分析/特征排序/数据处理回归问题MATLAB代…

【运维面试100问】(十一)淡淡I/O过程

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…

GZ015 机器人系统集成应用技术样题10-学生赛

2023年全国职业院校技能大赛 高职组“机器人系统集成应用技术”赛项 竞赛任务书(学生赛) 样题10 选手须知: 本任务书共 25页,如出现任务书缺页、字迹不清等问题,请及时向裁判示意,并进行任务书的更换。参赛…

安卓13上手势导航失效、手机卡死问题

问题描述&#xff1a;打开我们开发的app后&#xff0c;手势导航无法退回、无法回到桌面、无法切换应用。 使用设备&#xff1a;小米手机、MI14,、安卓13 未适配安卓13安卓x的情况下&#xff0c;检查自己的 AndroidManifest 文件&#xff0c;过滤器是否设置了 <category a…

opencv入门到精通——鼠标事件和Trackbar控件的使用

目标 了解如何在OpenCV中处理鼠标事件 您将学习以下功能&#xff1a;cv.setMouseCallback() 了解将轨迹栏固定到OpenCV窗口 您将学习以下功能&#xff1a;cv.getTrackbarPos&#xff0c;cv.createTrackbar等。 简单演示 在这里&#xff0c;我们创建一个简单的应用程序&am…

多维时序 | MATLAB实现BiTCN-Multihead-Attention多头注意力机制多变量时间序列预测

多维时序 | MATLAB实现BiTCN-Multihead-Attention多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实现BiTCN-Multihead-Attention多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | MATLAB实现BiTCN-Multihea…

Mysql-干净卸载教程

卸载 服务停掉 先把mysql服务停掉&#xff0c;如下点击右键&#xff0c;停止运行。 删除C盘内文件 接下来c盘里面的三个文件下的MySQL一一删除&#xff0c;需要注意的是 需要注意的是programdata文件下可能 隐藏了MySQL文件&#xff0c;所以可以在查看选项显示隐藏的文件。 …