monibuca icon indicating copy to clipboard operation
monibuca copied to clipboard

请问rtsp或rtmp拉流后可以通过hls播地址放吗

Open Johonnyr opened this issue 2 years ago • 11 comments

开启了hls插件,发现rtsp或rtmp拉流后,flv和fmp4可以正常播放,但是hls播放会超时,请问是否是设置的不对,还是本身不支持这样操作呢

Johonnyr avatar Sep 13 '23 14:09 Johonnyr

本身支持这样的操作的,看一下日志显示什么

langhuihui avatar Sep 14 '23 00:09 langhuihui

13:40:43 INFO jump {"流": "live/192168164", "类型": "HDLSubscriber", "ID": "192.168.1.2:55540", "轨道": "h264", "跳过序列号": 50, "跳过时间戳": "2m35.427393856s"} 13:40:43 INFO jump {"流": "live/192168164", "类型": "HDLSubscriber", "ID": "192.168.1.2:55540", "轨道": "pcma", "跳过序列号": 51, "跳过时间戳": "2m35.468393856s"} 13:40:47 INFO 播放停止 {"流": "live/192168164", "类型": "HDLSubscriber", "ID": "192.168.1.2:55540", "error": "context canceled"} 13:40:47 INFO 订阅者-1 {"流": "live/192168164", "类型": "HDLSubscriber", "ID": "192.168.1.2:55540", "remains": 0} 13:42:26 INFO 订阅 {"流": "live/192168164", "类型": "Fmp4Subscriber", "ID": "192.168.1.2:55866"} 13:42:26 INFO 轨道+1 {"流": "live/192168164", "类型": "Fmp4Subscriber", "ID": "192.168.1.2:55866", "名称": "pcma"} 13:42:26 INFO 轨道+1 {"流": "live/192168164", "类型": "Fmp4Subscriber", "ID": "192.168.1.2:55866", "名称": "h264"} 13:42:26 INFO 订阅者+1 {"流": "live/192168164", "类型": "Fmp4Subscriber", "ID": "192.168.1.2:55866", "remains": 1} 13:42:26 INFO 阻塞式播放 {"流": "live/192168164", "类型": "Fmp4Subscriber", "ID": "192.168.1.2:55866", "subType": 0} 13:42:26 INFO 开始读取 {"流": "live/192168164", "类型": "Fmp4Subscriber", "ID": "192.168.1.2:55866", "轨道": "h264", "mode": 0} 13:42:26 INFO 第一帧已读取 {"流": "live/192168164", "类型": "Fmp4Subscriber", "ID": "192.168.1.2:55866", "轨道": "h264", "第一帧时间戳": "4m18.576393856s", "第一帧序列号": 6350} 13:42:26 INFO 开始读取 {"流": "live/192168164", "类型": "Fmp4Subscriber", "ID": "192.168.1.2:55866", "轨道": "pcma", "mode": 0} 13:42:26 INFO 第一帧已读取 {"流": "live/192168164", "类型": "Fmp4Subscriber", "ID": "192.168.1.2:55866", "轨道": "pcma", "第一帧时间戳": "4m18.576393856s", "第一帧序列号": 6339} 13:42:26 INFO jump {"流": "live/192168164", "类型": "Fmp4Subscriber", "ID": "192.168.1.2:55866", "轨道": "h264", "跳过序列号": 50, "跳过时间戳": "4m20.213393856s"} 13:42:26 INFO jump {"流": "live/192168164", "类型": "Fmp4Subscriber", "ID": "192.168.1.2:55866", "轨道": "pcma", "跳过序列号": 51, "跳过时间戳": "4m20.216393856s"} 13:42:31 INFO 播放停止 {"流": "live/192168164", "类型": "Fmp4Subscriber", "ID": "192.168.1.2:55866", "error": "context canceled"} 13:42:31 INFO 订阅者-1 {"流": "live/192168164", "类型": "Fmp4Subscriber", "ID": "192.168.1.2:55866", "remains": 0} 13:42:58 INFO 订阅 {"流": "live/192168164", "类型": "HLSWriter", "ID": "824648402120"} 13:42:58 INFO 订阅者+1 {"流": "live/192168164", "类型": "HLSWriter", "ID": "824648402120", "remains": 1} 13:42:59 INFO HLS 等待超时 {"fileName": "live/192168164/h264.m3u8", "超时": "10s"}

大佬方便的时候可以看下,hls播放时只是提示等待超时

Johonnyr avatar Sep 14 '23 05:09 Johonnyr

llhls: enable: true hls: enable: true monitor: enable: false

这里是config配置,然后播放地址格式如下,格式应该是对的,自带的Jessibuca和vlc播放hls都不行: http://192.168.1.2:8887/hdl/live/192168164.flv http://192.168.1.2:8887/fmp4/live/192168164.mp4 http://192.168.1.2:8887/hls/live/192168164.m3u8

Johonnyr avatar Sep 14 '23 05:09 Johonnyr

hls对 pcma 支持的不好,你先等一下看看,因为 hls 需要生成 ts 文件,需要时间

langhuihui avatar Sep 14 '23 06:09 langhuihui

好的,请问大概需要多久啊,距我上面回复的时候,本地一直在pull 一个rtsp流,现在使用hls仍然无法播放

