国美金融贷款web端是无法直接播放rtsp流的,目前常用的解决方案是如jsmpeg、flv.js等。这些方案都是要推送流到服务端,之后才能在国美金融贷款web上播放视频,相对比较麻烦。国美金融贷款采用websocket结合mse的方式,实现了一个websocket网关,及其对应的js播放器。
国美金融贷款这套方案的原理是,ws网关在拉到rtsp流后,取得mime,将其发送给web端,然后国美金融贷款将rtsp流转为fmp4格式,以二进制数据格式发给web端;web端用其初始化mse,然后将websocket收到的二进制数据扔给mse,实现视频的播放。
国美金融贷款ws网关有两个关键的问题需要解决,一是封装成fmp4后,输出要到内存而不是文件,二是要能取得mime。如果以网上以回调函数作为ffmpeg输出的例子来写,会发现创建失败。mime对应的是编码类型,需要解析流才能得到