golanggohlsrtmpwebrtcmedia-serverobs-studiortcprtmp-proxyrtmp-serverrtprtsprtsp-proxyrtsp-relayrtsp-serversrtstreamingwebrtc-proxy
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.
38 lines
764 B
38 lines
764 B
package rtmp |
|
|
|
import ( |
|
"bufio" |
|
"context" |
|
"net" |
|
"net/url" |
|
|
|
"github.com/notedit/rtmp/format/rtmp" |
|
) |
|
|
|
// DialContext connects to a server in reading mode. |
|
func DialContext(ctx context.Context, address string) (*Conn, error) { |
|
// https://github.com/aler9/rtmp/blob/3be4a55359274dcd88762e72aa0a702e2d8ba2fd/format/rtmp/client.go#L74 |
|
|
|
u, err := url.Parse(address) |
|
if err != nil { |
|
return nil, err |
|
} |
|
host := rtmp.UrlGetHost(u) |
|
|
|
var d net.Dialer |
|
nconn, err := d.DialContext(ctx, "tcp", host) |
|
if err != nil { |
|
return nil, err |
|
} |
|
|
|
rconn := rtmp.NewConn(&bufio.ReadWriter{ |
|
Reader: bufio.NewReaderSize(nconn, readBufferSize), |
|
Writer: bufio.NewWriterSize(nconn, writeBufferSize), |
|
}) |
|
rconn.URL = u |
|
|
|
return &Conn{ |
|
rconn: rconn, |
|
nconn: nconn, |
|
}, nil |
|
}
|
|
|