13:57:30 INFO 订阅者+1 {"流": "live/192168164", "类型": "HDLSubscriber", "ID": "192.168.1.2:35694", "remains": 1} 13:57:30 INFO 阻塞式播放 {"流": "live/192168164", "类型": "HDLSubscriber", "ID": "192.168.1.2:35694", "subType": 2} 13:57:30 INFO 开始读取 {"流": "live/192168164", "类型": "HDLSubscriber", "ID": "192.168.1.2:35694", "轨道": "h264", "mode": 0} 13:57:30 INFO 第一帧已读取 {"流": "live/192168164", "类型": "HDLSubscriber", "ID": "192.168.1.2:35694", "轨道": "h264", "第一帧时间戳": "19m23.065393856s", "第一帧序列号": 29000} 13:57:30 INFO 开始读取 {"流": "live/192168164", "类型": "HDLSubscriber", "ID": "192.168.1.2:35694", "轨道": "pcma", "mode": 0} 13:57:30 INFO 第一帧已读取 {"流": "live/192168164", "类型": "HDLSubscriber", "ID": "192.168.1.2:35694", "轨道": "pcma", "第一帧时间戳": "19m23.065393856s", "第一帧序列号": 28954} 13:57:31 INFO jump {"流": "live/192168164", "类型": "HDLSubscriber", "ID": "192.168.1.2:35694", "轨道": "h264", "跳过序列号": 50, "跳过时间戳": "19m24.183393856s"} 13:57:31 INFO jump {"流": "live/192168164", "类型": "HDLSubscriber", "ID": "192.168.1.2:35694", "轨道": "pcma", "跳过序列号": 48, "跳过时间戳": "19m24.158393856s"} 13:59:43 INFO 播放停止 {"流": "live/192168164", "类型": "HDLSubscriber", "ID": "192.168.1.2:35694", "error": "context canceled"} 13:59:43 INFO 订阅者-1 {"流": "live/192168164", "类型": "HDLSubscriber", "ID": "192.168.1.2:35694", "remains": 0} 14:23:54 INFO 订阅 {"流": "live/192168164", "类型": "HLSWriter", "ID": "824648402888"} 14:23:54 INFO 订阅者+1 {"流": "live/192168164", "类型": "HLSWriter", "ID": "824648402888", "remains": 1} 14:23:55 INFO HLS 等待超时 {"fileName": "live/192168164/h264.m3u8", "超时": "10s"} 14:23:55 INFO HLS 等待超时 {"fileName": "live/192168164/h264.m3u8", "超时": "10s"} 14:24:10 INFO 停止 {"流": "live/192168164", "类型": "HLSWriter", "ID": "824648402888", "reason": "no reader after 15s"} 14:24:11 INFO 订阅者-1 {"流": "live/192168164", "类型": "HLSWriter", "ID": "824648402888", "remains": 0} 14:24:16 INFO 订阅 {"流": "live/192168164", "类型": "HLSWriter", "ID": "824648402504"} 14:24:16 INFO 订阅者+1 {"流": "live/192168164", "类型": "HLSWriter", "ID": "824648402504", "remains": 1} 14:24:17 INFO HLS 等待超时 {"fileName": "live/192168164/h264.m3u8", "超时": "10s"} 14:24:17 INFO HLS 等待超时 {"fileName": "live/192168164/h264.m3u8", "超时": "10s"} 14:24:32 INFO 停止 {"流": "live/192168164", "类型": "HLSWriter", "ID": "824648402504", "reason": "no reader after 15s"} 14:24:36 INFO 订阅者-1 {"流": "live/192168164", "类型": "HLSWriter", "ID": "824648402504", "remains": 0} 14:25:30 INFO 订阅 {"流": "live/192168164", "类型": "HLSWriter", "ID": "824641414728"} 14:25:30 INFO 订阅者+1 {"流": "live/192168164", "类型": "HLSWriter", "ID": "824641414728", "remains": 1} 14:25:31 INFO HLS 等待超时 {"fileName": "live/192168164/h264.m3u8", "超时": "10s"} 14:25:31 INFO HLS 等待超时 {"fileName": "live/192168164/h264.m3u8", "超时": "10s"}

Johonnyr avatar Sep 14 '23 06:09 Johonnyr

你用 aac 音频试试,或者禁用音频

langhuihui avatar Sep 14 '23 06:09 langhuihui

好的,谢谢大佬,我然后试一下。对了,顺便请教一下,如果摄像头本身有多个通道,monibuca拉取rtsp时地址可以只填写到ip和端口吗,还是每一个通道的地址需要单独拉取

Johonnyr avatar Sep 14 '23 06:09 Johonnyr

都要单独的,要遵循 rtsp 协议标准

langhuihui avatar Sep 14 '23 06:09 langhuihui

如果是这样的话,比较好奇实际使用时在接入一个未知的摄像头时,是如何确定摄像头有几个通道的呢?如果让用户手动去填感觉比较麻烦,通道数和地址要是能直接在拉流后通过某种方式获取到就好了

Johonnyr avatar Sep 14 '23 07:09 Johonnyr

如何获取到呢?

langhuihui avatar Sep 14 '23 07:09 langhuihui

嗯,我本身不是很了解流协议,如果协议本身可以在交互过程中,可以知道上面所述的通道数、通道地址等信息,然后monibuca可以通过接口将这些信息交给开发者,用户使用时只要输入IP、端口即可,应该比较方便使用。纯从使用角度说一些想法,可能比较愚蠢

Johonnyr avatar Sep 14 '23 08:09 Johonnyr