从视频文件提取音频并存储为MP3格式文件

C++调用libmp3lame实现压缩WAV为MP3【附VS2013项目】 The LAME Project LAME is a high quality MPEG Audio Layer III (MP3) encoder licensed under the LGPL.  VS2013项目(libmp3lame, 可直接编译)下载链接:http://pan.baidu.com/s/1eQnqS9c 密码:5mg3 /******************** 阅读详情

在linux世界里,进行视频格式转化的软件有很多,其中大名鼎鼎的ffmpeg和mplayer下的mencoder。本文主要介绍如何从视频文件中提起音频,同时保存成mp3格式的文件。

格式转换其实就是经过解码和重新编码两个过程,如果系统不存在对应的解、编码器,就需要额外安装。ffmpeg自带了MP2格式的编码器,对于MP2格式的音频,普通电脑上的播放器似乎都能支持,但大部分手机的播放器不支持,所以为了通用,还是生成MP3格式的音频。MP3编码器可以使用lame。

在centos和ubuntu下,ffmpeg似乎不在标准的源中,不能使用yum或apt-get来安装,其实源码安装也是很容易的,这里就介绍的就是通过源码安装,安装前确保机器上有gcc,如果没有安装,先通过yum安装。

安装 lame

下载地址:http://sourceforge.net/projects/lame/files/lame/

使用wget下载到本机
wget http://nchc.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz

解压文件:
tar -xvf lame-3.99.5.tar.gz

编译安装:
cd lame-3.99.5
./configure && make && make install

检查本机是否有yasm(不知道是干什么用的),在ffmpeg执行configure时会用到它,不过可以disabled掉,也可以装上它
安装yasm:

下载地址:http://www.tortall.net/projects/yasm/releases/

下载文件:
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz

解压并编译安装:
tar -xvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure && make && make install

安装ffmpeg

下载地址:http://www.ffmpeg.org/download.html

下载文件:
wget http://www.ffmpeg.org/releases/ffmpeg-0.10.2.tar.bz2
也可以使用svn、git下载最新版本

解压文件:
tar -xvf ffmpeg-0.10.2.tar.bz2

编译安装:
cd ffmpeg-0.10.2
./configure --prefix=/usr/local/ffmpeg --enable-libmp3lame
make && make install

--enable-libmp3lame 是让ffmpeg在编码时可以使用MP3编码器

至此,软件都安装好了。注意:如果使用ffmpeg出现如下错误信息:

ffmpeg: error while loading shared libraries: libmp3lame.so.0: cannot open shared object file: No such file or directory

其原因是lame编译好的库文件安装在/usr/local/lib/下,而ffmpeg是去/usr/lib/下找,解决的办法是做一个软链接即可:

ln -s /usr/local/lib/libmp3lame.so.0 /usr/lib/libmp3lame.so.0

假设视频文件名称为01.flv,下面详细介绍如何从里面提取去音频。

通过ffmpeg来查看视频文件信息:

ffmpeg -i 01.flv

输出大致为:
  Duration: 00:01:10.21, start: 0.000000, bitrate: 284 kb/s
    Stream #0.0: Video: h264, yuv420p, 512x288 [PAR 513:512 DAR 57:32], 252 kb/s, 15 tbr, 1k tbn, 30 tbc
    Stream #0.1: Audio: aac, 44100 Hz, stereo, s16, 32 kb/s

可以看到音频编码用的acc,所以需要看看ffmpeg是否支持acc的解码,命令为:

ffmpeg -codecs | grep aac

如果看到下面类似输出,表示支持
DEA    aac             Advanced Audio Coding

DEA中的D表示decoder,E表示encoder,A表示Audio Codec

由于要转换成MP3格式的音频,所以就需要查看是否存在MP3编码器,命令为:

ffmpeg -codecs | grep mp

如果输出中存在如下信息即表示支持
  EA    libmp3lame      libmp3lame MP3 (MPEG audio layer 3)

DEA    mp2             MP2 (MPEG audio layer 2)

注意:如果没有看到libmp3lame,就不能进行MP3格式的编码,但是可以使用MP2格式的编码,一个很奇怪的问题,我在一台机器上编译ffmpeg时候使用enable lame,安装ffmpeg还是不支持MP3编码,另外一台机器上就是好的。不过可以通过lame来把MP2格式的音频转换为MP3格式,所以就算ffmpeg在编译时候没有指定使用MP3编码器,也一样可以得到MP3格式的音频文件。

