linux安装ffmpeg#ffmpeg取音频时长

 首先要安装各种解码器 
 1、lame 
lame-3.99.5.tar.gz 
Url:http://sourceforge.net/project/showfiles.php?group_id=290&package_id=309 
安装方法如下:

1     tar -zxvf lame-3.99.5.tar.gz  
2     cd lame-3.99.5  
3     ./configure  
4     make  
5     make install  
 
  
如果出现如下错误:
 
 
 
no acceptable C compiler found in $PATH
(在线安装gcc)# yum -y install gcc
 
  
 
  
 
  
 
  
 
 
2、libogg
libogg-1.3.2.tar.gz 
Url:http://www.xiph.org/downloads/ 
安装方法如下:
1  tar -zxvf libogg-1.3.2.tar.gz 
2  cd libogg-1.3.2
 
3  ./configure 
 
4  make 
 
5  make install
 
3、libvorbis 
libvorbis-1.1.2.tar.gz 
Url:http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.gz
(libvorbis依赖于libogg, 所以libogg必须先于libvorbis安装)
安装方法如下:
 
1     tar -zxvf libvorbis-1.1.2.tar.gz 
2     cd libvorbis-1.1.2
3     ./configure
4     make  
5     make install  
出现如下错误
error: C++ preprocessor "/lib/cpp" fails sanity check See `config.log' for more details 
 
# yum install glibc-headers
# yum install gcc-c++


 
  



4、xvid 
xvidcore-1.3.2.tar.gz 
Url:http://downloads.xvid.org/downloads/xvidcore-1.3.2.tar.gz 
安装方法如下:
 
 
 
1     tar zvxf xvidcore-1.3.2.tar.gz  
2     cd xvidcore-1.3.2/build/generic/generic/ 
3     ./configure
4     make  
5     make install   
 
  
5、x264 
latest_x264.tar.bz2 (其中包含的目录是 x264-snapshot-20131023-2245) 
Url:http://www.videolan.org/developers/x264.html 
ftp://ftp.videolan.org/pub/videolan/x264/snapshots/ 
安装方法如下:
 
1    tar -jxvf latest_x264.tar.bz2
2     ./configure 
3     make 
4     make install 

出现如下错误:
Minimum version is yasm-1.2.0 If you really want to compile without asm, configure with --disable-asm. 提示没有asm 汇编工具,我们要先安装一下 asm

tar zxvf yasm-0.7.2.tar.gz
cd yasm-0.7.2
./configure
make
make install







6、libdts 
libdca-0.0.5.tar.bz2
Url: http://www.videolan.org/developers/libdca.html
安装方法:
1    tar -jxvf  libdca-0.0.5.tar.bz2
2    ./configure
3     make 
4     make install 




7、a52 
a52dec-0.7.4.tar.gz           (这个库从2002年就没有更新过了)
http://liba52.sourceforge.net/downloads.html       
安装方法:
1     tar -vxvf  a52dec-0.7.4.tar.gz
2     ./configure
3     make 
4     make install 


8、faad2 
faad2-2.7.tar.gz  
http://www.audiocoding.com/downloads.html  
安装方法

 
1     tar -vxvf  faad2-2.7.tar.gz
2     ./configure
3     make 
4     make install 



9、faac 
faac-1.28.tar.gz  
http://www.audiocoding.com/downloads.html
安装方法
1     tar -vxvf faac-1.28.tar.gz
2     ./configure
3     make 
4     make install 


10、amr-nb 
amrnb-10.0.0.0.tar.bz2  
http://ftp.penguin.cz/pub/users/utx/amr/  ( 从此处下载最新版本 )
安装方法:

1    t ar -vxvf  amrnb-10.0.0.0.tar.bz2     
2     ./configure
3     make 
4     make install 


11、amr-wb 
amrwb-7.0.0.1.tar.gz
http://ftp.penguin.cz/pub/users/utx/amr/ ( 从此处下载最新版本 )
安装方法:

tar -vxvf amrwb-7.0.0.1.tar.gz
2 ./configure
3 make
4 make install



   

     12、最关键的一步, 安装ffmpeg 
     ffmpeg-0.4.9-p20051120.tar.bz2

      1    tar -jxvf ffmpeg-0.4.9-p20051120.tar.bz2
      2    ./configure
    3 make 
  4 make install 
   


 
 在./configure的时候会报错, 提示说没有libopencore-amrnb和libopencore-amrwb两个库. 我参考了 [2], 使用如下命令安装它们:
 
1
sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev

查看版本 ffmpeg -version  
查看是否支持编码解码 DE    D代表Decode(编码) E代表Encode(解码)  ffmpeg -formats
查看帮助 ffmpeg -help





ffmpeg所有的安装tag.gz

http://yunpan.cn/cwHG5PBWfF8Xe  访问密码 de12





amr转MP3插件





源码包地址:
http://yunpan.cn/cw3QMRRfRVcpD  访问密码 a296
很好的2片文章
http://my.oschina.net/ethan09/blog/372435?p=1





Linux获取音频时长: ffmpeg -i /usr/test.mp3 2$amp;>amp;$amp;1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//


             /**
                         * ffmpeg获取音频时长
                         *  @return
                         */
                          public  static  String getAudioTimeLength(File file){
                                    StringBuffer ffmpeg_shell=  new  StringBuffer();
                                    ffmpeg_shell.append(  "ffmpeg" );
                                    ffmpeg_shell.append(  " " );
                                    ffmpeg_shell.append(  "-i " +file.getPath());
                                    ffmpeg_shell.append(  " " );
                                    ffmpeg_shell.append(  "2$amp;" );
                                    ffmpeg_shell.append(  ">amp;" );
                                    ffmpeg_shell.append(  "$amp;" );
                                    ffmpeg_shell.append(  "1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//" );
                                    
                                    System.  out .println(  "执行的命令集合  "  +ffmpeg_shell.toString());
                                    
                                    String os = System. getProperty( "os.name" ); 
                                    String shell[];
                                      if (os.toLowerCase().startsWith(  "win" )){ 
                                                shell=  new  String[]{  "cmd" ,ffmpeg_shell.toString()}; 
                                    }  else {
                                                shell=  new  String[]{  "/bin/sh" ,  "-c" ,ffmpeg_shell.toString()};
                                    }
                                      return  ShellExcuter. exec(shell);
                        }
                          /**
                         * 格式化音频时长 00:00:07.76
                         */
                          public  static   String formatDurationTime(String duration){
                                      try {
                                                String audioTime=duration.replace( "."  , ":"  ).substring(duration.indexOf( ":" )+1);   
                                                String time_hh=audioTime.substring(audioTime.lastIndexOf( ":"  )-5).split( ":"  )[0]; //时 
                                                
                                                String time_mm=audioTime.substring(audioTime.lastIndexOf( ":"  )-2).split( ":"  )[0]; //分
                                                String time_ss=audioTime.substring(audioTime.lastIndexOf( ":"  )+1); //秒
                                                Calendar calendar= Calendar.getInstance();
                                                calendar.set(Calendar.  HOUR , Integer. parseInt(time_hh));
                                                calendar.set(Calendar.  MINUTE , Integer.parseInt(time_mm));
                                                calendar.set(Calendar.  SECOND , Integer. parseInt(time_ss));
                                                SimpleDateFormat format= new  SimpleDateFormat( "hh:mm" );
                                                String retunTime=format.format(calendar.getTime());
                                                  if (time_hh.contains(  "00" )){
                                                            retunTime=retunTime.replace(  "12" ,  "00" );
                                                }
                                                Integer  sub_ss=Integer.parseInt(duration.substring(duration.lastIndexOf(  "." )).replace(  "." ,  "" ));
                                                  if (sub_ss>60){
                                                            sub_ss=sub_ss%60;
                                                }
                                                  return  retunTime+  ":" +sub_ss;
                                    }  catch  (Exception e) {
                                                  //  TODO : handle exception
                                                System.  out .println(  "格式化当前音频时长错误"  );
                                    }
                                      return  "00:00:00" ;
                        }
                        
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值