FFmpeg命令介绍

article/2025/11/10 23:12:02

FFmpeg

  • 简介
  • 轶闻
  • 常用命令
    • 视频相关
    • 音频相关
    • 录制命令

简介

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。使用C语言进行开发,采用LGPL或GPL许可证,可前往Github下载其源码。它提供了录制、转换以及流化音视频的完整解决方案。

前往其官网下载软件,将其添加到操作系统的环境变量中即可使用ffmpegffplay以及ffprobe分别进行音视频的处理、播放和信息查看。

轶闻

耻辱柱事件

简而言之,许多播放器使用了FFmpeg的代码或模块但没有遵守LGPL/GPL协议,FFmpeg将许多不遵守协议的播放器发布在其官网页面上,名为Hall Of Shame,故称为耻辱柱事件,其页面现已停止更新。

涉及耻辱柱事件的播放器包括国内的暴风影音、QQ影音,甚至还有著名的KMplayer和Potplayer。以下为网上流传的信息:

FFmpeg耻辱柱(Hall Of Shame):

由于FFmpeg是在LGPL/GPL协议下发布的(如果使用了其中一些使用GPL协议发布的模块则必须使用GPL协议),任何人都可以自由使用,但必须严格遵守LGPL/GPL协议。目前有很多播放软件都使用了FFmpeg的代码,但它们并没有遵守LGPL/GPL协议,没有公开任何源代码。我们应该对这种侵权行为表示耻辱。

2009年加入FFmpeg的播放软件:暴风影音、QQ影音、KMP都在其列。

2009年2月,韩国名软KMPlayer被FFmpeg开源项目发现使用了它们的代码和二进制文件,但是没有按照规定/惯例开放相应说明/源码。因此被人举报,进入了FFmpeg官网上的耻辱黑名单。

2009年5月,网友cehoyos下载了暴风影音软件,解压之后发现其安装程序内包含了大量的开源和私有解码器:avcodec,avformat,avutil,x264,xvid,bass,wmvdmod等,之后暴风影音被正式加入到FFmpeg耻辱名单。

2009年11月,网友roo_zhou向FFmpeg举报,指出QQ影音的credit只给出了修改的FFmpeg源码下载,声称是LGPL许可证。但实际是修改过的ffdshow,采用的是GPL许可证,之后QQ影音被正式加入到FFmpeg耻辱名单之列。

Libav政变

在原FFmpeg社区中部分开发者相比维护更倾向于开发,不满与现有项目管理形式,于是发生了一次政变,占领了FFmpeg,其结果最后是这部分开发者最后创立了一个新分支名为Libav进行开发。

2011年1月19日,FFmpeg 的现任维护者 Michael Niedermayer 在邮件列表上披露,FFmpeg 发生了“政变”,一些开发者占领了官方网站,关闭了其他人的写入权限。随后政变者宣布 FFmpeg “建立新政权”,维护任务将由他们接手,宣称只有维护团队才能拥有主源码库的写入权限。

“新内阁”成员之一的 Diego Biurrun 解释了他们的行动,称“政变”是迫不得已,表示他们原本想联络每一个开发者,但没成功,因为不是每个人都在IRC上,或者能及时回电话、邮件或短信。“革命”的原因是为了统一,FFmpeg 社区分裂的情况严重到他们已经看不下去了。他们期望FFmpeg项目能建立一个健康而友好的开发环境。

这个项目最初是由Fabrice Bellard发起的,而现在是由Michael Niedermayer在进行维护。许多FFmpeg的开发者同时也是MPlayer项目的成员,FFmpeg在MPlayer项目中是被设计为服务器版本进行开发。

2011年3月13日,Fabrice Bellard等人于2011年3月13日跳出去开新项目,称作Libav,同时制定了一套关于项目继续发展和维护的规则。事实上ffmpeg并未改名。

常用命令

视频相关

格式转换

# 命令: ffmpeg -i source target
# 例如avi转mp4
ffmpeg -i input.avi output.mp4

提取视频

从视频中提取音频

# 命令: ffmpeg -i input -acodec type -vn output
# 例如mp4提取音频一般为aac,某些格式可能会报错
ffmpeg -i input.mp4 -acodec aac -vn output.aac

提取音频

只保留视频而不保留音频

ffmpeg -i input.mp4 -vcodec copy -an output.mp4

视频剪切

