实时音视频之toy_rtc(1)——介绍

项目地址: https://github.com/mobinsheng/toy_rtc

介绍

 toy_rtc是一个玩具型的实时音视频通信demo,它实现了实时音视频基本的一些功能,包括:

  • 协议
  • 视频采集
  • 音频采集(windows平台下)
  • 视频编码
  • 视频解码
  • 音频编码
  • 音频解码
  • 视频播放
  • 音频播放
  • 音视频分包、组帧
  • FEC
  • NACK
  • 视频jitterbuffer
  • feedback
  • 丢包率估算
  • rtt估算
  • 基于GCC的拥塞控制(还有缺陷)
  • 码率分配(还有缺陷)
  • pacer(还有缺陷)
  • 各种码率信息的统计
  • 基本的登录、退出
  • 一个简单的中转服务器
  • loopback功能(主要用来本地调试)
  • 弱网模拟器(主要用来模拟弱网环境)

 toy_rtc的缺陷和缺少的功能:

  • 音频除了采集编解码之外的其他功能模块基本缺失,包括:3A算法、重采样、混音、音频jitterbuffer等(因为我对音频处理这方面还不够了解,无法下手)。
  • 拥塞控制这块基本上还不能很好的运行,目前存在的最大问题是估算出来的带宽会在实际带宽的上下波动,而且波动比较厉害,常常出现拥塞的情况,后面可能需要对这一块最一些研究。
  • 还有其他很多的功能。。。

 toy_rtc还需要实现的功能:很多很多…,我的思路是学到什么就做什么。


做toy_rtc的原因

 在这实时音视频这方面做了两年多,在这两年多的时间里,发现实时音视频通信确实博大精深,在这些技术的面前,我就像一只蝼蚁,为了让自己有更大的提升,我决定把我了解的一些知识做成一个demo,让自己了解自己的技术处于一个什么样的阶段,下一步该干什么。本系列文章不是为了炫耀技术,仅仅忠诚的记录自己的学习过程,因此文章可能会有很多错误或者不足,请大家批评指正。


用到的第三方框架

  • FFmpeg
  • SDL
  • RtcBase(webrtc的底层库)
  • OpenH264
  • X264
  • Opus
  • 其他

开发环境

 Windows+VS2017.其他根据需要自行配置。


toy_rtc的构成

  • 一个客户端。这个客户端可以不用服务器直接跑起来(loopback模式),里面内置了一个udp server和一个网络模拟器,简单的模拟了媒体数据的收发和常见的弱网。
  • 一个简单的中转服务器,功能很简单,对于媒体数据做转发。

温馨提示

 本人很乐意大家使用toy_rtc的代码,但是由于里面bug很多,使用的可能会出现很多问题甚至crash,所以谨慎使用~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值