package main import ( "flag" "fmt" "os" "os/exec" ) type MPV struct { cmd *exec.Cmd socketPath string } func NewMPV(streamUrl string, socketPath string) MPV { return MPV{ cmd: exec.Command("mpv", fmt.Sprintf("--input-ipc-server=%s", socketPath), streamUrl), socketPath: socketPath, } } func (mpv *MPV) Spawn() error { mpv.cmd.Stdout = os.Stdout mpv.cmd.Stderr = os.Stderr return mpv.cmd.Start() } var testUrl string func main() { flag.StringVar(&testUrl, "test-url", "", "test url") flag.Parse() mpv := NewMPV(testUrl, "/tmp/mptv3.sock") mpv.Spawn() }