Increase RTMP client compatibility
This commit is contained in:
parent
f752080f4a
commit
6c0f2974f0
@ -69,6 +69,9 @@ func (s *server) log(who, action, path, message string, client net.Addr) {
|
||||
}
|
||||
|
||||
func (s *server) handlePlay(conn *rtmp.Conn) {
|
||||
client := conn.NetConn().RemoteAddr()
|
||||
|
||||
s.log("PLAY", "INVALID", conn.URL.Path, "not supported", client)
|
||||
conn.Close()
|
||||
}
|
||||
|
||||
@ -108,15 +111,23 @@ func main() {
|
||||
var cert string
|
||||
var key string
|
||||
var help bool
|
||||
var addr string
|
||||
var app string
|
||||
var token string
|
||||
|
||||
flag.StringVar(&cert, "cert", "", "Path to the certifacate file")
|
||||
flag.StringVar(&key, "key", "", "Path to the key file")
|
||||
flag.StringVar(&addr, "addr", ":1935", "Address to listen on")
|
||||
flag.StringVar(&app, "app", "/", "RTMP app, should start with /")
|
||||
flag.StringVar(&token, "token", "", "Token query string")
|
||||
flag.BoolVar(&help, "h", false, "Show options")
|
||||
|
||||
flag.Parse()
|
||||
|
||||
config := Config{
|
||||
Addr: ":1935",
|
||||
Addr: addr,
|
||||
App: app,
|
||||
Token: token,
|
||||
}
|
||||
|
||||
server, _ := New(config)
|
||||
|
@ -426,9 +426,15 @@ var CodecTypes = flv.CodecTypes
|
||||
|
||||
func (self *Conn) writeBasicConf() (err error) {
|
||||
// > SetChunkSize
|
||||
if err = self.writeSetChunkSize(1024 * 1024 * 128); err != nil {
|
||||
if self.isserver {
|
||||
if err = self.writeSetChunkSize(self.readMaxChunkSize); err != nil {
|
||||
return
|
||||
}
|
||||
} else {
|
||||
if err = self.writeSetChunkSize(1024 * 1024 * 1); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
// > WindowAckSize
|
||||
if err = self.writeWindowAckSize(1024 * 1024 * 3); err != nil {
|
||||
return
|
||||
@ -471,12 +477,17 @@ func (self *Conn) readConnect() (err error) {
|
||||
if ok {
|
||||
tcurl, _ = _tcurl.(string)
|
||||
}
|
||||
|
||||
connectparams := self.commandobj
|
||||
|
||||
if err = self.writeBasicConf(); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if err = self.flushWrite(); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
// > _result("NetConnection.Connect.Success")
|
||||
if err = self.writeCommandMsg(3, 0, "_result", self.commandtransid,
|
||||
flvio.AMFMap{
|
||||
@ -1180,6 +1191,7 @@ func (self *Conn) fillChunkHeader(b []byte, csid uint32, timestamp int32, msgtyp
|
||||
|
||||
if Debug {
|
||||
fmt.Printf("rtmp: write chunk msgdatalen=%d msgsid=%d\n", msgdatalen, msgsid)
|
||||
fmt.Print(hex.Dump(b[:msgdatalen]))
|
||||
}
|
||||
|
||||
return
|
||||
@ -1568,6 +1580,10 @@ func (self *Conn) handleMsg(timestamp uint32, msgsid uint32, msgtypeid uint8, ms
|
||||
}
|
||||
self.readAckSize = pio.U32BE(self.msgdata)
|
||||
return
|
||||
default:
|
||||
if Debug {
|
||||
fmt.Printf("rtmp: unhandled msg: %d\n", msgtypeid)
|
||||
}
|
||||
}
|
||||
|
||||
self.gotmsg = true
|
||||
|
Loading…
x
Reference in New Issue
Block a user