648540858 / wvp-GB28181-pro

WEB VIDEO PLATFORM是一个基于GB28181-2016标准实现的网络视频平台,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR、DVR接入。支持国标级联,支持rtsp/rtmp等视频流转发到国标平台,支持rtsp/rtmp等推流转发到国标平台。
https://doc.wvp-pro.cn
MIT License
4.82k stars 1.43k forks source link

ws_flv视频流无法播放, 使用的https #92

Closed veryfatfatman closed 2 years ago

veryfatfatman commented 3 years ago
    public StreamInfo getStreamInfoByAppAndStream(String app, String stream, JSONArray tracks) {
        MediaServerConfig mediaInfo = redisCatchStorage.getMediaInfo();
        StreamInfo streamInfoResult = new StreamInfo();
        streamInfoResult.setStreamId(stream);
        streamInfoResult.setApp(app);
        streamInfoResult.setRtmp(String.format("rtmp://%s:%s/%s/%s", mediaInfo.getWanIp(), mediaInfo.getRtmpPort(), app,  stream));
        streamInfoResult.setRtsp(String.format("rtsp://%s:%s/%s/%s", mediaInfo.getWanIp(), mediaInfo.getRtspPort(), app,  stream));
        streamInfoResult.setFlv(String.format("http://%s:%s/%s/%s.flv", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), app,  stream));
        streamInfoResult.setWs_flv(String.format("ws://%s:%s/%s/%s.flv", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), app,  stream));
        streamInfoResult.setHls(String.format("http://%s:%s/%s/%s/hls.m3u8", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), app,  stream));
        streamInfoResult.setWs_hls(String.format("ws://%s:%s/%s/%s/hls.m3u8", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), app,  stream));
        streamInfoResult.setFmp4(String.format("http://%s:%s/%s/%s.live.mp4", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), app,  stream));
        streamInfoResult.setWs_fmp4(String.format("ws://%s:%s/%s/%s.live.mp4", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), app,  stream));
        streamInfoResult.setTs(String.format("http://%s:%s/%s/%s.live.ts", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), app,  stream));
        streamInfoResult.setWs_ts(String.format("ws://%s:%s/%s/%s.live.ts", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), app,  stream));
        streamInfoResult.setRtc(String.format("http://%s:%s/index/api/webrtc?app=%s&stream=%s&type=play", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), app,  stream));
        streamInfoResult.setTracks(tracks);
        return streamInfoResult;
    }

站点服务启用https,播放页面无法播放

对JAVA和JS不通,这两个点应该可以改成根据当前服务为https,提个建议

648540858 commented 3 years ago

ok, 我看看

648540858 commented 3 years ago

你配置media wanIp 使用域名了?

veryfatfatman commented 3 years ago

是的

648540858 commented 3 years ago

不支持配置域名, 必须是ip

veryfatfatman commented 3 years ago

使用ip的话就没办法实现wss,因为服务是https+域名的,会有证书问题 wss://video.xxxx.com:9443/live/android_h265.flv

使用ip这个填充就有问题getWanIp streamInfoResult.setWs_flv(String.format("ws://%s:%s/%s/%s.flv", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), app, stream));

648540858 commented 3 years ago

现在的https只能是在wvp上使用, 后面我支持下zlm配置域名

648540858 commented 3 years ago
使用ip这个填充就有问题getWanIp
streamInfoResult.setWs_flv(String.format("ws://%s:%s/%s/%s.flv", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), app, stream));

什么意思

veryfatfatman commented 3 years ago
使用ip这个填充就有问题getWanIp
streamInfoResult.setWs_flv(String.format("ws://%s:%s/%s/%s.flv", mediaInfo.getWanIp(), mediaInfo.getHttpPort(), app, stream));

什么意思

就是https://video.xxx.com站点访问ws://1.1.1.1这样的服务是不通的, 必须用wss://video.xxx.com才行

648540858 commented 3 years ago

你不要使用域名就行了,如果必须那就等我支持吧

aGVsZWk commented 3 years ago

我做了这个,用nginx代理,配置的https

648540858 commented 2 years ago

修复了 你试试,我先关闭了