AnyChat技术支持论坛

标题: 当进行屏幕全屏共享的时候,画质很差 [打印本页]

作者: bok002121    时间: 2014-5-20 15:40
标题: 当进行屏幕全屏共享的时候,画质很差
如题,要怎么解决?

DWORD dwValue = 0;
        // 设置本地视频编码的码率
                dwValue = 0;
        BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_BITRATECTRL,(const char*)&dwValue,sizeof(DWORD));
        // 设置本地视频编码的质量因子
                dwValue = 5;
        BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_QUALITYCTRL,(const char*)&dwValue,sizeof(DWORD));
        // 设置本地视频编码的关键帧间隔
                dwValue = 25;
        BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_GOPCTRL,(const char*)&dwValue,sizeof(DWORD));
        // 设置本地视频编码的帧率
                dwValue = 25;
        BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_FPSCTRL,(const char*)&dwValue,sizeof(DWORD));
        // 设置本地视频编码的预设参数
                dwValue = 5;
        BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_PRESETCTRL,(const char*)&dwValue,sizeof(DWORD));
        // 设置本地视频采集的宽度
                //dwValue = GetSystemMetrics(SM_CXSCREEN);
        //  dwValue = 320;
          dwValue = 1000;
        BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_WIDTHCTRL,(const char*)&dwValue,sizeof(DWORD));
        // 设置本地视频采集的高度
                //dwValue = GetSystemMetrics(SM_CYSCREEN);
            //  dwValue = 240;
        dwValue = 800;
        BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_HEIGHTCTRL,(const char*)&dwValue,sizeof(DWORD));
        // 使参数设置生效
                BOOL bUseAppParam = TRUE;
        BRAC_SetSDKOption(BRAC_SO_LOCALVIDEO_APPLYPARAM,(const char*)&bUseAppParam,sizeof(DWORD));


作者: 廖斌    时间: 2014-5-20 15:50
您好,可以将您的日志文件发过来看下。看您设置的参数是否生效。
作者: bok002121    时间: 2014-5-21 09:32
廖斌 发表于 2014-5-20 15:50
您好,可以将您的日志文件发过来看下。看您设置的参数是否生效。

Apply video parameter:1366x768, bitrate:0, quality:5, gop:25, fps:25, preset:5, codec:0
作者: 廖斌    时间: 2014-5-21 09:38
bok002121 发表于 2014-5-21 09:32
Apply video parameter:1366x768, bitrate:0, quality:5, gop:25, fps:25, preset:5, codec:0

您好,可以把完整的日志发过来吗?这个日志只是表明上层修改了参数。至于有没有生效,还要看视频编码的初始化部分日志
作者: admin    时间: 2014-5-21 09:39
您好!bitrate:0,表示采用了质量因子模式,画质应该不会太差,您所说的画质太差是不清晰,还是?可否截一张图我们参考一下?
作者: bok002121    时间: 2014-5-21 20:07
廖斌 发表于 2014-5-21 09:38
您好,可以把完整的日志发过来吗?这个日志只是表明上层修改了参数。至于有没有生效,还要看视频编码的初 ...