大家常用用一些软件剪切视频,而FFmpeg也可以办到

# 从时间为00:00:15开始,截取5秒钟的视频
ffmpeg -ss 00:00:15 -t 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4

添加字幕

通过ffmpeg为视频添加字幕

# mp4添加软字幕
ffmpeg -i infile.mp4 -i infile.srt -c copy -c:s mov_text outfile.mp4
# mkv添加软字幕
ffmpeg -i input.mkv -i subtitles.srt -c copy output.mkv
# 硬字幕
ffmpeg -i end_font.mp4 -vf subtitles=words.srt -y output.mp4

码率控制

一个视频源的码率太高了,有10Mbps,文件太大,想把文件弄小一点,但是又不破坏分辨率

# 将码率将为2Mbps
ffmpeg -i input.mp4 -b:v 2000k output.mp4

ffmpeg官方wiki比较建议,设置b:v时,同时加上 -bufsize,用于设置码率控制缓冲器的大小,设置的好处是,让整体的码率更趋近于希望的值,减少波动。

# 设置为码率在2Mpbs波动
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k output.mp4

-minrate最小码率,-maxrate最大码率

# 码率最大不超过2500k
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k -maxrate 2500k output.mp4

编码转换

比如一个视频的编码是MPEG4,转换为H264编码

ffmpeg -i input.mp4 -vcodec h264 output.mp4

修改分辨率

将输入的1920x1080缩小到960x540输出

ffmpeg -i input.mp4 -vf scale=960:540 output.mp4

添加图片

可以用于给视频添加logo

# 将图片添加到视频中,默认在左上角
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay output.mp4
# 右上角
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=W-w output.mp4
# 左下角
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=0:H-h output.mp4
# 右下角
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=W-w:H-h output.mp4

局部打码

可用于一些网站logo打码

# 语法:-vf delogo=x:y:w:h[:t[:show]]
ffmpeg -i input.mp4 -vf delogo=0:0:220:90:100:1 output.mp4

截取画面

# r表示每一秒几帧,-q:v表示存储jpeg的图像质量,一般2是高质量。
ffmpeg -i input.mp4 -r 1 -q:v 2 -f image2 pic-%03d.jpeg

如此,ffmpeg会把input.mp4,每隔一秒,存一张图片下来。

# -ss表示开始时间,-t表示共要多少时间
ffmpeg -i input.mp4 -ss 00:00:20 -t 10 -r 1 -q:v 2 -f image2 pic-%03d.jpeg

如此,ffmpeg会从input.mp4的第20s时间开始,往下10s,即20~30s这10秒钟之间,每隔1s就抓一帧,总共会抓10帧。

视频拼接

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

音频相关

格式转换

和视频格式转换基本一致

ffmpeg -i input.mp2 output.wav
# 转换过程中也可以指定其他参数
ffmpeg -i null.ape -ar 44100 -ac 2 -ab 16k -vol 50 -f mp3 null.mp3
-i代表输入参数
-acodec aac(音频编码用AAC) 
-ar 设置音频采样频率
-ac  设置音频通道数
-ab 设定声音比特率
-vol <百分比> 设定音量

音频合成

# 直接拼接
ffmpeg -i "concat:input1.mp3|input2.mp3|input3.mp3" -c copy output.mp3
# 或者混合在一起
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT

音视频合成

如果音频比视频长,就会停在最后一帧继续播放音频

ffmpeg -i a.wav  -i a.avi out.avi

截取音频

ffmpeg64.exe -i 124.mp3 -vn -acodec copy -ss 00:00:00 -t 00:01:32 output.mp3

录制命令

FFmpeg也可以用于录制视频音频

录制屏幕

# 录制屏幕,输出到d:/out.mp4
ffmpeg -f gdigrab -i desktop -f mp4 d:/out.mp4
# -r设置帧率

此命令用于录制视频,无法录制声音,按q退出

录制音频

# 查看设备
ffmpeg -f dshow -list_devices true -i dummy

执行完看到如下结果

设备

# 录制麦克风
ffmpeg -f dshow -i audio="麦克风 (Realtek High Definition Audio)" -acodec libmp3lame audio.mp3
# 录制系统声音,立体声看不见可能是被禁用了
ffmpeg -f dshow -i audio="立体声混音 (Realtek High Definition Audio)" -acodec libmp3lame audio.mp3

