简介

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视频工具简洁教程相关推荐

  1. FFmpeg 视频处理入门教程(转)

    FFmpeg 视频处理入门教程(阮一峰) FFmpeg 是视频处理最常用的开源软件. 它功能强大,用途广泛,大量用于视频网站和商业软件(比如 Youtube 和 iTunes),也是许多音频和视频格式 ...

  2. FFmpeg视频处理入门教程(新手必看)

    本文主要介绍了FFmpeg视频处理入门教程,它功能强大,用途广泛,是许多音频和视频格式的标准编码/解码实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 FFmpeg 是视频处理最常用的开源软件. ...

  3. FFmpeg视频处理入门教程----从安装到使用(Linux版)

    ffmpeg是一个开源的音视频转码工具,它提供了录制.转换以及流化音视频的完整解决方案,可以转码.压制.提取.截取.合并.录屏等.它功能强大,用途广泛,大量用于视频网站和商业软件(比如 Youtube ...

  4. FFmpeg 快速上手:命令行详解、工具、教程、电子书

    FFmpeg 简介 FFmpeg 是一个开源的音视频处理工具,诞生已22年.它可以用来处理音视频的编解码.格式转换.剪辑.合并.抽取.压缩.解压缩.滤镜.字幕等等.它可以在 Windows.Linux ...

  5. ffmpeg视频处理教程

    1.ffmpeg简介 2.ffmpeg常用功能 3.ffmpeg的GPU加速 1.ffmpeg简介 FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或 ...

  6. 传智播客C/C++各种开发环境搭建视频工具文档免费教程

    传智播客作为中国IT培训的领军品牌,一直把握技术趋势,给大家带来最新的技术分享!传智播客C/C++主流开发环境免费分享视频文档中,就有写一个helloworld程序的示范.火速前来下载吧 所谓&quo ...

  7. ffmpeg视频上传功能常用的俩个工具类【1.视频转码=2.视频抓图】

    我们在用ffmpeg做视频上传功能时,经常会用到视频的转码和视频抓图的俩个功能,这里贴出俩个常用的工具类代码 1.ffmpeg视频转码,多数在做视频上传功能时,会将视频转为flv格式,因为flv体积小 ...

  8. FFMpeg视频开发与应用基础——使用FFMpeg工具与SDK-殷汶杰-专题视频课程

    FFMpeg视频开发与应用基础--使用FFMpeg工具与SDK-41668人已学习 课程介绍         FFMpeg是当今为的面向音视频开发的开源工程,广泛应用于多种音视频的客户端.播放器和流媒 ...

  9. iKcamp出品|微信小程序|小试牛刀(视频)+发布流程|基于最新版1.0开发者工具初中级教程分享

    iKcamp官网:http://www.ikcamp.com 访问官网更快阅读全部免费分享课程:<iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教程分享>. ...

最新文章

  1. java中inputstream_java中InputStream String
  2. java文本框背景_用Java编写小程序(包含组合框下拉和文本框)变换背景颜色
  3. 送给爱读书的孩子:2019年最受欢迎的30个书单
  4. 更好也更快!最先进的图像去模糊算法DeblurGAN-v2
  5. C++ C++基础语法入门总结(二)引用-内联函数-C++11新特性
  6. 开发技术理论学习与实践的关系
  7. Activity与Intent机制的学习笔记--转自feisky
  8. 玩客云服务器怎么卖,玩客云使用教程;低价NAS怎么打造;玩客云现在还值得入手吗?-聚超值...
  9. jis拉伸试棒图纸_拉力测试棒测试(拉伸试验试棒尺寸)
  10. java axis_Java 使用Axis实现WebService实例
  11. adb官方最新下载链接和常用操作
  12. 人生之路1.20代码 第五部分
  13. gentry算法_全同态加密释疑(一):四个算法(2)
  14. AtCoder Beginner Contest 121
  15. 在 Nebula K8s 集群中使用 nebula-spark-connector 和 nebula-algorithm
  16. Python之sep与end
  17. NX/UG二次开发孔特征查找
  18. win32 中GetLastError 关于code与信息
  19. jquery遍历对象list拼接
  20. WPF 定义自己的控件

热门文章

  1. python爬虫之逆向破解_这种python反爬虫手段有点意思,看我怎么破解
  2. 数据保护系列-敏感数据分类分级
  3. 写一个自己的谷歌浏览器扩展程序(脚本)
  4. msf永恒之蓝漏洞复现及问题解决
  5. 由浅入深玩转华为WLAN—23 Traffic-filter(ACL)在WLAN无线场景的应用
  6. 1034 -- 梯形
  7. Web前端面试之JavaScript典型面试题及答案
  8. 【CSDN编程竞赛】赛后总结
  9. 草莓棉花糖剧本-10
  10. 小米小爱同学PC版下载地址