[2014-05-21 20:04:35(652)]        ---------------------------AnyChat Platform Core SDK Client Log---------------------------
[2014-05-21 20:04:35(653)]        Load BRAnyChatCore.dll success!(V4.9 Build Time:Apr  9 2014 15:11:07)
[2014-05-21 20:04:35(655)]        Load BRMiscUtil.dll success!(V4.9 Build Time:May  3 2014 18:26:48)
[2014-05-21 20:04:35(725)]        Load BRMediaUtil.dll success!(V4.9 Build Time:May  3 2014 18:25:46)
[2014-05-21 20:04:35(726)]        Load BRMediaShow.dll success!(V4.9 Build Time:May  3 2014 18:26:45)
[2014-05-21 20:04:35(728)]        Load BRMediaCore.dll success!(V4.9 Build Time:May  3 2014 18:27:07)
[2014-05-21 20:04:35(747)]        Invoke        SetSDKOption(BRAC_SO_AUDIO_AGCCTRL,1)
[2014-05-21 20:04:35(748)]        Invoke        SetSDKOption(BRAC_SO_AUDIO_VADCTRL,1)
[2014-05-21 20:04:35(748)]        Invoke        SetSDKOption(BRAC_SO_AUDIO_NSCTRL,1)
[2014-05-21 20:04:35(748)]        Invoke        SetSDKOption(BRAC_SO_AUDIO_ECHOCTRL,1)
[2014-05-21 20:04:35(748)]        Invoke        AudioGetVolume(device:1, dwVolume:50)=0
[2014-05-21 20:04:35(749)]        Invoke        AudioGetVolume(device:0, dwVolume:50)=0
[2014-05-21 20:04:35(784)]        Apply video parameter:1366x768, bitrate:0, quality:5, gop:25, fps:25, preset:5, codec:0
[2014-05-21 20:04:35(787)]        Invoke        BRAC_Connect(127.0.0.1,8916)=0
[2014-05-21 20:04:35(787)]        Invoke        LoginServer(username=teacher)
[2014-05-21 20:04:35(788)]        Invoke        EnterRoom(roomid=1)
[2014-05-21 20:04:35(823)]        CheckClientSocketLink         Connect(ip=127.0.0.1,port=8916)
[2014-05-21 20:04:35(873)]        Server version: V4.9(Build Time:2014-05-03 18:27:45, Server OS:Windows)
[2014-05-21 20:04:35(879)]        Message        OnConnect(bSuccess:1, errorcode=0)
[2014-05-21 20:04:35(959)]        Message        OnLoginSystem(userid=-4,errorcode=0,username=teacher), msg deliver worked(1)
[2014-05-21 20:04:36(000)]        Connection to streaming media server successfully!(udp delay:16ms)
[2014-05-21 20:04:36(000)]        Message        OnEnterRoom(roomid=1,errorcode=0,siteindex=2)
[2014-05-21 20:04:36(001)]        Message        OnReceiveOnlineUser(count=3,roomid=1)
[2014-05-21 20:04:36(029)]        Win7 AEC Audio Capture Driver(Microphone (Realtek High Definition Audio))
[2014-05-21 20:04:36(032)]        Audio Init, error:0, device:0, 1, 16000, 16, capmode:0
[2014-05-21 20:04:36(033)]        Audio codec init, handle:1, 11, 1, 16000, 16, 15850
[2014-05-21 20:04:36(041)]        Audio Playback Device Init(0, 1, 16000, 16), WaveOut Playback Driver
[2014-05-21 20:04:36(281)]        Message        OnP2PConnectState(userid=-2, state=1)
[2014-05-21 20:04:36(441)]        Message        OnP2PConnectState(userid=-3, state=1)
[2014-05-21 20:04:36(561)]        Message        OnP2PConnectState(userid=-3, state=3)
[2014-05-21 20:04:36(801)]        Message        OnP2PConnectState(userid=-2, state=3)
[2014-05-21 20:04:37(497)]        Invoke        BRAC_SetVideoPos(dwUserId:-1, hWnd:0x70e94, l:186, t:165, r:729, b:552)
[2014-05-21 20:04:37(498)]        Invoke        UserCameraControl(userid=-1,bOpen=1)
[2014-05-21 20:04:37(511)]        Invoke        UserSpeakControl(userid=-1,bOpen=1)
[2014-05-21 20:04:37(608)]        On Remote UserCameraControl(dwUserId:-3, bOpen:1)
[2014-05-21 20:04:37(608)]        On Remote UserSpeakControl(dwUserId:-3, bOpen:1)
[2014-05-21 20:04:37(609)]        On Remote UserCameraControl(dwUserId:-2, bOpen:1)
[2014-05-21 20:04:37(609)]        On Remote UserSpeakControl(dwUserId:-2, bOpen:1)
[2014-05-21 20:04:37(630)]        MinCroppingSize(320, 240)        MaxCroppingSize(320, 240)        Format(RGB24, 0x0)
[2014-05-21 20:04:37(630)]        MinCroppingSize(352, 288)        MaxCroppingSize(352, 288)        Format(RGB24, 0x0)
[2014-05-21 20:04:37(631)]        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(RGB24, 0x0)
[2014-05-21 20:04:37(631)]        MinCroppingSize(800, 600)        MaxCroppingSize(800, 600)        Format(RGB24, 0x0)
[2014-05-21 20:04:37(631)]        MinCroppingSize(1024, 768)        MaxCroppingSize(1024, 768)        Format(RGB24, 0x0)
[2014-05-21 20:04:37(631)]        MinCroppingSize(1280, 720)        MaxCroppingSize(1280, 720)        Format(RGB24, 0x0)
[2014-05-21 20:04:37(632)]        MinCroppingSize(1366, 768)        MaxCroppingSize(1366, 768)        Format(RGB24, 0x0)
[2014-05-21 20:04:37(632)]        Video Config Size(1366, 768)        Format(RGB24, 25fps)
[2014-05-21 20:04:37(634)]        video init finish:1366x768, RGB24, fps:25
[2014-05-21 20:04:37(886)]        Audio FX Status: VAD:1, NS:1, AGC:1, AEC:1
[2014-05-21 20:04:37(910)]        video codec init:codec:1, 25fps, 1366x768, bitrate:0, quality:5, preset:5, gop:25, handle:2
[2014-05-21 20:04:41(844)]        An error occurs, temporarily unable to handle the large video block!(size:341612, max:304800)
[2014-05-21 20:05:23(852)]        Invoke        LeaveRoom(roomid=-1)        Elapse:109 ms
[2014-05-21 20:05:23(958)]        Invoke        LogoutServer(userid=-4)        Elapse:93 ms
[2014-05-21 20:05:23(985)]        Invoke        BRAC_Release        Elapse:265 ms

