Tucodec 详细介绍
tucodec 是图鸭科技基于网络通信协议所集成的VoIP技术, 由C/C++语言实现.
具有以下特点:
智能化调整码率.
端对端延时50~100ms.
P2P穿透70%, 节约服务器带宽.
兼容MAC OS, iOS, Android, Windows, Linux等平台.
可应用于多人视频会议, 端到端视频通话, 连麦直播等场景.
单台服务器并发超过nginx_rtmp, 支持集群.
Android启动代码示例
``` java private VoipAndroid mVoIPClient; private VoipVideoRender mMainRender, render1, render2, render3; private int mUserId, render1_id, render2_id, render3_id; /* 省略以上变量初始化代码*/ private VoipAndroid.VideoCallback mVideoCallback = new VoipAndroid.VideoCallback() { @override public void priviewImage(VoipImage voipImage) { mMainRender.setMirror(false); mMainRender.pushVideoFrame(voipImage); } @override public void decodedImage(VoipImage voipImage) { if (voipImage.userId != mUserId) { mVoIPeers.get(voipImage.userId).setMirror(false); mVoIPeers.get(voipImage.userId).pushVideoFrame(voipImage); } } } private void initGroupChat() { mVoIPClient = new VoipAndroid(new Handler(),getApplication(),null); mVoIPClient.loginRelayServer(ip, (short)port, mUserId, 0); mVideoCapture = new VoipVideoCapture(mVoIPClient, new VoipVideoCapture.CaptureParam(mVoIPClient.getConfig().videoWith, mVoIPClient.getConfig().videoHeight)); mVideoCapture.start(true, mVoIPClient.getConfig(), (ViewGroup)mMainRender.getParent()); mVoIPClient.registerVideoCallback(mVideoCallback); mVoIPClient.registerAudioCallback(mAudioCallback); mVoIPClient.init((mVoIPClient.benchmark() + mVoIPClient.benchmark() + mVoIPClient.benchmark()) / 3, mVideoCapture); mVoIPClient.startCallWithUserName("android_client", mUserId); mVoIPClient.startVideoPipeline(new VoipAndroid.VideoParameter(512, false)); mVoIPClient.startAudioPipeline(new VoipAndroid.AudioParameter(1600, false)); } ```
Tucodec 是图鸭科技基于网络通信协议所集成的VoIP技术, 由C/C++语言实现. 授权协议:Apache 开发语言:C/C++ 操作系统:跨平台 软件作者:图鸭科技 12月23日,图鸭在开源中国年终盛典现场宣布开源 VoIP 技术的服务器源代码及客户端网络模块代码 Tucodec,并免费让用户使用其 VoIP 库,开发者可以进行二次开发,合成属于自己的视频通信系统。 这是国内第一家使用私有
3. 基于UDP协议的网络程序 下图是典型的UDP客户端/服务器通讯过程(该图出自[UNPv13e])。 图 37.3. UDP通讯流程 以下是简单的UDP服务器和客户端程序。 /* server.c */ #include <stdio.h> #include <string.h> #include <netinet/in.h> #include "wrap.h" #define MAXLIN
2. 基于TCP协议的网络程序 下图是基于TCP协议的客户端/服务器程序的一般流程: 图 37.2. TCP协议通讯流程 服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收到后从connect()
主要内容:本节引言:,1.服务端实现步骤:,2.客户端实现步骤:,本节小结:本节引言: 本节给大家带来Socket的最后一节:基于UDP协议的Socket通信,在第一节中我们已经详细地 比较了两者的区别,TCP和UDP最大的区别在于是否需要客户端与服务端建立连接后才能进行 数据传输,如果你学了前两节TCP的,传输前先开服务端,accept,等客户端接入,然后获得 客户端socket然后进行IO操作,而UDP则不用,UDP以数据报作为数据的传输载体,在进行传输时 首先要把传
主要内容:本节引言:,1.运行效果图:,2.实现流程图:,3.代码示例:,4.代码下载:,5.本节小结:本节引言: 上节中我们给大家接触了Socket的一些基本概念以及使用方法,然后写了一个小猪简易聊天室的 Demo,相信大家对Socket有了初步的掌握,本节我们来学习下使用Socket来实现大文件的断点续传! 这里讲解的是别人写好的一个Socket上传大文件的例子,不要求我们自己可以写出来,需要的时候会用 就好! 1.运行效果图: 1.先把我们编写好的Socket服务端运行起来: 2.将一个音
主要内容:本节引言:,1.什么是Socket?,2.Socket通信模型:,3.Socket服务端的编写:,4.Socket客户端的编写:,5.增强版案例:小猪简易聊天室,本节小结:本节引言: 上一节的概念课枯燥无味是吧,不过总有点收获是吧,本节开始我们来研究基于TCP协议的Socket 通信,先来了解下Socket的概念,以及Socket通信的模型,实现Socket的步骤,以及作为Socket服务 端与客户端的两位各做要做什么事情!好的,我们由浅入深来扣这个Socket吧! 1.什么是Sock
This file describes the network protocol used by Ceph. In order to understand the way the structures are defined it is recommended to read the introduction of Network Encoding first. Hello The protoco
两台计算机是怎样进行数据传递的
随着近些年网络安全事情的频繁发生,使得用户对网络通信安全的意识越来越强。国内外的网络服务提供商都逐渐提供全站的安全通信服务,如国内的淘宝、百度先后宣布已经完成了全站部署https。微信现有的安全通信协议是基于用户登录的时候派发的SessionKey对应用数据进行加密的,该协议在工程实现上,已经过多次迭代优化,但是仍然有一些缺点: 原有的加密通信协议是存在于业务层的。加密保护的是请求包包体部分,