有了上面的知识,现在就来说怎么从视频中获取音频

1、先获取MP2编码的音频在使用lame来重新编码 
ffmpeg -i 01.flv -f mp2 -vn t.mp3
lame t.mp3 01.mp3

-i 输入文件, -f 输出使用的编码格式  -vn 禁止视频输出   t.mp3 输出的文件名
使用lame命令还可以在MP3文件中增加一些额外信息,更多信息可以使用 lame --help id3 查看

2、一步到位直接使用MP3编码器 
ffmpeg -i 01.flv -f mp3 -vn 01.mp3
或
ffmpeg -i 01.flv -acodec libmp3lame -vn 01.mp3

另外使用mplayer和mencoder获取音频命令为:

mencoder 01.flv -oac mp3lame -ovc lavc -o t.avi

mplayer -dumpaudio -dumpfile 01.mp3 t.avi

现在很多视频网站上的一个长视频都是分成很多小段的,如何把一个长视频音频提取到一个音频文件中,在linux中,借用cat命令就很容易实现。假设视频有三段,先使用上面提到的命令获取三个独立的音频文件01.mp3、02.mp3和03.mp3,合并的命令为:

cat 01.mp3 02.mp3 03.mp3 > comp.mp3
如何使用Python来提取视频中的音频 如何使用Python来提取视频中的音频 在这篇文章中,我将解释如何使用Python来提取视频中的音频提取结束之后,你将得到视频中的音频文件,之后,你便可以把音频文件用在其它项目中。整个过程可以拆分成以下几步: 安装ffmpeg和MoviePy 读取视频文件 输出音频文件 一个完整的例子 安装ffmpeg和MoviePy 为了操作视频文件,我们需要执行以下命令来安装Python的两个第三方库:ffmpeg和MoviePy,后者依赖前者。 pip install ffmpeg moviepy 读取视频 阅读详情

相关推荐

MP3音频提取软件:从视频提取音频的实用工具

音频编码格式是数字音频处理的重要组成部分,它关系到音乐文件的存储、传输效率及音质表现。MP3(MPEG-1 Audio Layer 3)编码格式凭借其高压缩比和相对优秀的音质表现,成为了数字音频领域广泛使用的标准之一。音频提取软件的主界面通常包括以下几个核心元素:菜单栏:提供文件操作、视图调整、设置选项等。工具栏:快捷访问常用功能,如添加文件、提取、保存等。预览窗口:展示选定视频的内容,使用户可以选择特定的音频轨道。信息栏:显示软件状态、操作提示和错误信息。

weixin_35364187的博客 1238

lameHelper:LAME 库的 C++ 包装器,可将 PCM (*.wav) 转换为 mp3,反之亦然,只需两行代码

跛脚助手 LAME 库的 C++ 包装器,可将 PCM (*.wav) 和 mp3 的转换减少到仅两行代码。 视窗 来自CodeProject的文章,在Github中看不到,所以创建它供公众使用。 苹果电脑 基于Windows版本修改 在 Mac 上为 Mac 应用编译蹩脚的脚本: 在 Mac 上为 iOS 应用编译蹩脚的脚本:

视频MP3音频提取实用指南

音频提取工具是处理音视频文件不可或缺的软件。在本节中,我们将介绍一些常见的音频提取工具,对它们的安装和配置方法进行详细介绍。音频提取工具种类繁多,它们各自具有不同的特点和优势。以下是一些广泛使用的音频提取工具::VLC不仅是一个功能强大的媒体播放器,还内置了音频提取功能,支持多种格式,且完全免费。Audacity:作为开源音频编辑器,Audacity也提供了导入视频文件提取其中音频的功能。:一款多功能的转换工具,支持音频视频及图片的格式转换,用户界面友好,操作简单。

weixin_35414484的博客 1267

VC++录音程序压缩保存为MP3格式

内容索引:VC/C++源码,多媒体技术,录音  一款极小强的VC录音程序,不过使用了控件,它在录音过程中会自动压缩已录好的音频MP3,录音完成压缩也即将完成,对长时间录音非常合适。另外它还可以录制单声道、多声道、双声道立体声的声音,录音和回放显示波形图,貌似很专业的东西,希望对此有研究的朋友和本人一起探讨改进程序,越做越好。

ffmpeg源码实现抽取音频保存 --C++实现