[2014-05-21 20:04:41(844)]        An error occurs, temporarily unable to handle the large video block!(size:341612, max:304800)  这个意思是,不能处理那么大吗?
作者: bok002121    时间: 2014-5-21 20:08
admin 发表于 2014-5-21 09:39
您好!bitrate:0,表示采用了质量因子模式,画质应该不会太差,您所说的画质太差是不清晰,还是?可否截一 ...

你好,显示成这样了

test.jpg (173.59 KB, 下载次数: 8225)

test.jpg

作者: 廖斌    时间: 2014-5-21 20:27
本帖最后由 廖斌 于 2014-5-21 20:29 编辑
bok002121 发表于 2014-5-21 20:07
[2014-05-21 20:04:35(652)]        ---------------------------AnyChat Platform Core SDK Client Log-------- ...

是的,把分辨率降低一点再试下
作者: admin    时间: 2014-5-21 20:47
您好,您可以尝试设置一个码率,如:bitrate = 1000*1000(1Mbps),不采用质量因子模式试试。
作者: bok002121    时间: 2014-5-22 09:09
廖斌 发表于 2014-5-21 20:27
是的,把分辨率降低一点再试下

请问有能不减小分辨率的方法吗
作者: 廖斌    时间: 2014-5-22 09:10
bok002121 发表于 2014-5-22 09:09
请问有能不减小分辨率的方法吗

也可以尝试设置另外一个码率,如:bitrate = 1000*1000(1Mbps),不采用质量因子模式试试
作者: bok002121    时间: 2014-5-22 09:11
admin 发表于 2014-5-21 20:47
您好,您可以尝试设置一个码率,如:bitrate = 1000*1000(1Mbps),不采用质量因子模式试试。

还是不行额,效果还没质量因子的好。把分辨率调低到一定程度就可以,但是还有其他方法吗?
作者: 廖斌    时间: 2014-5-22 09:31
bok002121 发表于 2014-5-22 09:11
还是不行额,效果还没质量因子的好。把分辨率调低到一定程度就可以,但是还有其他方法吗?

你分辨率用那个的时候,效果可以?
作者: bok002121    时间: 2014-5-22 09:31
廖斌 发表于 2014-5-22 09:10
也可以尝试设置另外一个码率,如:bitrate = 1000*1000(1Mbps),不采用质量因子模式试试

这个也不行呢
作者: bok002121    时间: 2014-5-22 09:32
廖斌 发表于 2014-5-22 09:10
也可以尝试设置另外一个码率,如:bitrate = 1000*1000(1Mbps),不采用质量因子模式试试

对了,是不是,只要进行了拉伸显示,图片就会模糊的
作者: bok002121    时间: 2014-5-22 09:33
廖斌 发表于 2014-5-22 09:31
你分辨率用那个的时候,效果可以?

降低到 max一下,就不会出现图片严重失真的情况。只是略模糊
作者: 廖斌    时间: 2014-5-22 09:35
bok002121 发表于 2014-5-22 09:32
对了,是不是,只要进行了拉伸显示,图片就会模糊的

分辨率越大,需要配合设置码率,才能达到好的效果
作者: bok002121    时间: 2014-5-22 09:37
廖斌 发表于 2014-5-22 09:35
分辨率越大,需要配合设置码率,才能达到好的效果

但是,内网的话,直接选择用质量因子,效果就很好了吧
作者: 廖斌    时间: 2014-5-22 09:37
bok002121 发表于 2014-5-22 09:33
降低到 max一下,就不会出现图片严重失真的情况。只是略模糊

那可能是你分辨率用最高的时候,配合质量模式,需要处理的数据已经超过了我们的上限值




欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3