Pion WebRTC是纯Go语言实现的WebRTC框架库。可以用于开发WebRTC服务器和WebRTC客户端。API接口与JavaScript类似,减少学习成本。在TSINGSEE青犀视频研究pion的示例中,只有视频流,因此拉流肯定也会只拉到视频流,而不会有音频流。那如何添加音频流,并在浏览器播放出来?本文研究一下实现方法。
由于pion示例没有音频流,因此要使用webrtc pion将音频流添加进去,需要修改的地方是webrtc pion的go服务,将音频流添加进去。我们先从Go服务端到浏览器端进行一次逻辑流程的分析。
一、Go服务的修改
1、pion添加的视频流如下:
所以需要在此处在添加个音频流。
2、pion接收的视频流,并添加个变量保存:
此处需再添加个变量把音频轨道保存。
3、拉流添加轨道:
以上go端的修改就完成了,下面进行浏览器端的修改。浏览器虽然比较简单,但是也需要进行修改。
二、浏览器端的修改
1、向WebRTC Go服务推流,需要修改参数:
2、拉取WebRTC的流,需要添加音频:
至此两个端的分析就已完毕,目前就可以大致知道对两个端如何修改了,具体修改内容则如下:
1、修改Go服务端
1)添加音频
2)保存音频的流
3)拉流的时候,需要额外添加音频轨道
2、浏览器修改或添加
1)向WebRTC推流
2)拉取WebRTC流