使用ffmpeg库实现,抽取视频中的音频信息,进行保存 // // Created by andrew on 2020/11/1. // #include <iostream> extern "C" { #include <libavutil/log.h> #include <libavformat/avformat.h> } // aac每帧开头都要填写对应的格式信息 void adts_header(char *szAdtsHeader, int dataLen

andrewbytecoder 2593

视频提取音频

from moviepy.editor import * video = VideoFileClip('qifengle.flv') audio = video.audio audio.write_audiofile('qifengle.mp3')

qq_37799664的博客 236

利用FFmpeg无损提取视频中源音频

今天要从视频中扒一个谱出来,想把音频提取出来。有损提取方法很多了,利用格式工厂啊,视频编辑软件啊,开内录啊很多方法。但是我想要的是无损提取。 1. MediaCoder 首先尝试了MediaCoder中的“复制音频流”选项,但是怎么调都不行,点开始就卡住。后来在国外论坛上发现2010年就有人提出这个功能用不了,帖子每层都表示用不了。看来这个功能是现在都没有做好。 2. FFmpeg 找了很多软件,...

tomwillow的博客 3万+

从flv文件中提取音频存储mp3格式

从flv文件中提取音频存储mp3格式

qq_43668159的博客 2008

使用ffmpeg从视频文件提取音频文件、视频抽帧和切割视频

使用ffmpeg从视频文件提取音频文件、视频抽帧和切割视频

ZZZZ_Y_的博客 8334

VC++ 录音储存为MP3编码

VC++ 录音储存为MP3编码 源码 很实用

全面MP3音频转换解决方案

MP3(MPEG Audio Layer III)是一种音频编码格式,它能在相对较高质量下压缩音频文件的大小,这使得它成为互联网上最受欢迎的音频格式之一。MP3格式的普及,归功于其高效的压缩算法,能够在节省存储空间的同时,保持了良好的听觉体验。

weixin_42601547的博客 960

如何提取左声道音频_软件应用:如何从视频文件提取音频

有的时候,我们看电影或者电视剧的时候,发现里面有很多好的歌,或者某首MV 某个视频里抽的声音需要保存,如果保存视频占用的空间太大,这时候我们就可以把视频里的声音提出出来。那么,下面我就来看看怎么提取视频文件中的音频。一、用播放软件的音频录制功能利用Potplayer视频播放软件的声音录制功能,在播放视频的过程中可以将声音顺便录制出来。先在Potplayer中打开视频文件进行播放,暂停播放,通过播...

weixin_39793576的博客 2558

使用 FFmpeg 提取音频的详细指南

FFmpeg 是一个开源的多媒体处理工具,支持视频音频的编码、解码、转换等多种功能。通过 FFmpeg,提取视频中的音频保存为各种格式非常简单和高效。这在音视频剪辑、媒体处理、转码等场景中具有广泛的应用。本文将详细讲解如何使用 FFmpeg 提取音频,包括常见的音频格式提取音频质量调整、高级处理操作等。内容浅显易懂,适合初学者快速掌握。

繁依Fanyi的博客 6058

Qt 中 将MP4 转换成 MP3 C++实现

在C++中使用Qt框架进行开发时,可以利用Qt的多媒体模块来处理音视频文件。以下是一个完整的示例,展示如何使用Qt将MP4视频转换为MP3音频。我们将利用Qt提供的和类。

抟土成人祖,炼石补青天。眼中览银河,手可摘星辰。 538

C++ 把pcm文件转换成mp3文件

可以使用 LAME 中的 lame 命令行工具来将 PCM 文件转换为 MP3 文件。 例如,你可以在命令行中使用以下命令来转换 PCM 文件: lame -b 192 input.pcm output.mp3 其中,-b 参数用于指定码率(单位为 kbps),input.pcm 是输入文件的名称,output.mp3 是输出文件的名称。 另外,你还可以使用其他工具,如 ffmpeg、Audaci...

weixin_42578963的博客 853

音频转化为MP3格式(lame库)

通过lame音频转码为mp3格式音频文件...

DCSnail-蜗牛 4398

FFmpeg:生成一个合成立体声(附完整源代码)

FFmpeg:生成一个合成立体声(附完整源代码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 588
上一篇: extern用法
下一篇: PCM转MP3音频文件(借助lame库)
科学帝威
博客等级 码龄11年 44粉丝 48原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值