采用FFmpeg从视频中提取音频(声音)保存为mp3文件

标签: ffmpeg 视频 音频 | 发表时间:2016-12-09 08:38 | 作者:walksing
分享到:
出处:http://www.iteye.com
采用FFmpeg从视频中提取音频(声音)保存为mp3文件



采用FFmpeg从视频中提取音频(声音)保存为mp3文件
作者:雨水,日期:2016年1月9日 CSDN博客:http://blog.csdn.net/gobitan

摘要:看到好的视频文件,如果想把其中的音频(声音)提取出来。网络上肯定有不少类似工具,但作为技术人员提到音视频处理,肯定会想到FFmpeg。本文介绍了如何基于FFmpeg从视频中提取音频,然后将音频保存为mp3格式的音频文件。

环境准备:Ubuntu desktop 12.04

第一步:下载mp3的编码库
因为FFmpeg默认只支持mp3的解码,不支持mp3编码。如果想把提取出来的音频保存为mp3格式肯定就需要mp3格式的编码库。因此,想输出mp3文件,需要借助第三方的mp3编码库。这里采用LAME编码库,即Lame Aint an MP3 Encoder(A high quality MP3 encoder). LAME库可以从http://lame.sourceforge.net/下载到。我这里下载的时候选择的版本是3.98,文件名为lame-398.tar.gz,大约1M多。具体版本的选择参考后面编译ffmpeg时候的提示。访下载,可以在这里找到 http://download.csdn.net/detail/gobitan/9397485。

第二步:解压/配置/编译/安装LAME mp3编码库
分别执行如下步骤完成安装:
dennis@ubuntu14:~$ tar zxf lame-398.tar.gz
dennis@ubuntu14:~$ cd lame-398/
dennis@ubuntu14:~/lame-398$ ./configure
dennis@ubuntu14:~/lame-398$ make
dennis@ubuntu14:~/lame-398$ sudo make install

第三步:下载FFmpeg安装包
FFmpeg的安装包可以从http://ffmpeg.org/下载,当前最新的版本为2.8.4,下载后的文件为ffmpeg-2.8.4.tar.bz2,大约8M左右。

第四步:解压/配置/编译/安装FFmpeg
将下载的安装包上传到ubuntu,然后做如下步骤:
(1) 解压
dennis@ubuntu:~$ tar xf ffmpeg-2.8.4.tar.bz2
dennis@ubuntu:~$ cd ffmpeg-2.8.4/
(2) 配置
由于需要加载第三方mp3支持库,因此在配置的时候需要添加一个配置选项--enable-libmp3lame,配置选项的查询可以通过help命令来查看,如下所示:
dennis@ubuntu:~/ffmpeg-2.8.4$ ./configure --help|grep mp3
  --enable-libmp3lame      enable MP3 encoding via libmp3lame [no]
执行如下命令进行配置:
dennis@ubuntu14:~/ffmpeg-2.8.4$ ./configure --enable-libmp3lame --disable-yasm
如果第一步的LAME mp3库没有安装好,就会出现类似如下的错误:
ERROR: libmp3lame >= 3.98.3 not found
注:上面可以提供与ffmpeg匹配的LAME库的版本。
(3) 编译
dennis@ubuntu:~/ffmpeg-2.8.4$ make
(4) 安装
dennis@ubuntu:~/ffmpeg-2.8.4$ sudo make install
(5) 配置共享库
dennis@ubuntu:~$ sudo vi /etc/ld.so.conf
dennis@ubuntu:~$ sudo ldconfig -v
如果缺失这一步后面提取的时候会报如下的错误:
ffmpeg: error while loading shared libraries: libmp3lame.so.0: cannot open shared object file: No such file or directory

第四步:寻找一个可以测试的视频文件
我这里在贝瓦儿歌网下载了小苹果的视频,网址:http://g.beva.com/kan-erge/xiao-ping-guo.html#1802,大约23M。将文件重命名为apple.mp4.

第五步:执行音频提取
dennis@ubuntu:~$ ffmpeg -i apple.mp4 -f mp3 -vn apple.mp3
参数解释:
-i 表示input,即输入文件
-f 表示format,即输出格式
-vn表示vedio not,即输出不包含视频
对比源视频文件和提取得到的音频文件大小,可以看到源视频文件为约23M,而提取出来的音频文件大小为3M。
dennis@ubuntu:~$ ls -lrt
-rw-rw-r--  1 dennis dennis 24118025 Jan  9 02:52 apple.mp4
-rw-rw-r--  1 dennis dennis  3379969 Jan  9 02:54 apple.mp3
dennis@ubuntu:~$

第六步:扩展信息
FFmpeg还提供了很多有用的工具可以查看和处理音视频文件,如:
查看视频文件的音视频编解码格式,视频时长,比特率等,如下:
dennis@ubuntu:~$ ffmpeg -i apple.mp4
ffmpeg version 2.8.4 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --enable-libmp3lame --disable-yasm
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'apple.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    encoder         : Lavf54.6.100
  Duration: 00:03:31.24, start: 0.000000, bitrate: 913 kb/s
    Stream #0:0(und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 780 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
