package ConvertUtil import ( "dsSupport/Utils/FileUtil" "dsSupport/Utils/ShellUtil" "fmt" "os" "path" "path/filepath" "strings" ) //运行的目录 var runDir string func init() { runDir, _ = os.Getwd() } /** 功能:对指定的视频文件进行切片 作者:黄海 时间:2020-07-08 */ func Cut(source string) { //1、源视频文件 sourcePath := runDir + "/Source/" + source[0:2] + "/" + source //2、获取文件后缀 extension := path.Ext(source) //3、输出的文件通配名称 workingPath := runDir + `/Target/` + source[0:32] + "/" if !FileUtil.Exists(workingPath) { os.Mkdir(workingPath, os.ModePerm) } targetPath := workingPath + source[0:36] + `_%03d` + extension //尝试删除已存在的视频 var i = 0 for { var f = workingPath + source[0:36] + "_" + fmt.Sprintf("%03d", i) + extension if FileUtil.Exists(f) { os.Remove(f) } else { break } i++ } //4、切片 cmdLine := runDir + `\ffmpeg\ffmpeg.exe -fflags +genpts -i ` + sourcePath + ` -acodec copy -vcodec copy -f segment -segment_time 300 -reset_timestamps 1 -map 0:0 -map 0:1 ` + targetPath ShellUtil.ExecCommand(cmdLine) } /** 功能:将指定的视频文件,在切片后,获取都生成了哪些切片 作者:黄海 时间:2020-07-08 */ func GetAllCutChild(source string) []string { filepathNames, _ := filepath.Glob(filepath.Join(runDir+`/Target/`+source[0:2]+"/"+source[0:36]+"/", "*")) return filepathNames } /** 功能:将视频转为H264格式的MP4 作者: 黄海 时间:2020-07-08 */ func ConvertToH264Mp4(childMovie string) { extension := path.Ext(childMovie) childMovieMp4 := strings.Replace(childMovie, extension, ".mp4", -1) //如果存在则删除之 if FileUtil.Exists(childMovieMp4) { os.Remove(childMovieMp4) } cmdLine := runDir + `\ffmpeg\ffmpeg.exe -i ` + childMovie + ` -c:v libx264 -strict -2 ` + childMovieMp4 ShellUtil.ExecCommand(cmdLine) }