android视频编码格式,Android,ios平台上x264编码实时视频参数设置与优化 | 贝壳博客...

移动设备上的H.264实时视频编码,需要考虑到cpu占用与带宽这2个限制因素,使用X264软编码,开启neon指令集优化,即使是在arm处理器下,依然可以通过优化配置达到满意的性能.

以下测试环境 一段352×288@15fps的视频,模拟摄像头采集到的数据。ipod touch4 和昨天编译出的X264:

Touch-future:~ root# ./x264 -o video_1.h264 video_1.y4m –profile baseline –preset ultrafast –fps 15

baseline

ultrafast

encoded 467 frames, 48.17 fps, 865.45 kb/s 3368054(压缩后的文件大小,单位字节)

superfast

encoded 467 frames, 39.33 fps, 640.36 kb/s 2492070

veryfast

encoded 467 frames, 28.43 fps, 535.28 kb/s 2083132

fast

encoded 467 frames, 10.41 fps, 542.16 kb/s 2109913

main

ultrafast

encoded 467 frames, 42.79 fps, 865.45 kb/s 3368054 B-frames: 0% (ultrafast 下不支持b帧编码)

superfast

encoded 467 frames, 31.94 fps, 608.48 kb/s 2367992 B-frames: 32.3%

veryfast main

encoded 467 frames, 22.88 fps, 480.83 kb/s 1871246 B-frames: 34.9%

使用main profile, 增加B帧的支持并没有显著的减少码流,同时性能损失也比较明显,

取一个superfast main 编码后的文件读取信息看看

Encoding settings : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x1:0x1 / me=dia / subme=1 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=1 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=250 / keyint_min=15 / scenecut=40 / intra_refresh=0 / rc=crf / mbtree=0 / crf=23.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / pb_ratio=1.30 / aq=1:1.00

1

Encodingsettings:cabac=1/ref=1/deblock=1:0:0/analyse=0x1:0x1/me=dia/subme=1/psy=1/psy_rd=1.00:0.00/mixed_ref=0/me_range=16/chroma_me=1/trellis=0/8x8dct=0/cqm=0/deadzone=21,11/fast_pskip=1/chroma_qp_offset=0/threads=1/lookahead_threads=1/sliced_threads=0/nr=0/decimate=1/interlaced=0/bluray_compat=0/constrained_intra=0/bframes=3/b_pyramid=2/b_adapt=1/b_bias=0/direct=1/weightb=1/open_gop=0/weightp=1/keyint=250/keyint_min=15/scenecut=40/intra_refresh=0/rc=crf/mbtree=0/crf=23.0/qcomp=0.60/qpmin=0/qpmax=69/qpstep=4/ip_ratio=1.40/pb_ratio=1.30/aq=1:1.00

可以看出,x264默认是使用”crf”压缩算法,质量为23. 作为默认值,一般代表了编码速度,画质与码流的均衡.

83d08f77efd89764b4d0abffb2c78929.png

而我们移动设备实时视频编码应用的场景,更多侧重于优化编码速度与码流上.

ultrafast baseline crf 28

encoded 467 frames, 58.94 fps, 515.58 kb/s 2006474

superfast baseline crf 26

encoded 467 frames, 41.73 fps, 460.02 kb/s 1790244

superfast baseline crf 28

encoded 467 frames, 43.64 fps, 366.28 kb/s 1425436

如何取舍,就看各位的需求啦.

用到的样例文件及编码后的文件,点此下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值