ZQKsun 发表于 2017-10-25 17:40:53

视频画面旋转应该怎样调用ANYCHATSDK中的c++代码

我觉得大概应该使用下面这个函数和常量参数
public const int BRAC_SO_LOCALVIDEO_CAMERAROTATION = 101;    // 本地摄像头旋转角度
      public const int BRAC_SO_LOCALVIDEO_ROTATECTRL = 94;    // 本地视频旋转控制(已失效,使用:BRAC_SO_LOCALVIDEO_CAMERAROTATION替代)
      public const int BRAC_SO_LOCALVIDEO_ORIENTATION = 97;    // 本地视频设备方向(参数为:int型,定义为常量:ANYCHAT_DEVICEORIENTATION_XXXX)
      public const int BRAC_SO_LOCALVIDEO_AUTOROTATION = 98;    // 本地视频自动旋转控制(参数为int型, 0表示关闭, 1 开启[默认],视频旋转时需要参考本地视频设备方向参数)
      public const int BRAC_SO_LOCALVIDEO_SURFACEROTATION = 99;    // 设置本地视频预览显示旋转角度(参数为int型,角度)


      public static extern int SetSDKOption(int optName, ref int optval, int optlen);
但是调用使用BRAC_SO_LOCALVIDEO_CAMERAROTATION这个参数没有用,调用的方式为 :
             ANYCHATAPI.AnyChatCoreSDK.SetSDKOption(ANYCHATAPI.AnyChatCoreSDK.BRAC_SO_LOCALVIDEO_CAMERAROTATION, ref bitrate, sizeof(int));
            

佰锐科技-刘冬明 发表于 2017-10-27 15:03:10

您可以参考这个帖子。http://bbs.anychat.cn/forum.php?mod=viewthread&tid=520&extra=page%3D1

ZQKsun 发表于 2017-10-29 16:03:12

佰锐科技-刘冬明 发表于 2017-10-27 15:03
您可以参考这个帖子。http://bbs.anychat.cn/forum.php?mod=viewthread&tid=520&extra=page%3D1

嗯,谢谢您,我还有个问题:设置了视频后的参数后,和我进去同一房间的其他人看到我这边的视频画面不动了,摄像头并没有关,这是没设置什么参数吗

佰锐科技-刘冬明 发表于 2017-10-30 09:28:57

具体还得看相关日志才可以针对分析。:)

ZQKsun 发表于 2017-10-30 09:56:45

佰锐科技-刘冬明 发表于 2017-10-30 09:28
具体还得看相关日志才可以针对分析。