At least one output file must be specified
dennis@ubuntu:~$

参考资料:
1. http://ffmpeg.org/  FFmpeg官网
2. http://lame.sourceforge.net/ LAME mp3编解码官网
3. http://blog.csdn.net/jcwkyl/article/details/5313297  从flv文件中提取音频并存储为mp3格式
4. http://blog.chinaunix.net/uid-11344913-id-3930867.html   编译支持MP3与H264编码的ffmpeg


已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [ffmpeg 视频 音频] 推荐:

采用FFmpeg从视频中提取音频(声音)保存为mp3文件

- - 行业应用 - ITeye博客
采用FFmpeg从视频中提取音频(声音)保存为mp3文件. 采用FFmpeg从视频中提取音频(声音)保存为mp3文件. 作者:雨水,日期:2016年1月9日 CSDN博客:http://blog.csdn.net/gobitan. 摘要:看到好的视频文件,如果想把其中的音频(声音)提取出来. 网络上肯定有不少类似工具,但作为技术人员提到音视频处理,肯定会想到FFmpeg.

ffmpeg裁剪合并视频

- - inJava
这里裁剪是指时间轴裁剪,不是空间裁剪. 比如说,你想把视频的从一分20秒开始,30秒的视频裁剪出来,保存成一个视频. ffmpeg提供简单的命令参数:. -ss 开始时间,如: 00:00:20,表示从20秒开始;. -t 时长,如: 00:00:10,表示截取10秒长的视频;. -i 输入,后面是空格,紧跟着就是输入视频文件;.

ffmpeg 视频转码例子集合

- - 开源软件 - ITeye博客
-muxrate 复用码率,设置之后整体码率模式才是CBR. -c:v mpeg2video MPEG2视频编码. -flags ildct+ilme 隔行扫描. -top 隔行扫描前场/后场优先模式 ,1是前场(顶场),0是后场(底场). -streamid 设置视频、音频PID,0视频,1音频.

ffmpeg 录制udp电视信号,视频文件

- - 开源软件 - ITeye博客
ffmpeg -i udp://@:6980  -map 0:p:254  -acodec copy -vcodec copy -sameq  254.ts -map 0:p:255  -acodec copy -vcodec copy -sameq   255.ts  -map 0:0 -map 0:0.

使用ffmpeg合并视频文件的三种方法

- - biAji HeRe
ffmpeg合并视频的方法有三种. 其实在ffmpeg的 FAQ文档中有比较详细的说明. 使用concat协议进行视频文件的合并. 这种方式的适用场景是:视频容器是MPEG-1, MPEG-2 PS或DV等可以直接进行合并的. 换句话说,其实可以直接用cat或者copy之类的命令来对视频直接进行合并.

[原]FFmpeg续篇:截取视频片段转成GIF动画

- - 呦呦鹿鸣
前段时间写过 一篇文章,介绍了FFmpeg的几个常用的命令行. 最近,项目里需要做一个把视频片段转成GIF动画的功能,便于用户分享到微博. 惊奇地发现,原来强大的FFmpeg是支持的. 可以简单地执行下面的命令行:. 意思是:将D:\Media目录下的源文件bear.wmv,从第25秒的位置开始,截取10秒长度的视频转成GIF文件,保存为D:\a.gif.

利用ffmpeg和SDL实现一个跨android版本的音视频播放器

- - ITeye博客
绝对原创:转载请注明出处. 1:从 http://www.libsdl.org/tmp/下载SDL for android 版本(我下载的是 SDL-1.3.tar.gz ). 2:从 https://github.com/havlenapetr/FFMpeg下载 havlenapetr 的ffmpeg for android版本.

ffmpeg轉檔

- - SSORC.twSSORC.tw
ffmpeg 是一個命令列工具,用來對視訊檔案轉換格式. -i = 來源影片 (後面的參數先不接的話可以查看來源影片的詳細資訊,可供想要轉成什麼品質的參考). -vcodec = video code (如果要保留原格式就用 -vcodec copy). -acoder = audio code  (如果要保留原格式就用 -vcodec copy).

在Linux上将视频转换成动态gif图片 (附:ffmpeg和ImageMagick安装方法)

- - 操作系统 - ITeye博客
虽然曾经被认为是过时的艺术形式,但动态GIF图片现在复苏了. 如果你还没有留意到,不少在线分享和社交网络网站都开始支持动态GIF图片,例如, Tumblr, Flickr, Google+和 Facebook的部分地方. 由于在消费和共享上的容易,GIF的动画已经成为主流互联网文化的一部分了.

玩转 FFmpeg 的 7 个小技巧

- mk - OSMSG
FFmpeg堪称音频和视频应用程序的瑞士军刀,提供了丰富的选项和灵活性.很多时候用户为了看视频和听音乐都安装了ffmeg.更多关于ffmeg的详细介绍:here,可以通过ffmpeg -formats查看FFmpeg支持的视音频格式,左侧若是E表明可以编码,D表明可以解码. 本文着重介绍命令行下ffmeg的7个技巧:.