java怎么从视频中提取声音文件?通过程序批量提取视频中的MP3声音出来

版权声明:本文为作者原创文章,转载请附上原文出处链接和本声明。
本文链接:https://www.weijc.cn/jdetail/1584290387975

环境准备: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时候的提示。访下载可能需要翻墙,

1.下载

ffmpeg下载链接:http://ffmpeg.org/download.html

yasm下载链接:http://www.linuxfromscratch.org/blfs/view/svn/general/yasm.html

lame下载接:https://sourceforge.net/projects/lame/files/lame/

第二步:解压/配置/编译/安装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还提供了很多有用的工具可以查看和处理音视频文件,如:

查看视频文件的音视频编解码格式,视频时长,比特率等

展开阅读全文
还能输入1000个字符