android 硬编时设置了码率,设置了 CBR 或 VBR,但是晃动摄像头的时候数据量突然变的很大?

2019-10-12 09:25:38 +08:00
 xuroid
硬编菜鸟,设置帧率 25、码率固定,然后模式为 CBR,在摄像头静止的时候 1080P 数据也就 300-400KB/s,但是一旦摇晃摄像头速度就飙升到 1M/s 左右。设置 VBR、CQ、CBR 都是一样的效果。设置码率但不起作用。我哪里面错了呢,求助。。。。。
6581 次点击
所在节点    Android
14 条回复
zhchyu999
2019-10-12 09:57:02 +08:00
码率是一个预估值,并不是一定值。
xuroid
2019-10-12 10:00:54 +08:00
@zhchyu999 我这个摄像头支持码率为 5000-20000,现在纠结的是为什么画面动作大的时候数据量变化那么大,1M/s 的需求,实在不是每个人都能满足的。
maxthon
2019-10-12 10:51:23 +08:00
视频压缩算法最怕快速变化的内容
所以很难压缩,码率高
强行降低码率的话,就会是一堆马赛克
xuroid
2019-10-12 11:04:10 +08:00
@maxthon 有优化策略不?
psychoo
2019-10-12 11:07:03 +08:00
按道理 CBR 不会怎么变啊,你是用什么看的码率
maxthon
2019-10-12 11:07:24 +08:00
@xuroid 这在视频编码是很正常的现象,已经是优化后的结果了
maxthon
2019-10-12 11:08:19 +08:00
24-bit, 1080p @ 60 fps: 24 × 1920×1080 × 60 = 2.98 Gbit/s.
这是压缩前每秒的数据量
xuroid
2019-10-12 11:16:50 +08:00
@psychoo 没说码率有变化,只是说设置码率模式后也是一样的效果。应该是帧数据变大,I 帧和 P 帧都很大数据。
xuroid
2019-10-12 11:17:22 +08:00
@maxthon 所以说无解?额。
marvinyyf
2019-10-12 12:24:15 +08:00
是的,你可以对比下主流的直播 app
之前我也发现过这个问题,主播不动或者一直在桌面流量一般是 200kb 左右,频繁切换游戏等就是 350 左右
应该是压缩算法决定的,除非你们有团队能搞定这个
idealhs
2019-10-12 12:38:01 +08:00
这个和别的无关,就是视频编码哈,用了动态码率
静态画面是很好压缩的,动态的画面如果还是同样的码率,那就糊的不能看了
xuroid
2019-10-12 13:55:33 +08:00
@marvinyyf 就我一个人。。。
xuroid
2019-10-12 13:56:31 +08:00
@idealhs 哦哦,看来我方向又走错了。
xuroid
2019-10-14 10:30:31 +08:00
update:放弃硬编,使用 android 的软编 OMX,设置 KEY_BIT_RATE 后起作用了,拼命摇摄像头也能限制在 300K 以内。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/608473

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX