![]() | 1 3dwelcome 2022-07-11 15:00:27 +08:00 ![]() 应该不行,浏览器对网络安全要求很严格,只允许访问 ws://或 wss://之类 http 封装过的前缀,不允许直接访问 rstp://加端口的 url 。 流的输入输出到时无所谓,wasm 处理的都是内存二进制数据。 |
![]() | 2 3dwelcome 2022-07-11 15:03:17 +08:00 “输入输出都是以文件的形式放在内存访问” 这是第三方封装过的 indexedDB 额外库,比如 emscripten 自己写的库。 单纯的 wasm 没这些东西。demo 里用文件输入,也就是为了和传统的 C Api 进行对接。 |
![]() | 3 andyskaura OP |
4 thinkershare 2022-07-11 15:10:21 +08:00 ![]() 不明白你究竟想要做什么? 使用 ffmpeg 在客户端直接解码 rtsp 协议的流, 还是准备干嘛? |
![]() | 5 churchill 2022-07-11 15:11:19 +08:00 我想说任何在客户端硬解视频的都是流氓 不是你的第一行不是写着转 webrtc 么,那还需要什么客户端 ffmpeg |
6 thinkershare 2022-07-11 15:11:36 +08:00 ![]() 浏览器是没法解析 rtsp 的, 我目前用的是 hls 的流, 延迟 1-3s, 用的 H265, 在浏览器上使用 ffmpeg 的 wasm 解码 H265, 大部分浏览器都不支持直接播放 H265. |
7 thinkershare 2022-07-11 15:13:28 +08:00 @churchill 你这个说法, 我严重不同意, 针对互联网项目, 这样搞的确不大合适. 但政企很多项目, 在客户端直接好维护的多. 完全不需要搭建一套后端找人长期维护. |
![]() | 8 fgodt 2022-07-11 15:17:23 +08:00 ![]() wasm 是不能使用 tcp 建立 rtsp 连接的,网页上你还是只能 http 和 ws 建立连接 |
![]() | 9 andyskaura OP @thinkershare 之前试过 hls 的 延迟 5s 以上,偶尔 10s ,后来放弃了,改用视频流 ts 切片,h264 延迟 0.5s 内。现在设备多了,想弄个中间件把所有输入都统一成 webrtc ,用它这一套成熟的体系。 |
![]() | 10 andyskaura OP @fgodt 感谢 已经意识到这个问题了。 |
![]() | 12 churchill 2022-07-11 16:00:42 +08:00 @andyskaura ffmpeg 干不了这事吧,最多转个 mpeg 用 websocket 输出? 我用过这个 https://github.com/deepch/vdk/tree/master/format/rtspv2 |
13 novolunt 2022-07-11 16:17:03 +08:00 |
14 twosix 2022-07-11 16:21:45 +08:00 @churchill 提供的 deepch 的方案里就有 rtsptowebrtc 的 demo 了,如果想做大批量的话可以参考下 SRS ,用 flv 的话延迟应该也能接受 |
15 thinkershare 2022-07-11 16:36:18 +08:00 @novolunt 你和我们说的不是一个东西, 而且根本不是解决问题的办法 |
![]() | 16 zscself 2022-07-11 16:40:36 +08:00 ![]() 感觉这个就符合需求:[ZLMediaKit]( https://github.com/ZLMediaKit/ZLMediaKit) |
17 novolunt 2022-07-11 17:05:43 +08:00 |
18 cwaken 2022-07-11 19:37:24 +08:00 via iPhone webrtc 方案做过,服务端拉流转码 h264 。wasm 方案做过,服务端拉流转发 wasm 解码 |
19 microxiaoxiao 2022-07-11 20:57:51 +08:00 那么多人让人都说不行,我不信。你的需求如果是使用 webrtc 协议播放的话,可以用 janus 等,俗称信令媒体网关。如果仅仅是播放 rtsp 。流程肯定就是利用类似 websocket 的形式,去进行信令交互( option, describle ,play 这些)。现成的也有很多。 |
![]() | 20 learningman 2022-07-11 21:18:49 +08:00 via Android ![]() https://chromestatus.com/feature/6398297361088512 可以直接操作 TCPUDP 的,只不过特性还是实验性的 |
21 ByteCat 2022-07-12 12:11:03 +08:00 via iPhone 直接用 srs 提供的那个 ffmpeg docker 就行了,我用了好久了 |
![]() | 22 andyskaura OP @zscself 感谢! 这个拿来嵌在桌面服务里面做中转非常合适! |