diff --git a/internal/capture/manager.go b/internal/capture/manager.go index 04de4615..eaee2423 100644 --- a/internal/capture/manager.go +++ b/internal/capture/manager.go @@ -102,7 +102,7 @@ func New(desktop types.DesktopManager, config *config.Capture) *CaptureManagerCt "! x264enc threads=4 bitrate=%d key-int-max=15 byte-stream=true tune=zerolatency speed-preset=%s "+ "! mux.", url, config.AudioDevice, config.BroadcastAudioBitrate*1000, config.Display, config.BroadcastVideoBitrate, config.BroadcastPreset, ), nil - }, ""), + }, config.BroadcastUrl), screencast: screencastNew(config.ScreencastEnabled, func() string { if config.ScreencastPipeline != "" { // replace {display} with valid display diff --git a/internal/config/capture.go b/internal/config/capture.go index 315735b8..a02e0ea7 100644 --- a/internal/config/capture.go +++ b/internal/config/capture.go @@ -28,6 +28,7 @@ type Capture struct { BroadcastVideoBitrate int BroadcastPreset string BroadcastPipeline string + BroadcastUrl string ScreencastEnabled bool ScreencastRate string @@ -97,6 +98,11 @@ func (Capture) Init(cmd *cobra.Command) error { return err } + cmd.PersistentFlags().String("capture.broadcast.url", "", "initial URL for broadcasting, setting this value will automatically start broadcasting") + if err := viper.BindPFlag("capture.broadcast.url", cmd.PersistentFlags().Lookup("capture.broadcast.url")); err != nil { + return err + } + // screencast cmd.PersistentFlags().Bool("capture.screencast.enabled", false, "enable screencast") if err := viper.BindPFlag("capture.screencast.enabled", cmd.PersistentFlags().Lookup("capture.screencast.enabled")); err != nil { @@ -211,6 +217,7 @@ func (s *Capture) Set() { s.BroadcastVideoBitrate = viper.GetInt("capture.broadcast.video_bitrate") s.BroadcastPreset = viper.GetString("capture.broadcast.preset") s.BroadcastPipeline = viper.GetString("capture.broadcast.pipeline") + s.BroadcastUrl = viper.GetString("capture.broadcast.url") // screencast s.ScreencastEnabled = viper.GetBool("capture.screencast.enabled")