ffmpeg 常用知识点收集

一、基础简介

FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了libavcodec ─这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。

FFmpeg官网:https://www.ffmpeg.org/

Github地址:https://github.com/FFmpeg/FFmpeg

FFmpeg项目由以下几部分组成:

  • FFmpeg视频文件转换命令行工具,也支持经过实时电视卡抓取和编码成视频文件;

  • ffserver基于HTTPRTSP用于实时广播的多媒体服务器.也支持时间平移;

  • ffplaySDLFFmpeg库开发的一个简单的媒体播放器;

  • libavcodec一个包含了所有FFmpeg音视频编解码器的库。为了保证最优性能和高可复用性,大多数编解码器从头开发的;

  • libavformat一个包含了所有的普通音视格式的解析器和产生器的库。

 

帧率:帧率(Frame rate)也叫帧频率,帧率是视频文件中每一秒的帧数,肉眼想看到连续移动图像至少需要15帧。

码率:比特率(Bit rate)(也叫码率,数据率)是一个确定整体视频/音频质量的参数,秒为单位处理的字节数,码率和视频质量成正比,在视频文件中中比特率用bps来表达。

帧率
1、用 -r 参数设置帧率

ffmpeg –i input –r fps output

2、用fps filter设置帧率

ffmpeg -i 1.mp4-vf fps=fps=25 11.mp4

例如设置帧率为29.97fps,下面三种方式具有相同的结果:

ffmpeg -i input.avi -r 29.97 output.mp4
ffmpeg -i input.avi -r 30000/1001 output.mp4
ffmpeg -i input.avi -r netsc output.mp4

码率】设置参数-b

ffmpeg -i 1.mp4 -b 1.5M 2.mp4

音频:-b:a

视频: - b:v

设置视频码率为1500kbps

ffmpeg -i input.avi -b:v 1500k output.mp4

控制输出文件大小

-fs (file size首字母缩写)

ffmpeg -i input.avi -fs 1024K output.mp4

计算输出文件大小:( 视频码率 + 音频码率 ) * 时长 / 8 = 文件大小(K)

二、视频压缩

命令行参数-crf

优先保证画面质量(转码时间可能较长)的情况下,使用-crf参数压缩,取值范围为0~51,其中0为无损模式,数值越大,画质越差,输出文件越小。

参考值:18~28,18被认为是视觉无损的,输出视频质量和输入视频相当。

ffmpeg -i 源文件.mov -c:v libx264 -preset veryslow -crf 18 -c:a copy 目标文件.mp4

意思是:将D盘的源文件src.mov,以 veryslow 的速度重新编码成H.264格式并保存为mp4文件。-preset指定的编码速度越慢,获得的压缩效率就越高。

查看 -preset 取值范围:

ffmpeg -i 源文件.mov -c:v libx264 -preset -tune 目标文件.mp4

-c:a copy 是将音频数据从源文件中以原有编码格式直接拷入目标文件。

-c:v 参数取值查看

ffmpeg -encoders

最新文章

  1. 十五天精通WCF——第一天 三种Binding让你KO80%的业务
  2. Linux下Weblogic创建域方法和步骤
  3. bzoj3123: [Sdoi2013]森林
  4. php后台增加删除修改跳转页面
  5. RTX闪退(打开闪退,收发文件闪退)
  6. 快速排序 && 希尔排序 && 插入排序
  7. java nio 网络框架实现
  8. android基础小结
  9. pthread_cond_wait避免线程空转
  10. wikioi3363支线剧情(挖个坑,不会做。。。)
  11. LeakCanary检测内存泄漏.md
  12. Mapreduce的序列化和流量统计程序开发
  13. ctype.h
  14. django_视图层_编写url
  15. 小程序 iphone X 吸底按钮适配
  16. 全面接触PDF:最好用的PDF软件汇总(转)
  17. Lerning Entity Framework 6 ------ A demo of using Entity framework with MySql
  18. PHP 实战之设计模式:PHP 中的设计模式
  19. 【JUC源码解析】ScheduledThreadPoolExecutor
  20. 《Android应用测试与调试实战》读书笔记

热门文章

  1. 高版本(8以上)tomcat不支持rest中的delete和put方式请求怎么办
  2. WEB安全新玩法 [8] 阻止订单重复提交
  3. CF833B-线段树优化DP
  4. KMP子串匹配(只能匹配出唯一子串)
  5. ElasticSearch简介和快速实战
  6. Mplus 8.3 Combo Version for Win/Mac安装破解教程
  7. jvm源码解读--10 enum WKID 枚举
  8. 项目去O实践
  9. 升级vs更新,用词莫忘准确(附PHP版本升级教程)
  10. D. 旅游景点 Tourist Attractions 状压DP