Ubuntu 安装 ffmpeg , 支持MP3,H264编码

来源:互联网 发布:成都电商美工培训班 编辑:程序博客网 时间:2024/04/28 16:56

转自:http://blog.csdn.net/s170262941/article/details/23437689

编译支持MP3,H264编码的ffmpeg

ffmpeg原有的系统中支持mp3和h264的解码,但是编码并不支持,所以,需要是应用第三方插件进行支持;

从configure --help可以看出:


点击(此处)折叠或打开

  1. [StevenLiu@liudeMacBook-Pro ffmpeg]$ ./configure --help 
  2.   --enable-libstagefright-h264 enable H.264 decoding via libstagefright [no]
  3.   --enable-libx264 enable H.264 encoding via x264 [no]
  4.  --enable-libmp3lame enable MP3 encoding via libmp3lame [no]


首先系统中需要包含libx264与libmp3lame,这两个lib能够从对应的git中下载得到

MP3编码对应web: http://lame.sourceforge.net/download.php

libx264对应Web: http://www.videolan.org/developers/x264.html

安装mp3编码库


点击(此处)折叠或打开

  1. ./configure
  2. make
  3. make install


安装libx264编码库


点击(此处)折叠或打开

  1. ./configure
  2. make
  3. make install

此处可以改为 ./configure --prefix=/usr/local/x264

以修改安装目录,之后在 /etc/profile 中加入 export PATH="/usr/local/x264/bin:$PATH"

再运行 source /etc/profile

把x264的路径加入到 系统变量里

可以用命令 which x264 测试一下

x264, FFmpeg 的安装都需要yasm支持, 当安装的过程中遇到需要yasm的时候,可以--disabled-yasm,当然,并不建议disabled调,还是安装yasm更好一些

x264需要最新的yasm支持,apt安装的不可用,所以要去官网 http://yasm.tortall.net/Download.html 下载安装


如果需要支持h264与mp3的话,可以使用如下参数进行支持

./configure --enable-libmp3lame --enable-libx264 --enable-gpl

由于libx264的code有GPL信息,所以,支持libx264时,需要--enable-gpl,ffmpeg在license方面还是比我们国内的人更重视

然后make&&make install即编译安装ffmpeg

接下来可以试一下

ok,生成完毕


我使用的配置是

./configure --enable-memalign-hack --enable-ffserver --enable-network --enable-protocols --enable-muxers --disable-yasm --enable-shared --enable-w32threads --enable-libx264 --enable-gpl --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib --prefix=/slq/local/ffmpeg

可以编译,但是没加上--enable-libmp3lame,加上后重新配置编译,我安装了yasm,把这个也打开

./configure --enable-libmp3lame --enable-memalign-hack --enable-ffserver --enable-network --enable-protocols --enable-muxers --enable-yasm --enable-shared --enable-w32threads --enable-libx264 --enable-gpl --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib --prefix=/slq/local/ffmpeg


然后make&&make install即编译安装ffmpeg

记得修改系统变量 PATH

 vi /etc/profile
        加入以下内容:
        FFMPEG=/slq/local/ffmpeg
        PATH加入:$FFMPEG/bin
        5.使修改立即生效
        source /etc/profile


执行 
        ffmpeg -version

出现错误

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

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


发现是没有添加动态链接库,根据网友总结

添加动态链接库
        vi /etc/ld.so.conf
        加入:/usr/local/ffmpeg/lib
        执行
        ldconfig

我的 /etc/ld.so.conf 文件下只有一行

