Ubuntu虚拟机编译可以播放avi封装的视频

        最近需要ijkplayer的so库能够解avi封装的视频,网上下载的都没能用上,不知道是不是因为版本的问题,所以自己只好试着编译。

    一.准备工作主要步骤:

     1.安装Ubuntu虚拟机,网上有教程,我的Ubuntu虚拟机版本是14.04。

     2.安装并配置jdk,sdk,ndk,没安装配置的可参考我的安装步骤来,点击:Ubuntu-14.04虚拟机下配置jdk,sdk,ndk环境

     3.官网上说要安装homebrew,git,yasm

  

  我的homebrew是根据:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  git和yasm是根据sudo apt-get install gitsudo apt-get install yasm命令安装的。

   二.环境搭建好之后,拉取ijkplayer的代码:

新建Downloads目录,进入该目录,在Terminal中输入:git clone https://github.com/Bilibili/ijkplayer.git

然后进入根目录ijkplayer

在Terminal中输入:

git checkout -B latest k0.8.8

因为当前版本是0.8.8,所以建一个分支,避免影响主干master上的代码。

敲入git branch 即可看到已切换到latest分支上。

 然后拉取ffmpeg的源码,输入:

    ./init-android.sh

  注:拉取源码的过程相当长,我拉的时候失败了N多次,当时已经急的想要在Windows下拉取,再放到虚拟机里,可是发现找不到ffmpeg,最终坚持不懈,失败了不断拉取,最终成功了。

  三.修改module-lite.sh文件

   因为我需要可以支持播放avi的视频文件,所以我修改了的module-lite.sh这个文件,在最后添加了:

      export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtp"//修改
      export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=tcp"//添加
      export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=rtsp"//添加
      export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=mjpeg"//添加
      export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=mjpeg"//添加
      export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=avi"

   四.编译

      1.进入ijkplayer/config目录下

        rm module.sh

        ln -s module-lite.sh module.sh

      2.回到ijkplayer目录下

      cd android/contrib

     /** 编译前先clean下 **/

     ./compile-ffmpeg.sh clean

     /** 编译ffmpeg ,如果在./compile-ffmpeg.sh后加了all,表示编译各种环境下的so库,不加all只会编译armv7a环境下的库,我只需要armv7a,所以没加all    **/

     ./compile-ffmpeg.sh

    注:如果步骤1用的是module-default.sh,也是可以的,但是需要在modeule-default.sh的最后加入:

   export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-linux-perf"

     3.回到ijkplayer/android目录下

     运行./compile-ijk.sh 来编译ijkplayer,没加all是因为我不需要那么多。

     完了后就可以在/ijkplayer/android/ijkplayer/ijkplayer-armv7a/src/main/libs/armeabi-v7a下找到编译好的库。


    可以点击https://download.csdn.net/download/asla_1/10421247下载


 PS:关于ffmpeg的使用,稍微记录下一点点

  在ffmpeg的官网下载后,首先配置环境变量,我是Windows系统,需要把bin目录配置到Path路径下。

 关于ffmpeg转换视频格式的命令:

 1.  ffprobe input.mp4

  查看视频信息

 2.   ffmpeg -i input.mkv output.avi  

  把mkv格式封装的视频转成avi封装格式,但是视频编解码的格式会变

3. ffmpeg -i input.mp4 -c:v libx265 output.avi

  把mp4封装的视频转成h265编码,avi封装的格式


 



 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值