同时录制音频视频

# 录制屏幕和系统声音
ffmpeg -f dshow -i audio="立体声混音 (Realtek High Definition Audio)" -f gdigrab -i desktop -f mp4 d:/out.mp4
# 录制屏幕和麦克风
ffmpeg -f dshow -i audio="麦克风 (Realtek High Definition Audio)" -f gdigrab -i desktop -f mp4 d:/out.mp4

http://chatgpt.dhexx.cn/article/fZ4N719f.shtml

相关文章

ffmpeg命令大全

ffmpeg命令大全 FFMPEG 目录及作用FFMPEG基本概念FFMPEG 命令基本信息查询命令主要参数视频参数音频参数录制录屏 分解与复用滤镜简单滤镜复杂滤镜 直播相关 前言 FFMPEG是特别强大的专门用于处理音视频的开源库。你既可以使用它的API对音视频进行处理&#xff0c;也可以使用它…

音视频ffmpeg——ffmpeg 命令大全

ffmpeg 命令参数 ffmpeg信息查询命令 ffmpeg 控制命令 主要参数&#xff1a; ◼ -i 设定输入流 ◼ -f 设定输出格式(format) ◼ -ss 开始时间 ◼ -t 时间长度 音频参数&#xff1a; ◼ -aframes 设置要输出的音频帧数 ◼ -b:a 音频码率 ◼ -ar 设定采样率 ◼ -ac 设定…

常见FFmpeg命令行全面分析

FFmpeg多媒体库支持的命令行调用分为三个模块&#xff1a;ffmpeg、ffprobe、ffplay。其中ffmpeg命令行常用于音视频剪切、转码、滤镜、拼接、混音、截图等&#xff1b;ffprobe用于检测多媒体流格式&#xff1b;ffplay用于播放视频。详情可查阅FFmpeg官方文档&#xff1a;ffmpeg…

ffmpeg 常用命令汇总

​​​​​​经常用到ffmpeg做一些视频数据的处理转换等&#xff0c;用来做测试&#xff0c;今天总结了一下&#xff0c;参考了网上部分朋友的经验&#xff0c;一起在这里汇总了一下。 1、ffmpeg使用语法 命令格式&#xff1a; ffmpeg -i [输入文件名] [参数选项] -f [格…

FFmpeg常用基本命令行

本文收集记录了笔者使用过的FFmpeg命令&#xff0c;亲测可用&#xff0c;并不是简单的copy别人的FFmpeg大全&#xff0c;下面的命令大部分都是本人测试成功过的&#xff0c;大家可以放心使用。 音视频技术是程序员日常生活中经常用到的&#xff0c;比如转码需求&#xff0c;同事…

Eclipse启动Tomcat逐渐变慢

现象 1、Eclipse用着用着发现启动Tomcat特别慢 原因 断点打多了&#xff0c;之前调试的断点没有取消&#xff0c;导致启动时加载断点&#xff0c;拖慢启动 解决方案 1、点击debug按钮 2、选择breakpoint选项 清空所有断点 3、重新启动

eclipse 解决启动慢、运行慢的方法总结(最全)

由于 CSDN 的目录只在固定地方显示&#xff0c;并不是很方便阅读&#xff0c;又占空间&#xff0c;所以本文章已同步更新到个人博客上&#xff0c;在个人博客上的文章&#xff0c;有滑动侧边目录栏&#xff0c;阅读体验更加&#xff0c;而且文章的样式也更为丰富&#xff0c;推…

eclipse卡慢解决办法

1.设置JVM运行内存 1.1编辑eclipse.ini 1.2 编辑eclipse.ini,设置jvm运行内存参数&#xff0c;最小内存&#xff1a;物理内存*0.2&#xff0c; 最大内存&#xff1a; 物理内存*0.6&#xff1b; 其中-vmargs为必须添加参数&#xff08;-vmargs的意思是设置JVM参数&#xff09;,…

eclipse启动很慢调优

前几天装了个eclipse,发现真的启动很慢&#xff0c;而且运行程序也慢&#xff0c;检查了不是网络问题&#xff0c;jsp修改一下&#xff0c;一保存就卡死&#xff0c;要等十几秒&#xff0c;感觉不能忍&#xff0c;所以就上网找资料&#xff0c;但是都不全面&#xff0c;小编接下…

Eclipse 解决启动慢

