『漫游』酷论坛>『影音数码技术学习交流』>x264怎样才能用ABR/CBR来 ..

x264怎样才能用ABR/CBR来压制/输出MP4视频

stu-p@2011-11-30 15:01

x264怎样才能用ABR/CBR来压制/输出MP4视频?不管是在命令行或者是megui中
我发现压制后的视频都是vbr码流。下面是我在命令行中的内容:
【仅为了测试,随便找了一张VCD光盘提取出一段dat视频】
复制代码
  1. x264.exe --crf-max 20  --fps 25 --bitrate 256 --keyin 50 --min-keyin 25 --no
  2. -cabac  --output "my.mp4" "1.dat"

用mediainfo查看:

概要
完整名称                             : E:\my.mp4
文件格式                             : MPEG-4
格式简介                             : JVT
编码设置ID                           : avc1
文件大小                             : 469 KiB
长度                               : 18秒 840ms
平均混合码率                           : 204 Kbps
编码日期                             : UTC 2011-11-30 06:03:52
标记日期                             : UTC 2011-11-30 06:03:52

视频
ID                               : 1
文件格式                             : AVC
文件格式/信息                          : Advanced Video Codec
格式简介                             : High@L1.3
格式设置, CABAC                      : 否
格式设置, ReFrames                   : 4 frames
编码设置ID                           : avc1
编码设置ID/信息                        : Advanced Video Coding
长度                               : 18秒 840ms
码率模式                             : VBR
码率                               : 201 Kbps
额定码率                             : 256 Kbps
最大码率                             : 520 Kbps
画面宽度                             : 352像素
画面高度                             : 288像素
画面比例                             : 4/3
帧率模式                             : 恒定
帧率                               : 25.000 fps
分辨率                              : 24位
比色法                              : 4:2:0
扫描方式                             : 逐行扫描
bits/(pixel*frame)(数据密度)         : 0.079
大小                               : 463 KiB (99%)

小弟学视频压制没多久,,菜菜级的。哪位老师指点一下如何压制出abr/cbr的码流
给一点代码。谢谢!

引用

xijiao2000@2011-11-30 21:12

1 PASS BITRATE 就是ABR....
好像没有CBR
转别人说
x264的 CBR其实包含在 Average Bit Rate 模式下(这个模式会依据你给定的码率 并 为每一帧分配合理的量化值 使瞬间码率在平均值上下波动)
此外 还需要调整 Quantizer Curve Compression 为 0 才能实现CBR
(可见 CBR模式 在x264中是个不存在的理念)
引用

06_taro@2011-12-01 17:13

有CBR的
當設置bitrate=max_bitrate時
譬如--bitrate=256 --vbv-maxrate=256
复制代码
  1.     s += sprintf( s, " rc=%s mbtree=%d", p->rc.i_rc_method == X264_RC_ABR ?
  2.                                ( p->rc.b_stat_read ? "2pass" : p->rc.i_vbv_max_bitrate == p->rc.i_bitrate ? "cbr" : "abr" )
  3.                                : p->rc.i_rc_method == X264_RC_CRF ? "crf" : "cqp", p->rc.b_mb_tree );
引用

回 2楼(06_taro) 的帖子

stu-p@2011-12-02 11:04

我下载了您签名处的Taro's x264 ,非常好用,功能强大~~~赞!!
由于水平有限,使用过程中遇到一点问题,麻烦您再次指点一下。非常感谢!

--level-force           Force params to specifyed level
这个参数是不是强制指定level ?--level-force 3.1 或者其他值会报错,直接退出。
音频问题:
--abitrate <float>      Enables bitrate mode and set bitrate (kbits/s)
--aquality <float>      Quality-based VBR [codec-dependent default]
--asamplerate <integer> Audio samplerate (Hz) [keep source samplerate]
--acodec-quality <float> Codec's internal compression quality [codec speci
上面--asamplerate 我指定采样率后,提示“无法打开音频文件”。不知道这个选项开关怎样用它?

--force-cfr             Force constant framerate timestamp generation
这个选项如何用?我试了下好像没作用!

Input/Output:
  -o, --output <string>       Specify output file
      --muxer <string>        Specify output container format ["auto"]
                                  - auto, raw, mkv, flv, mp4, 3gp, 3g2, mov, qt,avi
-o没问题,--muxer就不行,封装格式如何使用?比如--muxer "test.mp4" "1.dat"会报错!
引用

| TOP