FFmpeg音视频转换


本文介绍如何在Linux服务器安装FFmpeg并完成音频转码。

概述

微信语音以amr格式存储,但是目前大部分浏览器并不支持该视频格式在浏览器内直接播放,需要将其转换为mp3格式,下面记录在Linux服务器上正确安装FFmpeg的过程。

正文

◆ 安装 Lame

1
2
3
4
5
tar -zxvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --enable-shared
make
make install

◆ 安装 FFmpeg

1
2
3
4
5
tar -jxvf ffmpeg-3.1.3.tar.bz2
cd ffmpeg-3.1.3
./configure --enable-shared --disable-yasm --enable-libmp3lame
make
make install

◆ 修改服务器配置

1
2
vim /etc/ld.so.conf 在文件末尾添加/usr/local/lib
ldconfig -v

◆ 音频转换

1
ffmpeg -i test.amr out.mp3

转换过程输出内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ffmpeg version 3.1.3 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.4.6 (GCC) 20110731 (Red Hat 4.4.6-3)
configuration: --enable-shared --disable-yasm --enable-libmp3lame
libavutil 55. 28.100 / 55. 28.100
libavcodec 57. 48.101 / 57. 48.101
libavformat 57. 41.100 / 57. 41.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 47.100 / 6. 47.100
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
[amr @ 0x1575360] Estimating duration from bitrate, this may be inaccurate
Input #0, amr, from 'test.amr':
Duration: 00:00:01.56, bitrate: 5 kb/s
Stream #0:0: Audio: amr_nb (samr / 0x726D6173), 8000 Hz, mono, flt
[mp3 @ 0x1587140] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
Output #0, mp3, to 'out.mp3':
Metadata:
TSSE : Lavf57.41.100
Stream #0:0: Audio: mp3 (libmp3lame), 8000 Hz, mono, fltp
Metadata:
encoder : Lavc57.48.101 libmp3lame
Stream mapping:
Stream #0:0 -> #0:0 (amr_nb (amrnb) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
test.amr: Input/output error
size= 2kB time=00:00:01.58 bitrate= 10.0kbits/s speed= 193x
video:0kB audio:2kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 15.104167%

异常处理

yasm/nasm not found or too old. Use –disable-yasm for a crippled build.
执行./configure时出现该错误,则使用--disable-yasm

error while loading shared libraries: libavdevice.so.52
在执行音频转换命令时报错,原因是缺少了上文中提到的修改服务器配置过程。

Encoder (codec mp3) not found for output stream #0:0
在执行音频转换命令时报错,原因是没有安装Lame。

转载请注明出处:http://yurixu.com/blog/2016/09/02/FFmpeg音视频转换

— 完结 —

分享 本文总阅读量
< !-- add by yurixu 替换Google的jquery并且添加判断逻辑 -->