janus有个streaming模块,可以做两个事情:
1.读取本地音频文件,封装成rtp包传递给web页面
2.接收其他地方的rtp包,转发给web页面
janus里面没有提供读取本地视频文件,封装成rtp包传递给web页面的例子,主要原因是视频的读取比较复杂,janus本身没将ffmpeg这种视频利器放置进去。
界面如下所示:
可以看到一共有三个选项,默认只有前两项,第三项是自己注释掉配置文件后才会显示,相应的配置如下,注意,videortpmap这项本身没有,我从janus代码中发现需要添加。
此时,我们在janus所在服务器上可以看出8004端口已经启动。
此8004端口可以接收外部的rtp流,然后当web页面点击watch or listen时,页面就能收到相应的rtp流。
此处,我们用ffmpeg推视频流到8004端口,命令如下:
ffmpeg -stream_loop -1 -i out_computer_640_480.mp4 -vcodec libx264 -payload_type 126 -f rtp rtp://10.0.0.109:8004?pkt_size=1200
可以看出,本人视频编码格式是h264。
效果如下:右边是本人事先录制的桌面视频,然后推流到janus的8004端口。
音频方面的文件位于目录/opt/janus/share/janus/streams。