程序运行后的日志:
        ---------------------------AnyChat Platform Core SDK Client Log---------------------------
        Load BRAnyChatCore.dll success!(V6.5 Build Time:Sep 25 2017 09:39:23)
        Load BRMiscUtil.dll success!(V5.2 Build Time:Jan 19 2015 11:32:46)
        Error: BRMiscUtil.dll component version is too low, SDK initialization failed!
        Load BRMediaUtil.dll success!(V5.2 Build Time:Jan 19 2015 11:32:58)
        Error: BRMediaUtil.dll component version is too low, SDK initialization failed!
        Load BRMediaShow.dll success!(V5.2 Build Time:Jan 19 2015 11:32:56)
        Error: BRMediaShow.dll component version is too low, SDK initialization failed!
        Load BRMediaCore.dll success!(V5.2 Build Time:Jan 19 2015 11:33:16)
        Error: BRMediaCore.dll component version is too low, SDK initialization failed!
        Video capture device supported:
                1-Integrated Camera
        Audio capture device supported:
                1-麦克风阵列 (Conexant SmartAudio HD)
        server net link reset...
        Invoke        SetSDKOption(BRAC_SO_CORESDK_USEHWCODEC=1)
        Start network engine(IPv4 mode)...
        Invoke        Connect(121.42.34.117,8906)=0
        Invoke        Login(username:ChinaLonger)=0
        Create anychatdnsserver connect:121.42.34.117(8906)
        On pre-connection result, errorcode:0, anychatcoreserver, 121.42.34.117(8906, tcp:1)
        Start anychat server(121.42.34.117:8906) connect...
        On connect anychat server return, errorcode: 0, appflags:0x460080, svrflags:0x10
        Server version: V6.3(Build Time:2017-01-21 20:58:16, Windows server)
        m_ProtocolPipeLine, userid:0, local session:1833426240, peer session:0
        Send login request...
        Message        OnConnect(errorcode=0), session:778E6035-F49E-467F-AC74-F236582BE4AC
        On tcp connect app reg result, errorcode:0
        Message        OnLoginSystem(userid=-37, errorcode=0, username=ChinaLonger)
        Server running time: 2 days, 19 hours, 4 minutes, license mode:1, cert:(lo:0x803ffff, hi:0x0)
        Invoke        EnterRoom(roomid=1)
        Connection to streaming media server(121.42.34.117:8907) successfully!(udp delay:16ms)
        Success add upnp map(port:65165, tcp)
        Success add upnp map(port:53539, udp)
        Message        OnEnterRoom(roomid=1,errorcode=0,siteindex=0)
        Audio capture parameter modification...
        Message        OnReceiveOnlineUser(count=2,roomid=1)
        Invoke        SetVideoPos(dwUserId:-1, hWnd:0x2078e, l:0, t:0, r:98, b:180, dwStreamIndex:0)
        Invoke        UserCameraControl(userid=-1, bOpen=1) = 0
        WaveIn Audio Capture Driver(内装麦克风 (Conexant SmartAudio)
        Audio Init, error:0, device:0, 2, 48000, 16, capmode:0
        Invoke        UserSpeakControl(userid=-1, bOpen=1) = 0
        Audio capture resample: 1, 16000, 16
        Audio codec init, handle:1, 11, 1, 16000, 16, 15850
        Audio FX Status: VAD:1, NS:1, AGC:1, AEC:1
        Invoke        SetVideoPos(dwUserId:-35, hWnd:0x30854, l:0, t:0, r:514, b:385, dwStreamIndex:0)
        Audio Playback Device Init(0, 1, 16000, 16), WaveOut Playback Driver
        Invoke        UserSpeakControl(userid=-35, bOpen=1) = 0
        Invoke        UserCameraControl(userid=-35, bOpen=1) = 0
        On Remote UserSpeakControl(dwUserId:-35, bOpen:1, streamindex:0)
        On Remote UserCameraControl(dwUserId:-35, bOpen:1, streamindex:0)
        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(YUY2, 0x32595559)
        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(YUY2, 0x8d2681)
        MinCroppingSize(640, 360)        MaxCroppingSize(640, 360)        Format(YUY2, 0x32595559)
        MinCroppingSize(640, 360)        MaxCroppingSize(640, 360)        Format(YUY2, 0x8d2681)
        Message        OnP2PConnectState(userid=-35, state=2)
        MinCroppingSize(160, 120)        MaxCroppingSize(160, 120)        Format(YUY2, 0x32595559)
        MinCroppingSize(160, 120)        MaxCroppingSize(160, 120)        Format(YUY2, 0x8d2681)
        MinCroppingSize(320, 240)        MaxCroppingSize(320, 240)        Format(YUY2, 0x32595559)
        MinCroppingSize(320, 240)        MaxCroppingSize(320, 240)        Format(YUY2, 0x8d2681)
        MinCroppingSize(320, 180)        MaxCroppingSize(320, 180)        Format(YUY2, 0x32595559)
        MinCroppingSize(320, 180)        MaxCroppingSize(320, 180)        Format(YUY2, 0x8d2681)
        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(YUY2, 0x32595559)
        Message        OnP2PConnectState(userid=-35, state=3)
        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(YUY2, 0x8d2681)
        MinCroppingSize(640, 360)        MaxCroppingSize(640, 360)        Format(YUY2, 0x32595559)
        MinCroppingSize(640, 360)        MaxCroppingSize(640, 360)        Format(YUY2, 0x8d2681)
        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(RGB24, 0x0)
        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(RGB24, 0x8d1181)
        MinCroppingSize(640, 360)        MaxCroppingSize(640, 360)        Format(RGB24, 0x0)
        MinCroppingSize(640, 360)        MaxCroppingSize(640, 360)        Format(RGB24, 0x8d1181)
        MinCroppingSize(160, 120)        MaxCroppingSize(160, 120)        Format(RGB24, 0x0)
        MinCroppingSize(160, 120)        MaxCroppingSize(160, 120)        Format(RGB24, 0x8d1181)
        MinCroppingSize(320, 240)        MaxCroppingSize(320, 240)        Format(RGB24, 0x0)
        MinCroppingSize(320, 240)        MaxCroppingSize(320, 240)        Format(RGB24, 0x8d1181)
        userid(-35) video decode, codec:1, 320x240, delay:16ms
        MinCroppingSize(320, 180)        MaxCroppingSize(320, 180)        Format(RGB24, 0x0)
        MinCroppingSize(320, 180)        MaxCroppingSize(320, 180)        Format(RGB24, 0x8d1181)
        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(RGB24, 0x0)
        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(RGB24, 0x8d1181)
        MinCroppingSize(640, 360)        MaxCroppingSize(640, 360)        Format(RGB24, 0x0)
        MinCroppingSize(640, 360)        MaxCroppingSize(640, 360)        Format(RGB24, 0x8d1181)
        Video Config Size(320, 240)        Format(YUY2, 25fps)
        video(stream:0) init finish:320x240, YUY2, fps:30, codecid:1
        video codec init:codec:1, 15fps, 320x240, bitrate:90kbps, quality:3, preset:3, gop:30, handle:5
        Invoke        SelectVideoCapture(1-Integrated Camera)
        Apply video parameter:320x240, bitrate:0kbps, quality:3, gop:32, fps:12, preset:3, codec:1
        Self Sub:-35(V) -35(A)
        Other Sub:-35(V) -35(A)
        Private List:
        NAT List:
        UDP NAT:-35-192.168.200.162(56265, socket:1780)
        SOCKET:1764 TCP-ListenLocalPort:65165 PeerIpAddr:0.0.0.0(0) userid:-1 bConnect:0(WaitTime:924484.09) listsize:0
        SOCKET:1780 UDP-ListenLocalPort:53539 PeerIpAddr:0.0.0.0(0) userid:-1 bConnect:1(WaitTime:0.00) listsize:0
        SOCKET:1848 TCP-LoginServerLocalPort:65167 PeerIpAddr:121.42.34.117(8906) userid:-1 bConnect:1(WaitTime:3.06) listsize:0
        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(YUY2, 0x32595559)
        SOCKET:2660 TCP-UserNatLocalPort:65176 PeerIpAddr:192.168.200.162(5379) userid:-35 bConnect:1(WaitTime:0.05) listsize:0
        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(YUY2, 0x8d2681)
        Local Status: connect:1, login:1, logout:0, release:0, linkclose:0(reason:0)
        MinCroppingSize(640, 360)        MaxCroppingSize(640, 360)        Format(YUY2, 0x32595559)
        Local Status: natreg:1, nattimes:1, inroom:1, tickout:0, curtime:924484218
        MinCroppingSize(640, 360)        MaxCroppingSize(640, 360)        Format(YUY2, 0x8d2681)
        Local Status: checknattime:-1, natkeeptime:924488062
        MinCroppingSize(160, 120)        MaxCroppingSize(160, 120)        Format(YUY2, 0x32595559)
        Self subscipte, userid:-35, interval:46, audio
        MinCroppingSize(160, 120)        MaxCroppingSize(160, 120)        Format(YUY2, 0x8d2681)
        Self subscipte, userid:-35, interval:78, video
        MinCroppingSize(320, 240)        MaxCroppingSize(320, 240)        Format(YUY2, 0x32595559)
        recv stream pack:src(-35),tar(-1),from(-35),flags(132),audio,subv:16,suba:32,private:0,list:0
        P2P Send:userid(-35)-bSuccess(1),IP(192.168.200.162-56265),len(30)
        MinCroppingSize(320, 240)        MaxCroppingSize(320, 240)        Format(YUY2, 0x8d2681)
        recv stream pack:src(-35),tar(-1),from(-35),flags(132),audio,subv:16,suba:32,private:0,list:0
        P2P Send:userid(-35)-bSuccess(1)
        MinCroppingSize(320, 180)        MaxCroppingSize(320, 180)        Format(YUY2, 0x32595559)
        recv stream pack:src(-35),tar(-1),from(-35),flags(132),audio,subv:16,suba:32,private:0,list:0
        P2P Send:userid(-35)-bSuccess(1),IP(192.168.200.162-56265),len(30)
        MinCroppingSize(320, 180)        MaxCroppingSize(320, 180)        Format(YUY2, 0x8d2681)
        recv stream pack:src(-35),tar(-1),from(-35),flags(132),audio,subv:16,suba:32,private:0,list:0
        P2P Send:userid(-35)-bSuccess(1)
        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(YUY2, 0x32595559)
        recv stream pack:src(-35),tar(-1),from(-35),flags(132),audio,subv:16,suba:32,private:0,list:0
        P2P Send:userid(-35)-bSuccess(1),IP(192.168.200.162-56265),len(30)
        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(YUY2, 0x8d2681)
        P2P Send:userid(-35)-bSuccess(1)
        MinCroppingSize(640, 360)        MaxCroppingSize(640, 360)        Format(YUY2, 0x32595559)
        P2P Send:userid(-35)-bSuccess(1),IP(192.168.200.162-56265),len(30)
        MinCroppingSize(640, 360)        MaxCroppingSize(640, 360)        Format(YUY2, 0x8d2681)
        P2P Send:userid(-35)-bSuccess(1)
        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(RGB24, 0x0)
        P2P Send:userid(-35)-bSuccess(1),IP(192.168.200.162-56265),len(30)
        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(RGB24, 0x8d1181)
        P2P Send:userid(-35)-bSuccess(1)
        MinCroppingSize(640, 360)        MaxCroppingSize(640, 360)        Format(RGB24, 0x0)
        MinCroppingSize(640, 360)        MaxCroppingSize(640, 360)        Format(RGB24, 0x8d1181)
        MinCroppingSize(160, 120)        MaxCroppingSize(160, 120)        Format(RGB24, 0x0)
        MinCroppingSize(160, 120)        MaxCroppingSize(160, 120)        Format(RGB24, 0x8d1181)
        MinCroppingSize(320, 240)        MaxCroppingSize(320, 240)        Format(RGB24, 0x0)
        MinCroppingSize(320, 240)        MaxCroppingSize(320, 240)        Format(RGB24, 0x8d1181)
        MinCroppingSize(320, 180)        MaxCroppingSize(320, 180)        Format(RGB24, 0x0)
        MinCroppingSize(320, 180)        MaxCroppingSize(320, 180)        Format(RGB24, 0x8d1181)
        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(RGB24, 0x0)
        MinCroppingSize(640, 480)        MaxCroppingSize(640, 480)        Format(RGB24, 0x8d1181)
        MinCroppingSize(640, 360)        MaxCroppingSize(640, 360)        Format(RGB24, 0x0)
        MinCroppingSize(640, 360)        MaxCroppingSize(640, 360)        Format(RGB24, 0x8d1181)
        Video Config Size(320, 240)        Format(YUY2, 25fps)
        video(stream:0) init finish:320x240, YUY2, fps:30, codecid:1
        Invoke        UserCameraControl(userid=-1, bOpen=1) = 0
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        video codec init:codec:1, 12fps, 320x240, bitrate:0kbps, quality:3, preset:3, gop:32, handle:-1
        Prepare leaveroom......
        userid(-35) statist info, video fps:14, video count:191, audio count:0
        userid(-1) statist info, video fps:9, video count:44, audio count:27
        Invoke        LeaveRoom(roomid=1)=0        Elapse:1109 ms
        Prepare logout......
        Close network engine...
        server net link reset...
        Invoke        Logout()        Elapse:63 ms
        Prepare release......
        server net link reset...
        Invoke        BRAC_Release        Elapse:250 ms

佰锐科技-刘冬明 发表于 2017-10-30 10:16:30

这个您不用回了,后续有问题,在之前那个贴回吧,先升级下您的库文件,版本太低了。
页: [1]
查看完整版本: 视频画面旋转应该怎样调用ANYCHATSDK中的c++代码