go视频提取音频
Go 视频 提取 音频
2023-09-14 09:12:10 时间
package main import ( "bytes" "fmt" "log" "os" "os/exec" "strings" ) func main() { var inputPath string var out bytes.Buffer fmt.Print("默认输出音频路径: d:/audio\n 请输入要转换的视频路径:") fmt.Scan(&inputPath) fmt.Println(inputPath) // 获取最后的字符串 得到名字 countSplit := strings.Split(inputPath, "\\") fileName := countSplit[len(countSplit)-1] nameArr := strings.Split(fileName,".") outputName := nameArr[0]+".aac" // 输出路径 默认为c:\audio fmt.Println(outputName) outPutDir := "d:/audio" mkdirOutputDir(outPutDir) outputPath := outPutDir+"/"+outputName fileExist := FileExist(outputPath) if fileExist == true { deleteFile(outputPath) } cmdArguments := []string{"-i", inputPath, outputPath} cmd := exec.Command("ffmpeg", cmdArguments...) cmd.Stdout = &out err := cmd.Run() if err != nil { log.Fatal(err) } else{ fmt.Println("...... 转换成功.......") } //fmt.Printf("command output: %q", out.String()) } func deleteFile(fileName string) { err := os.Remove(fileName) if err != nil { //fmt.Println("删除已经存在的文件 "+fileName+" 失败") } else { //fmt.Println("删除已经存在的文件 "+fileName+" 成功") } } func mkdirOutputDir(dir string) { exist, err := PathExists(dir) if err != nil { fmt.Printf("get dir error![%v]\n", err) return } if exist { //fmt.Printf("已经存在目录 [%v]\n", dir) } else { //fmt.Printf("不存在目录[%v]\n", dir) // 创建文件夹 err := os.Mkdir(dir, os.ModePerm) if err != nil { //fmt.Printf("创建目录失败[%v]\n", err) } else { //fmt.Printf("创建目录成功\n") } } } // 判断文件夹是否存在 func PathExists(path string) (bool, error) { _, err := os.Stat(path) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil } return false, err } func FileExist(path string) bool { _, err := os.Lstat(path) return !os.IsNotExist(err) }
相关文章
- 03.第一个Go程序
- 前后端分离项目(gin+gorm+vue3)腾讯云部署详细教程(go,mysql,nginx安装)
- 1.8 Star的Go流量录制回放工具,录制线上真实请求流量进行回放测试
- Go 函数式编程篇(七):基于管道技术实现函数的流式调用
- 第34篇:go语言编写"中转注入"让古老的注入工具复活
- 「Go工具箱」解析http中的user-agent,就用这个包:user_agent
- Go 语言怎么一键生成一个 gRPC 服务?
- Go 模块 verifying xxx/go.mod: checksum mismatch 问题处理
- Go语言内网资产探测工具
- Go-包管理-go mod(一)
- Go语言多维数组简述
- Go基础–终端操作和文件操作详解编程语言
- Go_ go mod 命令解决墙的问题详解编程语言
- Go 1.16 发布,支持 macOS ARM64
- 环境Go 编译 在 Linux 环境中的体验(go编译linux)
- 使用 gosec 检查 Go 代码中的安全问题
- MySQL中使用Go语言的好处(mysql中go什么)
- 请求简单而快速用Go编写的Redis请求测试(用go写的redis)
- 提升Go读取Oracle的速度(go读取oracle速度)
- 数据库探索Go语言与Oracle数据库的结合(go语言中的oracle)
- 数据库Go语言实现监控Oracle数据库(go监听oracle)
- 程序Go语言调用Oracle数据库驱动程序指南(go oracle驱动)
- Go语句让Oracle数据库管理更方便(oracle go语句)
- 学习Oracle Go了解信息技术世界(oracle go的用法)
- Oracle Go用法快速指南(oracle go用法)
- GO语言数组和切片实例详解