日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

go视频提取音频

發(fā)布時(shí)間:2023/12/29 综合教程 22 生活家
生活随笔 收集整理的這篇文章主要介紹了 go视频提取音频 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
package main

import (
    "bytes"
    "fmt"
    "log"
    "os"
    "os/exec"
    "strings"
)


func main() {

    var inputPath string
    var out bytes.Buffer

    fmt.Print("默認(rèn)輸出音頻路徑: d:/audio
 請(qǐng)輸入要轉(zhuǎn)換的視頻路徑:")
    fmt.Scan(&inputPath)

    fmt.Println(inputPath)
    // 獲取最后的字符串 得到名字
    countSplit := strings.Split(inputPath, "\")
    fileName := countSplit[len(countSplit)-1]
    nameArr := strings.Split(fileName,".")
    outputName := nameArr[0]+".aac"

    // 輸出路徑 默認(rèn)為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("...... 轉(zhuǎn)換成功.......")
    }
    //fmt.Printf("command output: %q", out.String())

}


func deleteFile(fileName string) {
    err := os.Remove(fileName)

    if err != nil {
        //fmt.Println("刪除已經(jīng)存在的文件 "+fileName+" 失敗")
    } else {
        //fmt.Println("刪除已經(jīng)存在的文件 "+fileName+" 成功")
    }
}
func mkdirOutputDir(dir string)  {

    exist, err := PathExists(dir)
    if err != nil {
        fmt.Printf("get dir error![%v]
", err)
        return
    }

    if exist {
        //fmt.Printf("已經(jīng)存在目錄 [%v]
", dir)
    } else {
        //fmt.Printf("不存在目錄[%v]
", dir)
        // 創(chuàng)建文件夾
        err := os.Mkdir(dir, os.ModePerm)
        if err != nil {
            //fmt.Printf("創(chuàng)建目錄失敗[%v]
", err)
        } else {
            //fmt.Printf("創(chuàng)建目錄成功
")
        }
    }
}

// 判斷文件夾是否存在
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)
}

總結(jié)

以上是生活随笔為你收集整理的go视频提取音频的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。