digimoon
帖子: 49
注册时间: 2011-07-15 11:59

x264如何限制最大平均码率和峰值码率?

1.设备只能播得动1m的码率
2.我觉得crf23这个参数压出来的视频质量合适
3.一大堆视频里有高动态和静态的视频想批量压制

如果光使用crf23和指定码率1m,那么有高动态的视频就很容易超标
如果使用2pass指定码率1m的话,那么本来不需要1m码率的静态视频也会被强制压成1m浪费空间

不知道有没什么参数设置能一次解决这两个问题的呢?
头像
feisty2
帖子: 274
注册时间: 2012-08-05 10:03

Re: x264如何限制最大平均码率和峰值码率?

2pass不会浪费 会浪费的是CBR
cunhan
核心会员
核心会员
帖子: 214
注册时间: 2010-09-20 22:09

Re: x264如何限制最大平均码率和峰值码率?

--vbv-maxrate
digimoon
帖子: 49
注册时间: 2011-07-15 11:59

Re: x264如何限制最大平均码率和峰值码率?

x264 静帧.mp4 --bitrate 1000 --pass 1 --output test.mp4
x264 静帧.mp4 --bitrate 1000 --pass 2 --output test.mp4
出来的文件码率1000

x264 静帧.mp4 --crf 23 --output test.mp4
出来的文件码率50

x264 动态.mp4 --crf 23 --vbv-maxrate 1000 --output test.mp4
出来的文件码率1800

理想状态:
一条相同的命令,静帧的扔进去出来50的,动态的扔进去出来1000的
头像
upyzl
帖子: 446
注册时间: 2010-12-25 18:44
来自: 湘/京
联系: 网站

Re: x264如何限制最大平均码率和峰值码率?

首先 码率 = 体积 / 时间
vbv-maxrate需要vbv-bufsize,否则会被忽略掉
虽然本来vbv是针对硬件参数所设计的,不过可以当作“在任意连续的vbv-bufsize体积里,限制码率不超过vbv-maxrate”来理解

所以你大概需要这样的
--crf 23 --vbv-maxrate 1000 --vbv-bufsize 1000
或许你可以视情况自行调整bufsize

其实我很好奇是什么设备能放H.264 High Profile却有这样的限制,哪怕PSP这种只能放main的都没这么不济,现在随便一个几百元的移动智能设备更不在话下……
digimoon
帖子: 49
注册时间: 2011-07-15 11:59

Re: x264如何限制最大平均码率和峰值码率?

upyzl 写了:首先 码率 = 体积 / 时间
vbv-maxrate需要vbv-bufsize,否则会被忽略掉
虽然本来vbv是针对硬件参数所设计的,不过可以当作“在任意连续的vbv-bufsize体积里,限制码率不超过vbv-maxrate”来理解

所以你大概需要这样的
--crf 23 --vbv-maxrate 1000 --vbv-bufsize 1000
或许你可以视情况自行调整bufsize

其实我很好奇是什么设备能放H.264 High Profile却有这样的限制,哪怕PSP这种只能放main的都没这么不济,现在随便一个几百元的移动智能设备更不在话下……
谢谢我试试看
软解的老设备只能靠cpu跑,虽然平时很少遇到但是真会有些山寨系统这么逗比

回到 “视频编码器 / Video encoder discussion”