播放问题
播放地址
- m7s中的流都有一个唯一标识就是StreamPath,StreamPath的规则是
[AppName]/[StreamName]
,其中AppName是应用名,StreamName是流名。例如live/test
,其中live
是AppName,test
是StreamName。 - 只有知道了streamPath就可以以任意一种协议来拉流播放。
地址拼接规则
在官网首页最下方有地址拼接的交互UI,可以选择具体的协议生成对应的播放地址
通常,播放地址的规则是 [协议]://[Host][:Port]/[插件名]/[StreamPath]
[插件名]
其中插件名仅仅针对公用http端口的情况下需要拼接。包括websocket协议即ws-flv和ws-raw
假如host是localhost,streamPath为live/test
则HTTP-FLV协议的地址为 http://localhost:8080/hdl/live/test.flv
fmp4协议的地址为 http://localhost:8080/fmp4/live/test.mp4
hls协议的地址为 http://localhost:8080/hls/live/test.m3u8
ws-flv协议的地址为 ws://localhost:8080/jessica/live/test.flv
ws-raw协议的地址为 ws://localhost:8080/jessica/live/test
ws-raw协议
ws-raw协议 为私有协议,只能通过jessibuca播放器播放。
http端口号
http协议的默认端口号是8080,可以通过全局配置修改,对于包含http配置的插件,可以单独配置端口号。使用单独的端口号则地址中不再需要拼接插件名。例如上面的例子,如果hdl插件单独配置http端口号是8081,则地址为:http://localhost:8081/live/test.flv
rtmp播放地址则为 rtmp://localhost/live/test
rtsp播放地址则为 rtsp://localhost/live/test
默认端口号
rtmp的默认端口号是1935,rtsp的默认端口号是554,不配置的情况下就是采用了默认端口号,所以地址可以省略端口号
webrtc播放地址
webrtc播放地址
webrtc其实没有所谓的播放地址,而是通过js api来播放的。具体的api可以参考webrtc播放 如果自己播放webrtc可以参考MDN:https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API
首先需要完成sdp交换,然后通过建立的webrtc连接来播放。 jessibuca把上述过程简化成一个地址:webrtc://localhost/live/test
. 实际上是先和服务器建立sdp交换的连接,然后通过这个连接来建立webrtc连接。
注意事项
- h265如果通过flv、rtmp格式来播放,则必须使用定制的播放器(如jessibuca)来播放。因为flv和rtmp本身没有定义h265的格式,所以是通过扩展的方式实现的。