目录

前言

环境依赖

代码

总结


前言

本文提供将视频中音频提取出来存为mp3格式,一如既往的实用主义。

主要也是学习一下golang使用ffmpeg工具的方式。

环境依赖

ffmpeg环境安装,可以参考我的另一篇文章:windows ffmpeg安装部署_阿良的博客-CSDN博客

本文主要使用到的不是ffmpeg,而是ffprobe也在上面这篇文章中的zip包中。

​​​​

golang主要依赖库

github.com/u2takey/ffmpeg-go

代码

不废话,上代码。下面为功能实现的主要代码。

package mainimport ("fmt""github.com/gofrs/uuid""github.com/google/logger"ffmpeg "github.com/u2takey/ffmpeg-go""path/filepath""strings"
)func InFormat1(target string, str_array []string) bool {for _, element := range str_array {if target == element {return true}}return false
}//提取MP3
func ExtractMp3(inputVideoPath, outputDir string) string {_formatArr := []string{"mp4", "flv"}_, _file := filepath.Split(inputVideoPath)_tmps := strings.Split(_file, ".")_ext := _tmps[len(_tmps)-1]if !InFormat1(_ext, _formatArr) {logger.Fatal("格式不支持")}_name, err := uuid.NewV4()if err != nil {logger.Fatal(err)}_resultVideoPath := filepath.Join(outputDir, fmt.Sprintf("%s.%s", _name.String(), "mp3"))err = ffmpeg.Input(inputVideoPath).Output(_resultVideoPath, ffmpeg.KwArgs{"acodec": "libmp3lame"}).OverWriteOutput().ErrorToStdOut().Run()if err != nil {logger.Fatal(err)}return _resultVideoPath
}func main() {_extractMp3 := ExtractMp3("E:\\360MoveData\\Users\\xxx\\Desktop\\3333333.mp4", "E:\\360MoveData\\Users\\xxx\\Desktop")fmt.Println(_extractMp3)
}

日志工具代码如下,非必要。

package logutilimport ("github.com/google/logger""os"
)var pLogger *logger.Logger// Init init logger
func Init(verbose, systemLog bool, logPath string) {file, err := os.OpenFile(logPath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0660)if err != nil {logger.Fatalf("logger Init: open log file(%v) error(%v)", logPath, err)}pLogger = logger.Init("FFmpegDemoLogger", verbose, systemLog, file)
}// Close close logger
func Close() {pLogger.Close()
}

代码说明

1、ExtractMp3方法参数分别为,输入视频地址、输出mp3目录地址值。

2、做了简单的视频格式校验,如需添加,可以自己看着来。

3、最终视频名使用uuid避免重复。

验证一下

准备的视频信息。

执行结果

ffmpeg version n4.3.1-20-g8a2acdc6da Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9.3-win32 (GCC) 20200320
  configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enabl
