• go视频提取音频


    package main
    
    import (
        "bytes"
        "fmt"
        "log"
        "os"
        "os/exec"
        "strings"
    )
    
    
    func main() {
    
        var inputPath string
        var out bytes.Buffer
    
        fmt.Print("默认输出音频路径: d:/audio
     请输入要转换的视频路径:")
        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]
    ", err)
            return
        }
    
        if exist {
            //fmt.Printf("已经存在目录 [%v]
    ", dir)
        } else {
            //fmt.Printf("不存在目录[%v]
    ", dir)
            // 创建文件夹
            err := os.Mkdir(dir, os.ModePerm)
            if err != nil {
                //fmt.Printf("创建目录失败[%v]
    ", err)
            } else {
                //fmt.Printf("创建目录成功
    ")
            }
        }
    }
    
    // 判断文件夹是否存在
    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)
    }
  • 相关阅读:
    Elasticsearch 深入5
    Elasticsearch 深入4
    Elasticsearch 深入3
    Elasticsearch 深入2
    Elasticsearch1简单深入
    Kibana简单操作Elasticsearch
    什么是非阻塞同步?
    面向对象之思考
    使用spring代码中控制事务
    mybatis 中使用oracle merger into
  • 原文地址:https://www.cnblogs.com/brady-wang/p/13588120.html
Copyright © 2020-2023  润新知