linux视频应用程序开发,Linux平台音视频开发和音视频SDK应用

Linux平台音视频开发和音视频SDK应用

下面介绍一款强大的音视频即时通讯平台给大家,它就是——云智真音视频SDK。

云智真提供一套跨平台的音、视频即时通讯解决方案,基于先进的H.264视频编码标准、AAC音频编码标准与P2P技术,支持Windows、Linux、web、Android、iOS、等操作系统平台,提供客户端SDK、服务器端SDK,可与第三方平台紧密集成。

云智真的音视频SDK基于LinuxKernel 2.6.x研发,提供标准C、C++语言开发接口。

云智真音视频SDK可与其它平台如windows、android、ios、web等互联互通,连接同一个服务器程序,有关服务器的音视频SDK可向云智真官网索取音视频SDK开发包

a4c26d1e5885305701be709a3d33442f.png

下面是部分云智真在Linux即时通讯软件中部署的

#include "ucvive.h"

#include

#include

CUcvive::CUcvive()

{

m_dwRemoteUserId = -1;

}

CUcvive::~CUcvive()

{

}

//

void

CUcvive::OpenRemoteUserStream(void)

{

if(m_dwRemoteUserId !=(DWORD)-1) // already

opned remoteuser stream

return;

DWORD dwUserNum = 0;

BRAC_GetOnlineUser(NULL,dwUserNum);

if(dwUserNum == 0)

return;

LPDWORD lpUserList =

(LPDWORD)malloc(sizeof(DWORD)* dwUserNum);

if(!lpUserList)

return;

BRAC_GetOnlineUser(lpUserList,dwUserNum);

for(int i=0;i

i++)

{

m_dwRemoteUserId =lpUserList[i];

BRAC_UserCameraControl(m_dwRemoteUserId,

TRUE);

BRAC_UserSpeakControl(m_dwRemoteUserId,

TRUE);

break;

}

}

// 连接服务器消息

void CUcvive::OnUcviveConnectMessage(BOOL

bSuccess)