般在不对eclipse进行相关设置的时候&#xff0c;使用eclipse总是会觉得启动好慢&#xff0c;用起来好卡&#xff0c;其实只要对eclipse的相关参数进行一些配置&#xff0c;就会有很大的改善。 加快启动速度 1.在eclipse启动的时候&#xff0c;它总是会搜索让其运行的jre&…

Eclipse如何解决启动慢

一般在不对eclipse进行相关设置的时候&#xff0c;使用eclipse总是会觉得启动好慢&#xff0c;用起来好卡&#xff0c;其实只要对eclipse的相关参数进行一些配置&#xff0c;就会有很大的改善。 加快启动速度 1.在eclipse启动的时候&#xff0c;它总是会搜索让其运行的jre&a…

eclipse启动tomcat慢

eclipse的oxygen.3(4.7)版本和Photon(4.8)版本&#xff0c;在启动tomcat时会启动内部安全检测机制&#xff0c;因而在启动tomcat时会消耗很多时间。 查看eclipse版本方法&#xff1a; 解决办法&#xff1a; 用eclipse的idea(4.9)或者neon.3(4.6)以及之前的版本 这里提供 neon…

Eclipse如何解决启动慢?

一般在不对eclipse进行相关设置的时候&#xff0c;使用eclipse总是会觉得启动好慢&#xff0c;用起来好卡&#xff0c;其实只要对eclipse的相关参数进行一些配置&#xff0c;就会有很大的改善。 加快启动速度 1.在eclipse启动的时候&#xff0c;它总是会搜索让其运行的jre&am…

解决eclipse启动太慢的问题

我用的是eclipse for javaee(2017版&#xff09; 电脑i5-4210u&#xff0c;内存4G&#xff0c;硬盘机械7200转&#xff0c;启动eclilpse至少要一分钟 百度上找了优化教程&#xff0c;试了很多&#xff0c;例如修改了启动项&#xff0c;但效果微乎其微&#xff0c;但试了下面这…

如何解决Eclipse启动慢?多图、Eclipse详细配置说明

一般在不对eclipse进行相关设置的时候&#xff0c;使用eclipse总是会觉得启动好慢&#xff0c;用起来好卡&#xff0c;其实只要对eclipse的相关参数进行一些配置&#xff0c;就会有很大的改善。 加快启动速度 1.在eclipse启动的时候&#xff0c;它总是会搜索让其运行的jre&am…

Eclipse解决启动慢

一般在不对eclipse进行相关设置的时候&#xff0c;使用eclipse总是会觉得启动好慢&#xff0c;用起来好卡&#xff0c;其实只要对eclipse的相关参数进行一些配置&#xff0c;就会有很大的改善。 一、加快启动速度 1.在eclipse启动的时候&#xff0c;它总是会搜索让其运行的…

Eclipse如何解决启动慢的问题,超全!!!

一般在不对eclipse进行相关设置的时候&#xff0c;使用eclipse总是会觉得启动好慢&#xff0c;用起来好卡&#xff0c;其实只要对eclipse的相关参数进行一些配置&#xff0c;就会有很大的改善。 加快启动速度 1.在eclipse启动的时候&#xff0c;它总是会搜索让其运行的jre&a…

Eclipse启动慢解决方案

Eclipse 解决启动慢、运行慢的方法总结 修改配置文件 修改 eclipse 的配置文件 eclipse.ini &#xff0c;由于 eclipse 的默认配置中最大运行内存只设置了 256 m&#xff0c;明显太低了&#xff0c;我们要适当调高点。 我的笔记本配置是固态硬盘8G内存条&#xff0c;但是已经用…

解决eclipse启动慢方法

转自&#xff1a;http://blog.csdn.net/xfz0330/article/details/48915293 每次启动eclipse时都要等待半分钟左右&#xff0c;对于追求效率的程序员来说&#xff0c;等待每一秒都是一种折磨&#xff0c;出于高效开发的精神&#xff0c;这个问题必须解决掉。方案如下&#xff1a…

解决eclipse启动慢

每次启动eclipse时都要等待半分钟左右&#xff0c;对于追求效率的程序员来说&#xff0c;等待每一秒都是一种折磨&#xff0c;出于高效开发的精神&#xff0c;这个问题必须解决掉。方案如下&#xff1a; ①在工具栏中的help中找到about eclipse——>installation details ②…