include /etc/ld.so.conf.d/*.conf

所以进入到文件 /etc/ld.so.conf.d/libc.conf 中添加

/slq/local/ffmpeg/lib

/usr/local/x264/lib

执行

sudo ldconfig


测试1    查看版本

ls@ubuntu:/mnt/hgfs/share_ubuntu/FFmpeg-test$  ffmpeg -version
ffmpeg version N-62341-gd9fef74
built on Apr 11 2014 13:39:50 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
configuration: --enable-libmp3lame --enable-memalign-hack --enable-ffserver --enable-network --enable-protocols --enable-muxers --enable-yasm --enable-shared --enable-w32threads --enable-libx264 --enable-gpl --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib --prefix=/slq/local/ffmpeg
libavutil      52. 75.100 / 52. 75.100
libavcodec     55. 58.103 / 55. 58.103
libavformat    55. 36.103 / 55. 36.103
libavdevice    55. 11.100 / 55. 11.100
libavfilter     4.  4.100 /  4.  4.100
libswscale      2.  6.100 /  2.  6.100
libswresample   0. 18.100 /  0. 18.100
libpostproc    52.  3.100 / 52.  3.100
    

测试2  视频转码

ls@ubuntu:/mnt/hgfs/share_ubuntu/FFmpeg-test$ ffmpeg -i test.mp4 -vcodec libx264 -b:v 1200k -r 25 -acodec mp3 -ab 128k -ar 44100 output.mp4
ffmpeg version N-62341-gd9fef74 Copyright (c) 2000-2014 the FFmpeg developers
  built on Apr 11 2014 13:39:50 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --enable-libmp3lame --enable-memalign-hack --enable-ffserver --enable-network --enable-protocols --enable-muxers --enable-yasm --enable-shared --enable-w32threads --enable-libx264 --enable-gpl --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib --prefix=/slq/local/ffmpeg
  libavutil      52. 75.100 / 52. 75.100
  libavcodec     55. 58.103 / 55. 58.103
  libavformat    55. 36.103 / 55. 36.103
  libavdevice    55. 11.100 / 55. 11.100
  libavfilter     4.  4.100 /  4.  4.100
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    creation_time   : 2013-09-06 05:02:55
  Duration: 00:00:19.23, start: 0.000000, bitrate: 535 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 576x432 [SAR 1:1 DAR 4:3], 489 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
    Metadata:
      creation_time   : 2013-09-06 05:02:55
      handler_name    : GPAC ISO Video Handler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 47 kb/s (default)
    Metadata:
      creation_time   : 2013-09-06 05:02:55
      handler_name    : GPAC ISO Audio Handler
[libx264 @ 0x8b7aa20] using SAR=1/1
[libx264 @ 0x8b7aa20] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x8b7aa20] profile High, level 3.0
[libx264 @ 0x8b7aa20] 264 - core 142 r2409 d6b4e63 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=1200 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    encoder         : Lavf55.36.103
    Stream #0:0(und): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 576x432 [SAR 1:1 DAR 4:3], q=-1--1, 1200 kb/s, 12800 tbn, 25 tbc (default)
    Metadata:
      creation_time   : 2013-09-06 05:02:55
      handler_name    : GPAC ISO Video Handler
    Stream #0:1(und): Audio: mp3 (libmp3lame) (i[0][0][0] / 0x0069), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      creation_time   : 2013-09-06 05:02:55
      handler_name    : GPAC ISO Audio Handler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libx264)
  Stream #0:1 -> #0:1 (aac -> libmp3lame)
Press [q] to stop, [?] for help
frame=   19 fps=7.4 q=0.0 size=       0kB time=00:00:00.81 bitrate=   0.5kbits/s dup=3 drop=0 frame=   29 fps=9.3 q=0.0 size=       0kB time=00:00:01.28 bitrate=   0.3kbits/s dup=3 drop=0 frame=   35 fps=9.6 q=0.0 size=       0kB time=00:00:01.28 bitrate=   0.3kbits/s dup=3 drop=0 frame=   37 fps=8.9 q=0.0 size=       0kB time=00:00:01.28 bitrate=   0.3kbits/s dup=3 drop=0 frame=   40 fps=8.1 q=0.0 size=       0kB time=00:00:01.75 bitrate=   0.2kbits/s dup=4 drop=0 frame=   43 fps=7.6 q=33.0 size=      25kB time=00:00:01.75 bitrate= 119.2kbits/s dup=4 drop=0frame=   54 fps=8.7 q=23.0 size=      58kB time=00:00:02.19 bitrate= 217.0kbits/s dup=4 drop=0frame=   82 fps= 12 q=14.0 size=     148kB time=00:00:03.13 bitrate= 386.6kbits/s dup=5 drop=0frame=  118 fps= 16 q=7.0 size=     259kB time=00:00:04.52 bitrate= 469.9kbits/s dup=7 drop=0 frame=  150 fps= 19 q=5.0 size=     424kB time=00:00:05.51 bitrate= 630.4kbits/s dup=8 drop=0 frame=  167 fps= 20 q=4.0 size=     514kB time=00:00:06.37 bitrate= 661.0kbits/s dup=9 drop=0 frame=  197 fps= 23 q=4.0 size=     703kB time=00:00:07.78 bitrate= 739.4kbits/s dup=10 drop=0frame=  227 fps= 25 q=3.0 size=     827kB time=00:00:09.17 bitrate= 738.9kbits/s dup=11 drop=0frame=  259 fps= 27 q=1.0 size=     971kB time=00:00:10.11 bitrate= 786.6kbits/s dup=12 drop=0frame=  297 fps= 29 q=0.0 size=    1177kB time=00:00:11.49 bitrate= 839.0kbits/s dup=14 drop=0frame=  325 fps= 30 q=0.0 size=    1252kB time=00:00:12.85 bitrate= 797.6kbits/s dup=15 drop=0frame=  353 fps= 31 q=0.0 size=    1529kB time=00:00:14.29 bitrate= 876.4kbits/s dup=16 drop=0frame=  387 fps= 33 q=0.0 size=    1708kB time=00:00:15.25 bitrate= 917.2kbits/s dup=17 drop=0frame=  423 fps= 34 q=0.0 size=    1889kB time=00:00:16.61 bitrate= 931.2kbits/s dup=19 drop=0frame=  462 fps= 36 q=0.0 size=    2032kB time=00:00:17.99 bitrate= 924.9kbits/s dup=20 drop=0frame=  478 fps= 35 q=0.0 Lsize=    2304kB time=00:00:19.22 bitrate= 981.8kbits/s dup=21 drop=0    
video:1985kB audio:301kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.816766%
[libx264 @ 0x8b7aa20] frame I:2     Avg QP: 8.27  size: 52434
[libx264 @ 0x8b7aa20] frame P:137   Avg QP: 2.27  size:  9680
[libx264 @ 0x8b7aa20] frame B:339   Avg QP: 3.52  size:  1772
[libx264 @ 0x8b7aa20] consecutive B-frames:  5.2%  0.4%  0.6% 93.7%
[libx264 @ 0x8b7aa20] mb I  I16..4: 50.3% 18.4% 31.4%
[libx264 @ 0x8b7aa20] mb P  I16..4:  1.1%  0.1%  0.6%  P16..4: 21.0%  1.1%  1.2%  0.0%  0.0%    skip:74.9%
[libx264 @ 0x8b7aa20] mb B  I16..4:  0.0%  0.0%  0.1%  B16..8: 10.0%  0.9%  0.6%  direct: 1.0%  skip:87.4%  L0:45.5% L1:50.1% BI: 4.4%
[libx264 @ 0x8b7aa20] final ratefactor: -2.24
[libx264 @ 0x8b7aa20] 8x8 transform intra:12.7% inter:23.3%
[libx264 @ 0x8b7aa20] coded y,uvDC,uvAC intra: 40.2% 41.3% 40.5% inter: 5.3% 6.0% 5.6%
[libx264 @ 0x8b7aa20] i16 v,h,dc,p: 60% 34%  6%  1%
[libx264 @ 0x8b7aa20] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 33% 32% 20%  1%  3%  3%  3%  3%  1%
[libx264 @ 0x8b7aa20] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 23% 16%  4%  7%  9%  8%  6%  6%
[libx264 @ 0x8b7aa20] i8c dc,h,v,p: 75% 14%  8%  3%
[libx264 @ 0x8b7aa20] Weighted P-Frames: Y:0.7% UV:0.0%
[libx264 @ 0x8b7aa20] ref P L0: 91.4%  1.3%  5.2%  2.1%  0.0%
[libx264 @ 0x8b7aa20] ref B L0: 93.9%  5.2%  0.9%
[libx264 @ 0x8b7aa20] ref B L1: 97.3%  2.7%
[libx264 @ 0x8b7aa20] kb/s:850.09


查看转码完成后的多媒体文件的信息:

ls@ubuntu:/mnt/hgfs/share_ubuntu/FFmpeg-test$ ffmpeg -i output.mp4 
ffmpeg version N-62341-gd9fef74 Copyright (c) 2000-2014 the FFmpeg developers
  built on Apr 11 2014 13:39:50 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --enable-libmp3lame --enable-memalign-hack --enable-ffserver --enable-network --enable-protocols --enable-muxers --enable-yasm --enable-shared --enable-w32threads --enable-libx264 --enable-gpl --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib --prefix=/slq/local/ffmpeg
  libavutil      52. 75.100 / 52. 75.100
  libavcodec     55. 58.103 / 55. 58.103
  libavformat    55. 36.103 / 55. 36.103
  libavdevice    55. 11.100 / 55. 11.100
  libavfilter     4.  4.100 /  4.  4.100
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf55.36.103
  Duration: 00:00:19.25, start: 0.025057, bitrate: 980 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 576x432 [SAR 1:1 DAR 4:3], 850 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 44100 Hz, stereo, s16p, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
At least one output file must be specified

0 0
原创粉丝点击