{

fprintf(stdout,"On

Connect:bSuccess(%d)\r\n",(int)bSuccess);

}

// 用户登陆消息

void CUcvive::OnUcviveLoginMessage(DWORD

dwUserId, DWORD dwErrorCode)

{

fprintf(stdout,"On Login:dwUserId(%d),

ErrorCode:%d\r\n",(int)dwUserId,dwErrorCode);

}

// 用户进入房间消息

void

CUcvive::OnUcviveEnterRoomMessage(DWORD dwRoomId,

DWORDdwErrorCode)

{

fprintf(stdout,"On

EnterRoom(dwRoomId=%d,dwErrorCode=%d)\r\n",dwRoomId,dwErrorCode);

if(dwErrorCode == 0)

{

BRAC_UserCameraControl(-1,TRUE);

BRAC_UserSpeakControl(-1,TRUE);

}

}

// 房间在线用户消息

void

CUcvive::OnUcviveOnlineUserMessage(DWORD dwUserNum, DWORD

dwRoomId)

{

fprintf(stdout,"Onlineuser(dwUserNum=%d,dwRoomId=%d)\r\n",dwUserNum,dwRoomId);

OpenRemoteUserStream();

}

// 用户打开/关闭音频设备设备消息

void

CUcvive::OnUcviveMicStateChgMessage(DWORD dwUserId, BOOL

bOpenMic)

{

}

// 用户进入/退出房间消息

void

CUcvive::OnUcviveUserAtRoomMessage(DWORD dwUserId, BOOL

bEnter)

{

fprintf(stdout,"OnUserAtRoom(dwUserId=%d,

bEnter=%d)\r\n",(int)dwUserId,(int)bEnter);

if(dwUserId == m_dwRemoteUserId&&

!bEnter)

m_dwRemoteUserId = -1;

OpenRemoteUserStream();

}

//网络断开消息

void

CUcvive::OnUcviveLinkCloseMessage(DWORD dwErrorCode)

{

fprintf(stdout,"On

LinkClose(reason=%d)\r\n",dwErrorCode);

m_dwRemoteUserId = -1;

}

// 用户摄像头状态改变消息

void

CUcvive::OnUcviveCameraStateChgMessage(DWORD dwUserId,

DWORDdwState)

{

}

// 用户聊天模式改变消息

void

CUcvive::OnUcviveChatModeChgMessage(DWORD dwUserId,

BOOLbPublicChat)

{

}

// 用户活动状态发生变化消息

void

CUcvive::OnUcviveActiveStateChgMessage(DWORD dwUserId,

DWORDdwState)

{

}

// P2P连接状态变化消息

void

CUcvive::OnUcviveP2PConnectStateMessage(DWORD dwUserId,

DWORDdwState)

{

fprintf(stdout,"On P2PConnect State

Change(dwUserId=%d,

dwState=%d)\r\n",(int)dwUserId,dwState);

}

// 用户私聊请求消息

void

CUcvive::OnUcvivePrivateRequestMessage(DWORD dwUserId,

DWORDdwRequestId)

{

}

// 用户私聊请求回复消息

void

CUcvive::OnUcvivePrivateEchoMessage(DWORD dwUserId,

DWORDdwErrorCode)

{

}

// 用户退出私聊消息

void

CUcvive::OnUcvivePrivateExitMessage(DWORD dwUserId,

DWORDdwErrorCode)

{

}

// SDK警告消息

void

CUcvive::OnUcviveSDKWarningMessage(DWORD dwErrorCode,

DWORDdwReserved)

{

}

// 视频数据回调

void

CUcvive::OnUcviveVideoDataCallBack(DWORD dwUserid, LPVOID

lpBuf,DWORD dwLen, LPBITMAPINFOHEADER lpbmiHeader)

{

}

// 音频数据回调

void

CUcvive::OnUcviveAudioDataCallBack(DWORD dwUserid, LPVOID

lpBuf,DWORD dwLen, LPWAVEFORMATEX lpWaveFormatEx)

{

}

// 发送文字的回调函数

void CUcvive::OnUcviveTextMsgCallBack(DWORD

dwFromUserid, DWORDdwToUserid, BOOL bSecret, LPCTSTR lpMsgBuf,

DWORD dwLen)

{

}

// 透明通道回调函数

void

CUcvive::OnUcviveTransBufferCallBack(DWORD dwUserid, LPBYTE

lpBuf,DWORD dwLen)

{

}

// 透明通道数据扩展回调函数

void

CUcvive::OnUcviveTransBufferExCallBack(DWORD dwUserid, LPBYTElpBuf,

DWORD dwLen, DWORD wParam, DWORD lParam, DWORD dwTaskId)

{

}

// 文件传输回调函数

void

CUcvive::OnUcviveTransFileCallBack(DWORD dwUserid,

LPCTSTRlpFileName, LPCTSTR lpTempFilePath, DWORD dwFileLength,

DWORD wParam, DWORDlParam, DWORD dwTaskId)

{

}

// 音量变化回调函数

void

CUcvive::OnUcviveVolumeChangeCallBack(BRAC_AudioDevice device,DWORD

dwCurrentVolume)

{

}

// SDK Filter 通信数据回调函数

void

CUcvive::OnUcviveSDKFilterDataCallBack(LPBYTE lpBuf, DWORD

dwLen)

{

}

// 录像、快照任务完成回调函数

void

CUcvive::OnUcviveRecordSnapShotCallBack(DWORD dwUserid,

LPCTSTRlpFileName, DWORD dwParam, BOOL bRecordType)

{

}

// 异步消息通知回调函数

void

CUcvive::OnUcviveNotifyMessageCallBack(DWORD dwNotifyMsg,

DWORDwParam, DWORD lParam)

{

}

云智真音视频SDK功能特点:

让开发者一次实现所有实时功能,一个极简 SDK

全平台支持和互通,API 接口丰富,灵活调用,最快 30 分钟可完成接入,云智真提供一个极简SDK让开发者接实时虚拟通信网,在任何App和网站实现高质量的音频通话、视频通话、全互动直播。

1、跨平台支持

2、Web

与Native 互通,手机端和 Web 可以互通,极大方便开发者的全平台业务

3、5000+

设备支持,适配全部 iOS 设备和 5000+ Android 终端设备,保证用户体验一致,为开发者节省大量时间

4、API

接口灵活调用,小接口也能办大事,1)选择模式,通信或直播,2)开启视频,3)设置视频显示模式,本地/远端,4)设置视频分辨率,更改视窗布局,5)开始通话,加入频道,6)结束通话,离开频道

5、开放第三方接入,支持第三方的功能 API

接入和自定义滤镜、美颜、加密、人脸识别、鉴黄、卡通换脸等均支持第三方接入,滤镜、美颜、加密、人脸识别、鉴黄、卡通换脸

6、通话质量数据实时监控,通话质量数据,终端用户分布地区,通话设备平台分布,网络状况分布

7、独家专利编解码,适应公共互联网专利编码,对抗传输信道不稳定,码率根据带宽自适应调整,

1)全频带音质,44.1kHz 超宽频音质,将普通电话音质提高6倍

2)超高清画质,最高支持 720P 超清画质,高清晰度低码率,与网络深度结合,基于人眼视觉体验质量优化

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值