为了简化在某些编解码器中使用的大量选项,我们可以使用预设置文件,其中的选项更好地格式化并保存以便将来使用。

关于预设文件的介绍

预置文件是用于各种选项的文本文件,包括特定的编解码器。它们包含键=值对,每个选项和注释都包含在以#符号开始的行中。
指定预设置文件的选项

选项 编码类型 描述
-apre audio 对于音频,在Windows上最好使用-fpre选项
-spre subtitle 对于字幕,在Windows上最好使用-fpre选项
-vpre video 对于视频,在Windows上最好使用-fpre选项
-fpre any codec 对于任何编解码器类型,该值都是包含选项的文件名

一个简单的预设置文件mpeg2。ffpreset只能包含1个选项,例如:

vcodec=mpeg2video

要用mpeg2video编解码器编码一些输入,我们可以使用以下命令:

ffmpeg -i input -fpre mpeg2.ffpreset -q 1 MPEG2_video.mpg

下一个命令用flv (Flash视频)编解码器编码在网络上的使用:

ffmpeg -i input.avi -vcodec flv -f flv -r 29.97 -vf scale=320:240 ^ -aspect 4:3 -b:v 300k -g 160 -cmp dct -subcmp dct -mbd 2 -flags ^ +aic+mv0+mv4 -trellis 1 -ac 1 -ar 22050 -b:a 56k output.flv

该命令很长,并且在命令行上对各种更改进行编辑并不容易,因此我们将其修改为名为flv的预设置文件。ffpreset将包含与flv编解码器相关的选项(括号中的注释不是文件的一部分):

vcodec=flv (视频编解码器)
b:v=300k (视频比特率)
g=160 (图片组大小)
mbd=2 (macroblock决策算法)
flags=+aic+mv0+mv4 (aic - h263高级内部编码;总是尝试使用mv=<0,0>;mv4 -使用macroblock的4运动矢量)
trellis=1 (rate失真优化量化)
ac=1 (声道数)
ar=22050 (音频采样率)
b:a=56k (音频比特率)

现在,具有相同结果的命令将是:

ffmpeg -i input.avi -f flv -r 29.97 -vf scale=320:240 -aspect 4:3 ^ -cmp dct -subcmp dct -fpre flv.ffpreset output.flv

预置文件的例子

FFmpeg文档提供了几种常见的预置,并将其描述如下:

libx264-ipod320.ffpreset libx264-ipod640.ffpreset
vcodec=libx264
vprofile=baseline
level=13
maxrate=768000
bufsize=3000000
vcodec=libx264
vprofile=baseline
level=30
maxrate=10000000
bufsize=10000000

libvpx - 1080 p.ffpreset预置文件

vcodec=libvpx
g=120
lag-in-frames=16
deadline=good
cpu-used=0
vprofile=1
qmax=51
qmin=11
slices=4
b=2M
#ignored unless using -pass 2
maxrate=24M
minrate=100k
auto-alt-ref=1
arnr-maxframes=7
arnr-strength=5
arnr-type=centered

libvpx - 1080 p50_60.ffpreset预置文件

vcodec=libvpx
g=120
lag-in-frames=25
deadline=good
cpu-used=0
vprofile=1
qmax=51
qmin=11
slices=4
b=2M
#ignored unless using -pass 2
maxrate=24M
minrate=100k
auto-alt-ref=1
arnr-maxframes=7
arnr-strength=5
arnr-type=centered

libvpx - 360 p.ffpreset预置文件

vcodec=libvpx
g=120
lag-in-frames=16
deadline=good
cpu-used=0
vprofile=0
qmax=63
qmin=0
b=768k
#ignored unless using -pass 2
maxrate=1.5M
minrate=40k
auto-alt-ref=1
arnr-maxframes=7
arnr-strength=5
arnr-type=centered

libvpx - 720 p.ffpreset预置文件

vcodec=libvpx
g=120
lag-in-frames=16
deadline=good
cpu-used=0
vprofile=0
qmax=51
qmin=11
slices=4
b=2M
#ignored unless using -pass 2
maxrate=24M
minrate=100k
auto-alt-ref=1
arnr-maxframes=7
arnr-strength=5
arnr-type=centered

libvpx - 720 p50_60.ffpreset预置文件

vcodec=libvpx
g=120
lag-in-frames=25
deadline=good
cpu-used=0
vprofile=0
qmax=51
qmin=11
slices=4
b=2M
#ignored unless using -pass 2
maxrate=24M
minrate=100k
auto-alt-ref=1
arnr-maxframes=7
arnr-strength=5
arnr-type=centered

作者:张芳涛
链接:https://www.jianshu.com/p/014be321af3d
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

