q191201771 / lal

🔥 Golang audio/video live streaming lib/client/server. support RTMP, RTSP(RTP/RTCP), HLS, HTTP[S]/WebSocket-FLV/TS, GB28181, H264/H265/AAC/G711/OPUS, relay, cluster, record, HTTP Notify/API/UI. 直播

Home Page:https://pengrl.com/lal

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

flv和hls拉流无法播放

coolmian opened this issue · comments

测试版本:github上已经编译好的二进制文件lal_v0.29.1_windows
主要问题:
使用OBS rtmp推流测试,不管推流地址写成
rtmp://127.0.0.1:1935/live/test110
rtmp://127.0.0.1:1935/test110
rtmp://127.0.0.1:1935/live/test110/test110
都能推,而且ts文件只会保存到lal_record\hls 目录下,不会再根据{streamName}新建目录

拉流时使用http://127.0.0.1:8080/test110.flv ,日志不报错
但是mpegts.js和PotPlayer播放器都一直加载无法播放
如果使用http://127.0.0.1:8080/hls/test110.m3u8拉流,日志显示报错

 request={StreamName:test110 FileNameWithPath:lal_record\hls\test110\playlist.m3u8}, err=open lal_record\hls\test110\playlist.m3u8: The system cannot find the path specified. - server_handler.go:56

我看了下,确实test110文件夹就没被创建出来

感觉完全不会根据配置说明里的这种路径生成文件

//  - `/hls/{streamName}.m3u8`
 //  - `/hls/{streamName}/playlist.m3u8`
 //  - `/hls/{streamName}/record.m3u8`**

我的配置文件

{
  "# doc of config": "https://pengrl.com/lal/#/ConfigBrief",
  "conf_version": "v0.2.9",
  "rtmp": {
    "enable": true,
    "addr": ":1935",
    "gop_num": 1,
    "merge_write_size": 0,
    "add_dummy_audio_enable": true,
    "add_dummy_audio_wait_audio_ms": 150
  },
  "default_http": {
    "http_listen_addr": ":8080",
    "https_listen_addr": ":4433",
    "https_cert_file": "./conf/cert.pem",
    "https_key_file": "./conf/key.pem"
  },
  "httpflv": {
    "enable": true,
    "enable_https": true,
    "url_pattern": "/",
    "gop_num": 1
  },
  "hls": {
    "enable": true,
    "enable_https": true,
    "url_pattern": "/hls/",
    "out_path": "./lal_record/hls/",
    "fragment_duration_ms": 3000,
    "fragment_num": 6,
    "delete_threshold": 6,
    "cleanup_mode": 1,
    "use_memory_as_disk_flag": false
  },
  "httpts": {
    "enable": true,
    "enable_https": true,
    "url_pattern": "/",
    "gop_num": 0
  },
  "rtsp": {
    "enable": true,
    "addr": ":5544",
    "out_wait_key_frame_flag": true
  },
  "record": {
    "enable_flv": true,
    "flv_out_path": "./lal_record/flv/",
    "enable_mpegts": false,
    "mpegts_out_path": "./lal_record/mpegts"
  },
  "relay_push": {
    "enable": false,
    "addr_list":[
    ]
  },
  "relay_pull": {
    "enable": false,
    "addr": ""
  },
  "http_api": {
    "enable": true,
    "addr": ":8083"
  },
  "server_id": "1",
  "http_notify": {
    "enable": false,
    "update_interval_sec": 5,
    "on_server_start": "http://127.0.0.1:10101/on_server_start",
    "on_update": "http://127.0.0.1:10101/on_update",
    "on_pub_start": "http://127.0.0.1:10101/on_pub_start",
    "on_pub_stop": "http://127.0.0.1:10101/on_pub_stop",
    "on_sub_start": "http://127.0.0.1:10101/on_sub_start",
    "on_sub_stop": "http://127.0.0.1:10101/on_sub_stop",
    "on_rtmp_connect": "http://127.0.0.1:10101/on_rtmp_connect"
  },
  "simple_auth": {
    "key": "q191201771",
    "dangerous_lal_secret": "pengrl",
    "pub_rtmp_enable": false,
    "sub_rtmp_enable": false,
    "sub_httpflv_enable": false,
    "sub_httpts_enable": false,
    "pub_rtsp_enable": false,
    "sub_rtsp_enable": false,
    "hls_m3u8_enable": false
  },
  "pprof": {
    "enable": true,
    "addr": ":8084"
  },
  "log": {
    "level": 1,
    "filename": "./logs/lalserver.log",
    "is_to_stdout": true,
    "is_rotate_daily": true,
    "short_file_flag": true,
    "timestamp_flag": true,
    "timestamp_with_ms_flag": true,
    "level_flag": true,
    "assert_behavior": 1
  },
  "debug": {
    "log_group_interval_sec": 30,
    "log_group_max_group_num": 10,
    "log_group_max_sub_num_per_group": 10
  }
}

没事了,OBS推流时需要把{streamName}当成串流密钥填写
具体填写如下:
服务器:rtmp://127.0.0.1:1935/live
串流密钥:test110