FFmpeg视频工具简洁教程
简介
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
下载安装
最简单的安装方式还是使用包管理工具
sudo apt update
sudo apt install ffmpeg -y
基本使用方式
转换视频文件的格式:
ffmpeg -i demo.avi output.mp4 #.avi --> .mp4
同样可以转换音频文件:
ffmpeg -i dem0.wav output.mp3
指定编码器,这里指定H264编码器:
ffmpeg -i demo.avi -c:v libx264 output.mp4
若使用Nvidia显卡,可以使用h264_nvenc硬件加速:
ffmpeg -i demo.avi -c:v h264_nvenc output.mp4
设置编码速度与问价大小 -preset
:
ffmpeg -i demo.avi -c:v libx264 -preset "参数" output.mp4
参数项可选(从上到下,编码速度又快到慢,压缩文件大小yo由大至小):
- ultrafast
- superfast
- veryfast
- faster
- fast
- medium(默认)
- slow
- slower
- veryslow
控制图像质量-crf
取值范围0- 51,数子越大文件越小,压缩质量越差,常用范围(19 - 28):
fffmpeg -i demo.avi -c:v libx264 -crf 25 output.mp4
视频剪切:
ffmpeg -i demo.avi -c:v libx264 -ss 00:00:03 -t 00:00:05 output.mp4 # -ss 起始位置 -t 视频时长,格式可用hh:mm:ss或者秒数ffmpeg -i demo.avi -c:v libx264 -ss 00:00:03 -to 00:00:08 output.mp4
视频合并:
先将所有文件列举在一个文本文档中,
# mylist.txtfile 'clip1.mp4'file 'clip2.mp4'file 'clip3.mp4'
ffmpeg -f concat -i mylist.txt -c copy output.mp4 # -c copy 表示不重新编码而是直接拷贝原始视频数据,因为输入视频格式一致,可以节省时间!
过滤器
过滤器可以对视频图像进行变换,如修改尺寸、裁剪、旋转、添加滤镜等等。并且可以指定一系列的过滤器实现复杂的功能,上一个过滤器的输出会作为下一个过滤器的输入 。使用参数 -vf
指定过滤器。
修改视频尺寸"scale="
:
ffmpeg -i demo.avi -c:v libx264 -vf "scale=-1:720" output.mp4 #设置720p,参数设为-1,FFmpeg会根据另一个参数自动推算,当然可以显示给出所有参数。
旋转方向 "transpose="
:
ffmpeg -i demo.avi -c:v libx264 -vf "transpose=[参数]" output.mp4
参数可选:
- 1 – 顺时针旋转90°
- 2 – 逆时针旋转90°
- 0 – 逆时针旋转90°且上下翻转
- 3 – 顺时针旋转90°且上下翻转
裁剪指定区域"crop=w:h:x:y"
,分别代表宽、高以及左上角的x、y坐标:
ffmpeg -i demo.avi -c:v libx264 -vf "crop=400:400:100:100" output.mp4ffmpeg -i demo.avi -c:v libx264 -vf "crop=iw/3:ih/3" output.mp4
过滤器组合使用:
ffmpeg -i demo.avi -c:v libx264 -vf "scale=256:256,transpose=1" output.mp4
音频过滤器
调节音量大小:
ffmpeg -i demo.mp4 -af "volume=1.5" output.mp4
统一视频音量:
ffmpeg -i demo.mp4 -af "loudnorm=I=-5:LRA=1" output.mp4
添加高通、低通滤波器或均衡器:
ffmpeg -i demo.mp4 -af "equalizer=f=1000:width_type=h:width=200:g=-10" output.mp4
删除音频轨:
ffmpeg -i demo.mp4 -an output.mp4
删除视频轨:
ffmpeg -i demo.mp4 -vn output.mp4
删除字幕:
ffmpeg -i demo.mp4 -sn output.mp4
删除数据流:
ffmpeg -i demo.mp4 -dn output.mp4
技巧
创建视频缩略图:
ffmpeg -i demo.mp4 -vf "fps=1/10,scale=-2:720" thumbnail-%03d.jpg
添加水印:
ffmpeg -i demo.mp4 -i shuiyin,jpg -filter_complex "overlay=100:100" output.mp4
GIF动图的转换:
ffmpeg -i demo.mp4 -ss 0 -t 3 -filter_complex [0:v]fps=15,scale=-1:256,split[a][b];[a]palettegen[p];[b][p]paletteuse output,gif
Reference
- 官方文档
- 引用视频
FFmpeg视频工具简洁教程相关推荐
- FFmpeg 视频处理入门教程(转)
FFmpeg 视频处理入门教程(阮一峰) FFmpeg 是视频处理最常用的开源软件. 它功能强大,用途广泛,大量用于视频网站和商业软件(比如 Youtube 和 iTunes),也是许多音频和视频格式 ...
- FFmpeg视频处理入门教程(新手必看)
本文主要介绍了FFmpeg视频处理入门教程,它功能强大,用途广泛,是许多音频和视频格式的标准编码/解码实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 FFmpeg 是视频处理最常用的开源软件. ...
- FFmpeg视频处理入门教程----从安装到使用(Linux版)
ffmpeg是一个开源的音视频转码工具,它提供了录制.转换以及流化音视频的完整解决方案,可以转码.压制.提取.截取.合并.录屏等.它功能强大,用途广泛,大量用于视频网站和商业软件(比如 Youtube ...
- FFmpeg 快速上手:命令行详解、工具、教程、电子书
FFmpeg 简介 FFmpeg 是一个开源的音视频处理工具,诞生已22年.它可以用来处理音视频的编解码.格式转换.剪辑.合并.抽取.压缩.解压缩.滤镜.字幕等等.它可以在 Windows.Linux ...
- ffmpeg视频处理教程
1.ffmpeg简介 2.ffmpeg常用功能 3.ffmpeg的GPU加速 1.ffmpeg简介 FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或 ...
- 传智播客C/C++各种开发环境搭建视频工具文档免费教程
传智播客作为中国IT培训的领军品牌,一直把握技术趋势,给大家带来最新的技术分享!传智播客C/C++主流开发环境免费分享视频文档中,就有写一个helloworld程序的示范.火速前来下载吧 所谓&quo ...
- ffmpeg视频上传功能常用的俩个工具类【1.视频转码=2.视频抓图】
我们在用ffmpeg做视频上传功能时,经常会用到视频的转码和视频抓图的俩个功能,这里贴出俩个常用的工具类代码 1.ffmpeg视频转码,多数在做视频上传功能时,会将视频转为flv格式,因为flv体积小 ...
- FFMpeg视频开发与应用基础——使用FFMpeg工具与SDK-殷汶杰-专题视频课程
FFMpeg视频开发与应用基础--使用FFMpeg工具与SDK-41668人已学习 课程介绍 FFMpeg是当今为的面向音视频开发的开源工程,广泛应用于多种音视频的客户端.播放器和流媒 ...
- iKcamp出品|微信小程序|小试牛刀(视频)+发布流程|基于最新版1.0开发者工具初中级教程分享
iKcamp官网:http://www.ikcamp.com 访问官网更快阅读全部免费分享课程:<iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教程分享>. ...
最新文章
- java中inputstream_java中InputStream String
- java文本框背景_用Java编写小程序(包含组合框下拉和文本框)变换背景颜色
- 送给爱读书的孩子:2019年最受欢迎的30个书单
- 更好也更快!最先进的图像去模糊算法DeblurGAN-v2
- C++ C++基础语法入门总结(二)引用-内联函数-C++11新特性
- 开发技术理论学习与实践的关系
- Activity与Intent机制的学习笔记--转自feisky
- 玩客云服务器怎么卖,玩客云使用教程;低价NAS怎么打造;玩客云现在还值得入手吗?-聚超值...
- jis拉伸试棒图纸_拉力测试棒测试(拉伸试验试棒尺寸)
- java axis_Java 使用Axis实现WebService实例
- adb官方最新下载链接和常用操作
- 人生之路1.20代码 第五部分
- gentry算法_全同态加密释疑(一):四个算法(2)
- AtCoder Beginner Contest 121
- 在 Nebula K8s 集群中使用 nebula-spark-connector 和 nebula-algorithm
- Python之sep与end
- NX/UG二次开发孔特征查找
- win32 中GetLastError 关于code与信息
- jquery遍历对象list拼接
- WPF 定义自己的控件