FFmpeg 预设编解码器相关推荐

  1. 【Android FFMPEG 开发】FFMPEG 获取编解码器 ( 获取编解码参数 | 查找编解码器 | 获取编解码器上下文 | 设置上下文参数 | 打开编解码器 )

    文章目录 博客简介 . FFMPEG 编解码器获取流程 I . FFMPEG 获取音视频流的编解码参数 AVCodecParameters *codecpar II . FFMPEG 查找解码器 av ...

  2. ffmpeg自定义编解码器

    小结 avdeviceffmpeg自定义输出设备OPENGL avcodecffmpeg自定义字节流转换器MJPEG2JPEG avcodecffmpeg自定义硬件加速解码器videotoolbox ...

  3. 《FFmpeg Basics》中文版-11-格式之间转换

    正文 ffmpeg工具的最常见用法是从一种音频或视频格式转换为另一种相关的格式. 格式参数在输出文件之前由-f选项设置,或者在输入文件之前也有原始输入,具体的可用格式信息在[显示帮助和功能]一章中列出 ...

  4. ffmpeg中文版文档

    1简介 ffmpeg [global_options] {[input_file_options] -i input_url} - {[output_file_options] output_url} ...

  5. 【Android FFMPEG 开发】OpenSLES 播放音频 ( 创建引擎 | 输出混音设置 | 配置输入输出 | 创建播放器 | 获取播放/队列接口 | 回调函数 | 开始播放 | 激活回调 )

    文章目录 I . FFMPEG 播放视频流程 II . OpenSLES 播放音频流程 III . OpenSLES 播放参考 Google 官方示例 IV . OpenSL ES 播放代码 ( 详细 ...

  6. 【Android FFMPEG 开发】FFMPEG ANativeWindow 原生绘制 ( 设置 ANativeWindow 缓冲区属性 | 获取绘制缓冲区 | 填充数据到缓冲区 | 启动绘制 )

    文章目录 I . FFMPEG ANativeWindow 原生绘制 前置操作 II . FFMPEG 原生绘制流程 III . 设置 ANativeWindow 绘制窗口属性 ANativeWind ...

  7. 【Android FFMPEG 开发】FFMPEG ANativeWindow 原生绘制 ( Java 层获取 Surface | 传递画布到本地 | 创建 ANativeWindow )

    文章目录 I . FFMPEG ANativeWindow 原生绘制 II . FFMPEG 原生绘制流程 III . Java 层获取 Surface 画布 IV . 传递 Surface 画布到 ...

  8. 【Android FFMPEG 开发】FFMPEG AVFrame 图像格式转换 YUV - RGBA ( 获取 SwsContext | 初始化图像数据存储内存 | 图像格式转换 )

    文章目录 I . FFMPEG AVFrame 图像数据帧处理 前置操作 II . FFMPEG 解码 AVPacket 数据到 AVFrame 流程 III. FFMPEG 解码前后的图像格式 IV ...

  9. 【Android FFMPEG 开发】FFMPEG 解码 AVPacket 数据到 AVFrame ( AVPacket-解码器 | 初始化 AVFrame | 解码为 AVFrame 数据 )

    文章目录 I . FFMPEG 解码 AVPacket 数据到 AVFrame 前置操作 II . FFMPEG 解码 AVPacket 数据到 AVFrame 流程 III . FFMPEG 发送 ...

最新文章

  1. 在一个SQL Server表中的多个列找出最大值
  2. requests.get(url)执行没反应_如果贾府抄家时黛玉还活着,她会是什么反应?
  3. 模组使用之天线阻抗匹配、匹配过程、天线选型注意、RF走线Layout建议
  4. UA MATH564 概率论 高阶矩的计算:有限差算子方法1
  5. python实现货币转换
  6. 使用github pages创建博客
  7. mysql安装提示language错误_MySQL 安装 CMake Error CMAKE_CXX_COMPILER not set
  8. Linux上Svn环境搭建
  9. [转载] 列表、元组及通用序列操作
  10. 在python中获取当前工作目录可以通过_python-获取当前工作路径
  11. oracle 11gr2 rac价格,调整Oracle 11gR2 RAC为单实例库
  12. 前端开发大师修炼指南
  13. 天池NLP文本分类比赛如何轻松轻松获得Top K的秘诀!
  14. 搜索引擎Elasticsearch,这篇文章给讲透了(建议收藏)
  15. 无线扫码枪 服务器查询异常,扫描枪常见问题
  16. Linux下 SVN 常用命令
  17. 华硕 ROG Win11.21H2 x64极速精简优化专业版
  18. 对宇宙起源的一个现代猜想-重生而非诞生
  19. 推荐5款小众实用神器软件,功能强大,值得你去收藏
  20. 使用NPOI按照word模板文件生成新的word文件

热门文章

  1. 1.试述数据、数据库、数据库系统、数据库管理系统的概念。
  2. 对国家最新战略“新基建”的解读,一起把握赚钱的机会
  3. 商用在线客服软件测试报告
  4. 鸿蒙 OS 2.0 正式发布!小米也能用?
  5. Android 音频源码分析——AndroidRecord录音(一)
  6. 【[SDOI2008]山贼集团】
  7. 【云原生】第十一篇--基于Docker容器DevOps应用方案
  8. C语言编写两个函数,分别实现两个整数的最小公倍数和最大公约数
  9. 【分享】insert出现Could not set property ‘id‘ of class XXXXXXXX
  10. 应用程序主备库切换方案