cherishman2005 / rtc

webrtc websocket GCC NACK FEC
MIT License
17 stars 2 forks source link

RTC

拒绝内卷,创造神话

  1. 目标: 一站式webrtc直播解决方案(sfu+mcu),包括娱乐直播和实时互动。

    • 打造出流更快,更流畅的直播体验!
    • 做到成本最低,性能优化到极致!
    • 极致的用户体验!
    • 0.5~1天搭建一整套webrtc互动直播解决方案。
  2. 安全: 代码部署安全、核心功能安全;

    • 后端采用golang/c++开发;防止部署在云服务器上的代码被泄露。
    • 前后端分离,方便维护;

image

rtc技术介绍

image

webrtc

webrtc

webrtc-protocol

ffmpeg

基于ffmepg-sdk开发音视频编码/解码相关后端程序,重点就是要多读ffmpeg源码(前提是C/C++编程基础)。

mixer2 architecture

mixer architecture

I/P/B视频帧

在实时互动直播系统中,很少使用B帧。主要的原因是压缩和解码B帧时,由于要双向参考,所以它需要缓冲更多的数据,且使用的CPU也会更高。由于实时性的要求,所以一般不使用它。不过对于播放器来说,遇到带有B帧的H264数据是常有的事儿。在没有B帧的情况下,存放帧的顺序和显示帧的顺序就是一样的,PTS和DTS的值也是一样的。

gpu硬件解码

显卡解码

对于解码来讲相对简单一些,解码性能最主要看两个指标就可以了,一个是单解码器解码的帧数,一个是解码芯片数。

YUV

YUV各种格式转换

RTMP

webrtc

opencv

image

obs推流

小结

对于中小型公司,做音视频直播,视频会议相关的产品,自研 UDP,P2P 是不太可能的,运营这样一个研发团队,一年的开销是千万级别的投入。所以 webrtc,甚至第三方基于 webrtc开发的sdk,成了中小公司进入音视频领域的最快做产品的方案。未来 WebRTC 在国内的应用,也会越来越流行,需要大量的开发者。

音视频技术指标

作为音视频技术公司,很多基础指标必须重点研究:(包括开发、测试等环节;测试环境和正式环境)

要尝试各种手段测试,开发各种测试工具。

技术要落地

技术挖掘

FAQ

直播出现花屏,蓝屏的问题处理

(1)在音视频后端处理(混画、转码)时,对一个GOP有丢帧的后,就丢掉剩余的帧;从下一个GOP开始做解码、编码操作; -- 解决方案

(2)直播录制的视频花屏/绿屏,使用ffmpeg转码。ffmpeg解码、编码会丢掉一个GOP内剩余的异常帧。

video player跨平台播放器

https://jishuin.proginn.com/p/763bfbd75e45

ffplay 是 ffmpeg 自带的跨平台播放器,使用 C 语言编写。当你在编译 ffmpeg 添加如下参数 「--enable-ffplay」 的时候 ,编译完成会在 「output/bin/」  下产生一个 ffplay  可执行文件,使用 「ffplay xxx.mp4」 就可以播放一个媒体文件,它主要是以 ffmpeg + sdl 实现的一个播放器。其实大名鼎鼎的 ijkplayer 就是基于 ffplay.c 进行的二次开发,所以掌握 ffplay 原理对我们开发播放器有非常大的帮助。

为什么大家偏重做开播工具?

因为开播工具准备好后,传输接入CDN,观众端使用标准的播放器播放;-- 就可以快速搭建娱乐直播、在线教育、电商直播系统。

个人感悟

必须要有信念感

参考链接