You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							48 lines
						
					
					
						
							961 B
						
					
					
				
			
		
		
	
	
							48 lines
						
					
					
						
							961 B
						
					
					
				package main | 
						|
 | 
						|
import ( | 
						|
	"io" | 
						|
	"net" | 
						|
	"strconv" | 
						|
 | 
						|
	"github.com/sirupsen/logrus" | 
						|
	log "github.com/sirupsen/logrus" | 
						|
	"github.com/yutopp/go-rtmp" | 
						|
) | 
						|
 | 
						|
func startRTMPService() { | 
						|
	port := 1935 | 
						|
	log.Printf("RTMP server is listening for incoming stream on port %d.\n", port) | 
						|
 | 
						|
	tcpAddr, err := net.ResolveTCPAddr("tcp", ":"+strconv.Itoa(port)) | 
						|
	if err != nil { | 
						|
		log.Panicf("Failed: %+v", err) | 
						|
	} | 
						|
 | 
						|
	listener, err := net.ListenTCP("tcp", tcpAddr) | 
						|
	if err != nil { | 
						|
		log.Panicf("Failed: %+v", err) | 
						|
	} | 
						|
 | 
						|
	srv := rtmp.NewServer(&rtmp.ServerConfig{ | 
						|
		OnConnect: func(conn net.Conn) (io.ReadWriteCloser, *rtmp.ConnConfig) { | 
						|
			l := log.StandardLogger() | 
						|
			l.SetLevel(logrus.WarnLevel) | 
						|
 | 
						|
			h := &Handler{} | 
						|
 | 
						|
			return conn, &rtmp.ConnConfig{ | 
						|
				Handler: h, | 
						|
 | 
						|
				ControlState: rtmp.StreamControlStateConfig{ | 
						|
					DefaultBandwidthWindowSize: 6 * 1024 * 1024 / 8, | 
						|
				}, | 
						|
 | 
						|
				Logger: l, | 
						|
			} | 
						|
		}, | 
						|
	}) | 
						|
	if err := srv.Serve(listener); err != nil { | 
						|
		log.Panicf("Failed: %+v", err) | 
						|
	} | 
						|
}
 | 
						|
 |