Configure and test transcoder

This commit is contained in:
Alexandre Iooss 2020-10-18 11:06:54 +02:00
parent 23b6eeaa05
commit 09a3422d06
No known key found for this signature in database
GPG Key ID: 6C79278F3FCDCC02
7 changed files with 28 additions and 13 deletions

View File

@ -82,16 +82,24 @@ telnet:
#
#listenAddress: :8023
# Size is in characters. It is recommended to keep a 16x9 format.
#
#width: 80
#height: 45
## Transcoders configuration ##
transcoder:
text:
# By default the text transcoder is disabled.
# You need to enable it to use telnet output.
#
#enabled: false
# Time in milliseconds between two images.
# By default 50 ms, so 20 FPS.
# Displaying text takes time.
#
#delay: 50
# Size is in characters. It is recommended to keep a 16x9 format.
#
#width: 80
#height: 45
# Time in milliseconds between two images.
# By default 50 ms, so 20 FPS.
# Displaying text takes time.
#
#delay: 50
## Web server ##
# The web server serves a WebRTC player.

View File

@ -25,6 +25,7 @@ type Config struct {
Monitoring monitoring.Options
Srt srt.Options
Telnet telnet.Options
Transcoder transcoder.Options
Web web.Options
WebRTC webrtc.Options
}

View File

@ -50,7 +50,7 @@ func main() {
// Start routines
go transcoder.Init(streams, &cfg.Transcoder)
go forwarding.Serve(streams, &cfg.Forwarding)
go forwarding.Serve(streams, cfg.Forwarding)
go monitoring.Serve(&cfg.Monitoring)
go srt.Serve(streams, authBackend, &cfg.Srt)
go telnet.Serve(streams, &cfg.Telnet)

View File

@ -1,7 +1,9 @@
// Package stream defines a structure to communication between inputs and outputs
package stream
import "sync"
import (
"sync"
)
// Stream makes packages able to subscribe to an incoming stream
type Stream struct {
@ -21,7 +23,7 @@ type Stream struct {
// New creates a new stream.
func New() *Stream {
s := &Stream{}
broadcast := make(chan []byte, 64)
broadcast := make(chan []byte, 1024)
s.Broadcast = broadcast
s.outputs = make(map[chan []byte]struct{})
s.nbClients = 0

View File

@ -65,7 +65,7 @@ func handleViewer(s *srtgo.SrtSocket, streams map[string]*stream.Stream, name st
}
// Register new output
c := make(chan []byte, 128)
c := make(chan []byte, 1024)
st.Register(c)
st.IncrementClientCount()

View File

@ -69,6 +69,9 @@ func Serve(streams map[string]*stream.Stream, authBackend auth.Backend, cfg *Opt
continue
}
// FIXME: Flush socket
// Without this, the SRT buffer might get full before reading it
// streamid can be "name:password" for streamer or "name" for viewer
streamID, err := s.GetSockOptString(C.SRTO_STREAMID)
if err != nil {

View File

@ -0,0 +1 @@
package transcoder