go视频服务是基于开源项目livego
创建直播房间( 串流秘钥)
请求:http://你的服务器地址:8090/control/get?room=房间名字(即串流秘钥)
成功响应:{“status”:200,“data”:一段与房间名对应的MD5密文}
根据官网的例子,用curl命令:
curl http://127.0.0.1:8090/control/get?room=movie
返回结果:
{"status":200,"data":"L17LTlsVqMNTZyLKMIFSD2x28MlgPJ0SDZVHnHJPxMKi0tWx"}
实际应用中需要增加一个获取串流秘钥接口,可以保证每次秘钥的唯一性。
livego还提供了其他推拉流管理的接口和统计信息相关的接口(live对应livego.yaml里可以看到默认的app名字)
拉流开始查询接口
http://127.0.0.1:8090/control/pull?&oper=start&app=live&name= movie&url=rtmp://127.0.0.1:1935/live/movie
结果样例:
{ status: 400, data: "<h1>push url start rtmp://127.0.0.1:1935/live/movie ok</h1></br>" }
查询播放状态
http://127.0.0.1:8090/stat/livestat
结果样例
{ status: 200, data: { publishers: [ { key: "live/mPjVIUp97tQjNHJcaOAGeDZRvcMdGIASmHsVKxASAgqjn9FS", url: "rtmp://localhost:1935/live/mPjVIUp97tQjNHJcaOAGeDZRvcMdGIASmHsVKxASAgqjn9FS", stream_id: 1, video_total_bytes: 1940374, video_speed: 1465, audio_total_bytes: 206931, audio_speed: 161 } ], players: null } }
推流开始状态(这个接口返回数据还不太明白什么意思)
http://127.0.0.1:8090/control/push?&oper=start&app=live&name=movie&url=rtmp://127.0.0.1:1935/live/movie
拉流结束状态
http://127.0.0.1:8090/control/pull?&oper=stop&app=live&name=movie&url=rtmp://127.0.0.1:1935/live/movie
可以理由GitHub项目中介绍文档的ffmpeg和ffplay配合测试