gwuhaolin / livego

live video streaming server in golang
MIT License
9.69k stars 2k forks source link

崩溃、http flv延时几十秒才播放 #10

Open ZaXk opened 7 years ago

ZaXk commented 7 years ago

在win10 64位上使用,32位、64位的livego 均出现同样情况

使用一下命令推流: ffmpeg -f dshow -s 640x480 -r 25 -i video="ManyCam Virtual Webcam" -preset ultrafast -vcodec libx264 -tune zerolatency -vb 700k -an -f flv rtmp://127.0.0.1/live/reflv

VLC打开http://127.0.0.1:7001/live/reflv.flv

遇到两个问题: 1、VLC一直黑屏,30秒左右之后才有画面,画面也是延时30秒 2、过一段时间livego就崩溃退出了: 2017/09/26 01:50:45 main.go:106: start livego, version 0.0.4 2017/09/26 01:50:45 main.go:40: HLS listen On :7002 2017/09/26 01:50:45 main.go:75: HTTP-FLV listen On :7001 2017/09/26 01:50:45 main.go:58: RTMP Listen On :1935 2017/09/26 01:50:46 server.go:92: url: /live/reflv.flv path: live/reflv paths: [live reflv] 2017/09/26 01:50:52 rtmp.go:88: new client, connect remote: 127.0.0.1:33544 local: 127.0.0.1:1935 2017/09/26 01:50:52 conn_server.go:280: handle publish req done 2017/09/26 01:50:52 rtmp.go:109: new publisher: <key: live/reflv, URL: rtmp://127.0.0.1/live/reflv, UID: mc9-KrQRQK-RKQ5e, Inter: false> 2017/09/26 01:50:52 hls.go:61: new hls source 2017/09/26 01:50:52 source.go:117: [<key: live/reflv, URL: rtmp://127.0.0.1/live/reflv, UID: mc9-KrQRQK-RKQ5e, Inter: true>] hls sender start 2017/09/26 01:51:14 server.go:92: url: /live/reflv.flv path: live/reflv paths: [live reflv] 2017/09/26 01:52:05 writer.go:159: http flv closed panic: runtime error: invalid memory address or nil pointer dereference [signal 0xc0000005 code=0x0 addr=0x20 pc=0x53768f]

goroutine 37129 [running]: bufio.(Writer).Flush(0xc042112440, 0xc04281cb07, 0x3ea) /usr/local/Cellar/go/1.8.3/libexec/src/bufio/bufio.go:566 +0x5f bufio.(Writer).Write(0xc042112440, 0xc04281cb07, 0x31c1, 0x764f9, 0xb, 0x0, 0x0) /usr/local/Cellar/go/1.8.3/libexec/src/bufio/bufio.go:602 +0xe6 net/http.(response).write(0xc0420d4000, 0x31c1, 0xc04281cb07, 0x31c1, 0x764f9, 0x0, 0x0, 0xb, 0x0, 0x0) /usr/local/Cellar/go/1.8.3/libexec/src/net/http/server.go:1525 +0x157 net/http.(response).Write(0xc0420d4000, 0xc04281cb07, 0x31c1, 0x764f9, 0xb, 0x0, 0x0) /usr/local/Cellar/go/1.8.3/libexec/src/net/http/server.go:1495 +0x6b github.com/gwuhaolin/livego/protocol/httpflv.(*FLVWriter).SendPacket(0xc0420c8240, 0x0, 0x0) /Users/halwu/go/src/github.com/gwuhaolin/livego/protocol/httpflv/writer.go:134 +0x213 github.com/gwuhaolin/livego/protocol/httpflv.NewFLVWriter.func1(0xc0420c8240) /Users/halwu/go/src/github.com/gwuhaolin/livego/protocol/httpflv/writer.go:47 +0x36 created by github.com/gwuhaolin/livego/protocol/httpflv.NewFLVWriter /Users/halwu/go/src/github.com/gwuhaolin/livego/protocol/httpflv/writer.go:52 +0x38e

JackHighBlack commented 6 years ago

有好的改进方案吗?

w1xbcai commented 6 years ago

我也也遇到同样的问题, 原先延迟只有2-3s,换了摄像头之后就和你一样了. 我尝试了nginx srs 都是20-30秒才播放,而且延迟很高(30s左右).

JackHighBlack commented 6 years ago

我现在已用nigix的nginx-rtmp-module方案,延迟也就1s左右

calabashdad commented 6 years ago

这是因为你没有音频导致的,加上音频很快就出图了

ancin commented 6 years ago

我试了试red5 延迟5,6秒;

ancin commented 6 years ago

@JackHighBlack 你好;你的延迟1s;你是怎么做到的。能说下嘛。3ks。

JackHighBlack commented 6 years ago

@ancin 搭建基于nginx的rtmp服务器,具体方法看下链接的文章 http://www.360doc.com/content/17/0227/18/474846_632467148.shtml