18个实时音视频开发中会用到开源项目_直播&互动直播

音视频编解码类开源项目

 

WebRTC

官网地址:https://webrtc.org/

H.264是目前应用最广的码流标准。x264则是能够产生符合H.264标准的码流的编码器,它可以将视频流编码为H.264、MPEG-4 AVC格式。它提供了命令行接口与API,前者被用于一些图形用户接口例如Straxrip、MeGUI,后者则被FFmpeg、Handbrake等调用。当然,既然有x264,就有对应HEVC/H.265的x265。

 

官网地址:http://ffmpeg.org/

在介绍ijkplayer之前,要先提到ffplay。ffplay是一个使用了FFmpeg和sdl库的可移植的媒体播放器。ijkplay是Bilibili开源的基于ffplay.c实现的轻量级iOS/Android视频播放器,API易于集成,且编译配置可裁剪,利于控制安装包大小。

JSMpeg

Github地址:https://github.com/phoboslab/jsmpeg

Opus是用C语言开发的一个高灵活度的音频编码器,针对ARM、x86有特殊优化,fix-point实现。Opus在各方面都有着明显优势。它同时支持语音与音乐的编码,比特率为6k-510k。它融合了SILK编码方法和CELT编码方法。SILK原本被用于Skype中,基于语音信号的线性预测分析(LPC),对音乐支持并不好。而CELT尽管适用于全带宽音频,但对低比特率语音的编码效率不高,所以两者在Opus中形成了互补。

 

官网地址:https://opus-codec.org/

live555是一个C++流媒体开源项目,其中不仅包括了传输协议(SIP、RTP)、音视频编码器(H.264、MPEG4)等,还包括流媒体服务器的例子,是流媒体项目的首选,里面的传输模块是非常值得视频会议开发作为参考的。

音视频前后处理开源项目

 

Seetaface是由中科院山世光老师开源的一套完整的人脸检测,人脸对齐和人脸验证方案。代码基于C++实现,开源协议为BSD-2,可供学术界和工业界免费使用。且不依赖于任何第三方的库函数,在使用对齐好的LFW图片上,检测对齐全部使用该开源软件的情况下可达到97.1%。

 

Open nsfw model

Github地址:https://github.com/yahoo/open_nsfw

Soundtouch是一个开源的音频处理框架,主要功能对音频变速、变调,实现变声的效果。同时,它也能对媒体流实时处理。采用32位浮点或者16位定点,支持单声道或者双声道,采样率范围为8k - 48k。

服务端类开源项目

JsSIP

Github地址:https://github.com/versatica/JsSIP

SRS是一个采用MIT协议授权的国产的简单的RTMP/HLS 直播服务器。最新版还支持FLV模式,同时具备了RTMP的实时性,以及HLS中属于HTTP协议对各种网络环境高度适应性,并且支持更多播放器。它的功能与nginx-rtmp-module类似, 可以实现RTMP/HLS的分发。

 

OPAL

代码地址:http://sourceforge.net/projects/opalvoip/files/

 

 

Janus是一个WebRTC媒体网关。不论是做流媒体、视频会议、录制、网关,都可以基于Janus来实现。

 

 

Callstats也通过Github开放很多案例,可供使用Jitsi-videobridge,、turn-server、JsSIP的开发者参考。

 

 

声网提供了从编解码到端到端传输的全套服务,开发者可以接入上文所述的音视频前后处理的开源项目,配合使用声网SDK可以建立高质量的实时音视频应用。四行代码,30分钟即可让完成集成。在Web端,Agora Web SDK可以帮助WebRTC开发者解决服务端传输中会遇到的卡顿、延时、回声、多人视频不稳定等问题。

Github地址:https://github.com/AgoraIO