package streamer import ( "fmt" c "live-streamer/config" "path/filepath" "strings" "go.uber.org/zap" ) func buildFFmpegArgs(videoItem c.InputItem) []string { videoPath := videoItem.Path args := []string{"-re"} if videoItem.Start != "" { args = append(args, "-ss", videoItem.Start) } if videoItem.End != "" { args = append(args, "-to", videoItem.End) } args = append(args, "-i", videoPath, ) for k, v := range config.Play { args = append(args, k) if str, ok := v.(string); ok { filename := strings.TrimSuffix(filepath.Base(videoPath), filepath.Ext(videoPath)) str = strings.ReplaceAll(str, "{{filepath}}", videoPath) str = strings.ReplaceAll(str, "{{filename}}", filename) args = append(args, str) } else { args = append(args, fmt.Sprint(v)) } } args = append(args, fmt.Sprintf("%s/%s", config.Output.RTMPServer, config.Output.StreamKey)) log.Debug("build ffmpeg", zap.Strings("args", args)) return args }