直播模块之摄像头不支持默认Mode设置分辨率怎么办
1、Mode是什么?
在需要打开摄像头传输视频的情况下,视频存在一个参数是分辨率,我们将常用分辨率定义为Mode = 1~12 。下图是我们定义的默认Mode对应的分辨率值。

2、摄像头的分辨率不在系统定义的Mode之中怎么办?
摄像头比较特殊,只能打开一些特定的分辨率,或者视频源特殊是特殊的分辨率的。这样的情况下可以使用函数VideoModeSize,函数描述如下图所示

3、 如何通过videoModeSize 修改分辨率?
在SDK初始化之后就可以调用videoModeSize修改Mode定义的分辨率了。
我们希望客户定义Mode从 Mode = 12 开始,比如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
int iErr = m_Live.Initialize(m_sDevID, "", sServerAddr, "", 3, sInitParam, this); if (iErr != 0) { Log.d("pgLiveMultiCapture", "LiveStart: Live.Initialize failed! iErr=" + iErr); Alert("Error", "LiveStart: Live.Initialize failed! iErr=" + iErr); return; } m_Live.videoModeSize(12,1024,600); ... String sVideoParam = "(Code){3}(Mode){12}(Rate){66}(Portrait){1}(BitRate){500}(MaxStream){3}(SendCache){1}"; m_Live.VideoStart(0, sVideoParam, null); |
需要注意的是VideoModeSize需要在视频采集端(Capture)和视频播放端(Render)两端都要定义才能生效。比如直播模块采集端和播放端都要定义才有效。