e-version3 --disable-debug --enable-iconv --enable-zlib --enable-libxml2 --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvmaf --dis
able-vulkan --enable-libvorbis --enable-amf --enable-libaom --enable-avisynth --enable-libdav1d --enable-ffnvcodec --enable-cuda-llvm --disable-libglslang --enable-libass --enable-lib
bluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenj
peg --enable-librav1e --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libtwolame --enable-libvidstab --enable-libx264 --enable-libx265 --enable-libxvid --ena
ble-libzimg --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-libs=-lgomp
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'E:\360MoveData\Users\huyi\Desktop\3333333.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2022-09-08T12:04:43.000000Z
    Hw              : 1
                    :
    bitRate         : 16000000
                    :
    com.apple.quicktime.artwork: {"data":{"edittime":22,"infoStickerId":"","musicId":"","os":"windows","product":"lv","stickerId":"","videoEffectId":"","videoId":"245ba6f1-f2ab-4d70-b
c77-c70ea30c171a","videoParams":{"be":0,"ef":0,"ft":0,"ma":0,"me":0,"mu":0,"re":0,"sp":0,"st":0,"te":0,"t
    maxrate         : 16000000
                    :
    te_is_reencode  : 1
                    :
    encoder         : Lavf58.76.100
  Duration: 00:00:26.91, start: 0.000000, bitrate: 11898 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 11741 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
    Metadata:
      creation_time   : 2022-09-08T12:04:43.000000Z
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 156 kb/s (default)
    Metadata:
      creation_time   : 2022-09-08T12:04:43.000000Z
      handler_name    : SoundHandler
Stream mapping:
  Stream #0:1 -> #0:0 (aac (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
Output #0, mp3, to 'E:\360MoveData\Users\huyi\Desktop\7e1acd79-5117-4d4a-85eb-bff1bf01c80b.mp3':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    te_is_reencode  : 1
                    :
    Hw              : 1
                    :
    bitRate         : 16000000
                    :
    com.apple.quicktime.artwork: {"data":{"edittime":22,"infoStickerId":"","musicId":"","os":"windows","product":"lv","stickerId":"","videoEffectId":"","videoId":"245ba6f1-f2ab-4d70-b
c77-c70ea30c171a","videoParams":{"be":0,"ef":0,"ft":0,"ma":0,"me":0,"mu":0,"re":0,"sp":0,"st":0,"te":0,"t
    maxrate         : 16000000
                    :
    TSSE            : Lavf58.45.100
    Stream #0:0(und): Audio: mp3 (libmp3lame), 44100 Hz, stereo, fltp (default)
    Metadata:
      creation_time   : 2022-09-08T12:04:43.000000Z
      handler_name    : SoundHandler
      encoder         : Lavc58.91.100 libmp3lame
size=     422kB time=00:00:26.93 bitrate= 128.4kbits/s speed=84.1x    
video:0kB audio:421kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.187326%
E:\360MoveData\Users\huyi\Desktop\7e1acd79-5117-4d4a-85eb-bff1bf01c80b.mp3

结果音频信息

总结

没啥好总结的,正好用到了就分享下,大家用的时候看着改。

分享:

有些事情是勉强不来的,勉强自己做的事就是不合适的事,硬逼自己只会把自己逼垮喔。

如果本文对你有帮助的话,点个赞吧,谢谢!

Golang 提取视频中音频,存为MP3格式 | Golang工具相关推荐

  1. Golang 提取视频中音频,存为WAV格式 | Golang工具

    目录 前言 环境依赖 代码 总结 前言 本文提供将视频中音频提取出来存为wav格式,一如既往的实用主义. 主要也是学习一下golang使用ffmpeg工具的方式. 环境依赖 ffmpeg环境安装,可以 ...

  2. 如何从视频中提取音频?这几个提取视频中音频的软件推荐给你

    在数字化时代,我们可以通过视频学习.娱乐.交流等,但有时候我们需要视频中的音频,例如提取视频中的配乐.音效.台词等.下面将给大家解答如何从视频中提取音频,我们一起看下去吧! 推荐方法一:使用" ...

  3. 用计算机如何换成音乐,win10电脑中怎么将视频转换成音频mp3格式

    近日有win10系统用户想要将视频转换成音频mp3格式,但是却不知道要怎么操作,其实我们可以利用第三方工具就可以实现,本文就给大家带来win10电脑中将视频转换成音频mp3格式的详细操作步骤吧. 具体 ...

  4. gpj文件怎么转化成html,MP4视频中提取的音频默认是MP3格式?如何转成WAV?

    有些时候,我们经常需要转换视频格式,一般遇到这种问题使用专业的视频格式转换器一键转换就可以了.但是近日有小伙伴问,如果需要提取视频中的音频,而且还需要将此音频转换成WAV格式,可以怎样实现呢? 说到提 ...

  5. 视频转mp3 kux视频怎么转换成mp3格式

    如果你在看一部电影,发现里面的背景音乐配音非常好听,想要下载把它放到手机上做铃声之类的,可是却找不到歌名叫什么?有什么办法找到呢?其实不用费心思去找,这里教给大家一个方法,可以利用迅捷视频转换器把它转 ...

  6. 从flv文件中提取音频并存储为mp3格式

    在优酷上下载了一些教学视频,为了把它们放到mp3里面,需要从这些flv文件中提取出音频数据并存储为mp3格式. 操作系统是centos 5.3. 在网上搜索了一下,找到以下方法: 方法一:使用menc ...

  7. php视频提取音频,怎么提取视频中音频文件?视频文件如何分离提取出音频文件?视频转换成音频的方法...

    快要过年啦,小编在这里提前祝大家新年快乐,万事如意,嘻嘻(#^.^#).今天就能回家啦,好激动٩(๑>◡ 首先呢,我们需要先通过上方的连接诶下载我们所要用到的软件,下载完成之后解压缩包,在打开的 ...

  8. 【ffmpeg】批量提取视频中音频

    最近有个需求是下载今日头条上的视频,然后把音频提取出来 最开始的方案是用硕鼠下载视频,然后用PR处理导出,后来觉得一个一个视频在PR里导入导出太麻烦 想到ffmpeg可以处理视音频,于是尝试了一下,具 ...

  9. javacv 视频转音频(提取视频中音频)

    1.工程项目中添加依赖 <dependency><groupId>org.bytedeco</groupId><artifactId>javacv-pl ...

最新文章

  1. Re:从零开始的机器学习 - Machine Learning(一) 线性回归
  2. 第三届中国云计算用户大会笔记和心得
  3. java类型转换_JAVA类型转换大全
  4. Win7(64位)下安装Anaconda+Tensorflow(cpu)
  5. Android自动填充短信验证码
  6. 【图像】直方图均衡化
  7. idea 代码格式化插件_IDEA非常棒的插件,阿里巴巴约定成文的代码公约规范
  8. PHP在浏览器中被拒绝请求,php控制请求页面浏览器缓
  9. 如何用ZBrush快速绘制身体
  10. 群晖如何建php网站_群晖建博客详细教程
  11. 高项_第十二章项目采购管理
  12. (原创)六度拓扑(www.6dtop.com)---超乎想像的人际关系网络
  13. 探店「无聊猿」BAYC 主题餐厅:食物都很棒,口味超预期,有点小贵
  14. java 图像梯度检测_opencv学习笔记(六)---图像梯度
  15. CAN总线车联网透传云网关简介
  16. office图标不能正常显示
  17. 信用评分与数据挖掘(一~七)
  18. Android SD卡简单的文件读写操作
  19. 程序员的8个级别,你属于哪个级别?
  20. 点燃我,温暖你,李峋同款爱心代码!

热门文章

  1. PaddleOCR报错Process finished with exit code
  2. SAP MM ME57 把PR转成PO
  3. 【数据结构初阶】:栈和队列的实现(用C语言实现,附图详解和附源码)
  4. SpringMvc+饿了么UI组件+七牛云做图片上传
  5. 栈的初始化,入栈和出栈
  6. c语言程序设计对角矩阵,从键盘输入一个4*4矩阵,并求这个4*4矩阵主对角线元素之和,并输出.球C语言程式设计...
  7. 16个最佳PSD文件下载网站
  8. 使用ccache大幅度加速gcc编译速度
  9. 求三个数的最小公倍数的解法之美
  10. 如何读到一个文件的最后更新日期和时间