FFMPEG进阶系列03-ffmpeg转码专题(上)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/muyuyuzhong/article/details/82945429

概述

关键的参数

该篇主要是探讨转码相关的技术点,比如:

  • 视频尺寸:指的就是视频的分辨率,常见的分辨率有4096x2304,1920x1080,1280x720,720x576等。
  • 视频编码:视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式。视频编码格式常见到的有:MPEG-2 TS、Divx、Xvid、H.264、WMV-HD和VC-1。
  • 音频编码:音频编码方式指通过特定的压缩技术对音频数据进行处理的方法。
  • 帧率:帧率(即视频更新率)是用于测量显示帧数的量度。测量单位为“每秒显示帧数”(Frame Per Second,FPS,帧率)或“赫兹”,单位用FPS用来描述视频每秒播放多少帧,而单位用赫兹用来描述显示器的画面每秒更新多少次。 一般帧率越高,视频画面越流畅。
  • 比特率:指每秒传送的比特(bit)数,即每秒传输的文件大小。比特率规定使用“比特每秒”(bit/s 或 bps)为单位。比特率越高,每秒传送的数据越大。
  • 采样率:采样率的单位是Hz,表示每秒采样的次数。单位时间内取样率越大,精度就越高,处理过的视频文件就越接近没有处理过的视频文件。
  • 码率:码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。码率与体积成正比:码率越大,体积越大;码率越小,体积越小。由于文件体积与取样率是成正比的,所以几乎所有的编码格式都想用最低的码率达到最少的失真,“码率”就是失真度,码率越高越清晰,反之则画面粗糙而且马赛克多。
  • 视频部分的位深度:用于指定图像中的每个像素可以使用的颜色信息数量,用“位即bit”为单位。
  • 音频部分的位深度:单个声道的采样数据大小

视频压缩

一般来说,在做转码时音频影响不大,重点在于视频压缩。
视频压缩参数主要分为以下:

  • -s 设置输出分辨率(例如 -s 480x320)
  • -r 设置帧率(例如 -r 25)
  • -b:v 设置码率(例如 -b:v 500k)
  • -c:v 或 -vcodec设置编码器(例如 -c:v libx264)
  • 特殊参数-an,-vn,-sn分别排除所有的音频,视频,字幕流。
  • 编码器高级参数设置(也最为复杂)

视频分辨率和压缩大小参考

分辨率 Bitrate 10分钟的视频
320p 320×240 180 kbit/s ~13 MB
360p 640×360 300 kbit/s ~22 MB
480p 864×480 500 kbit/s ~37 MB
576p 720x576 850 kbit/s ~63 MB
720p 960×720 1000 kbit/s ~75 MB

编码器高级参数设置

编码器高级参数设置,甚为复杂:

  • -vcodec libx264 强制指定视频编码模式
  • -profile:v high 使用H.264的High模式 比较消耗资源
  • -pre slow 使用慢速模式 耗时间 清晰度高。该参数还可选择 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placebo
  • -b:v 360k / 720k / 1550k 视频比特率 (该参数比较重要 如果是转换Web用途 是否正确直接影响视频播放流畅程度)
  • -maxrate 500k 最大比特率
  • -bufsize 1000k 比特率缓衝大小
  • -threads 0 处理器核心利用数量
  • -aspect 16:9 / 4:3 视频比例
  • -pass N 1-3可选
    ##ffmpeg x264编码参数简介
    x264参数在FFMPEG中可以使用很多参数,同样也可以使用x264本身的参数来控制,具体的参数列表如下所示:
参数 类型 说明
preset 字符串 编码器预设参数 。可选ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow and placebo。默认"medium"
tune 字符串 调优编码参数
profile 字符串 编码profile档级设置。可选baseline主要用于低清视频的制作,main主要用于移动设备视频的制作,high主要用于电脑播放和高清视频的制。
level 字符串 编码level层级设置
wpredp 字符串 P帧预测设置
x264opts 字符串 设置x264专有参数
crf 浮点数 选择质量恒定质量模式
crf_max 浮点数 选择质量恒定质量模式最大值
qp 整数 恒定量化参数控制
psy 浮点数 只用psychovisual优化
rc-lookahead 整数 设置帧类型和帧率控制预读帧数
weightb 布尔 允许B帧加权预测,可以减少相邻B帧质量低的影响,对质量和压缩比都有提高,且对速度影响极少。默认为auto
weightp 整数 P帧加强预测。 选项none,simple,smart,默认-1
ssim 布尔 计算和打印ssim统计信息
intra-refresh 布尔 用定时刷I帧以替代IDR帧,默认auto
bluray-compat 布尔 蓝光兼容参数
b-bias 整数 B帧可能指数,正值倾向于增加B帧,负值倾向于减少B帧。如果B-Frams设置的较大,可以改成 -1。默认值:
mixed-refs 布尔 每个 partition一个参考,而不是每个宏块一个参考。默认auto
8x8dct 布尔 8×8矩阵变换,用在 high profile。 默认auto
aud 布尔 带AUD间隔符。默认auto
mbtree 布尔 宏块树频率控制。默认auto
deblock 字符串 环路滤波器参数
cplxblur 浮点数 减少波动QP参数。默认-1
partitions 字符串 逗号分隔的 partition列表,可以包含的值有p8×8、p4x4、b8×8、8×8、i4×4、none、all
direct-pred 整数 运动向量预测模式
slice-max-size 整数 每个slice的最大字节数。默认-1
nal-hrd 整数 HRD信号信息设置。选项none,vbr,cbr
motion-est 整数 运动估计方法。选项dia,hex,umh,esa,tesa。默认-1
forced-idr 布尔 强行设置关键帧为IDR帧,默认false
coder 整数 编码器类型。选项default,cavlc,cabac,vlc,ac。默认default
b_strategy 整数 I/P/B帧选择策略 。默认-1
chromaoffset 整数 QP色度和亮度之间的差异参数
sc_threshold 整数 场景切换阈值参数
noise_reduction 整数 降噪处理参数
x264-params 字符串 与x264opts操作相同

音频压缩

  • -acodec libfaac 强制指定音频处理模式
  • -ac 2 声道选择
  • -ar 44100 音频赫兹
  • -ab 128k 比特率 128k (或-b:a 128k)
  • 示例:-acodec libfaac -ac 2 -ar 44100 -ab 64k

更多资料,更多分享

音视频技术交流群1 已满
音视频技术交流群2 已满
音视频技术交流群3 群号782508536

最新文章请关注以下专栏:
简书专栏:https://www.jianshu.com/nb/29979868
知乎专栏:https://zhuanlan.zhihu.com/multimedia

参考

[1] ffmpeg转换参数和压缩输出大小的比率

猜你喜欢

转载自blog.csdn.net/muyuyuzhong/article/details/82945429
今日推荐