DicePlayer真乃一代神器,各种格式通吃,SAMBA、FTP一个不落,最重要的是,能支持2倍速播放!

不过因为版权原因,DicePlayer先后阉割了DTS解码和AC3解码,后者的阉割导致人人影视一票的HR-HDTV都播放不了,而我又找不到清晰度、文件大小、字幕方便程度能媲美的替代品,只好操刀自己上。

在xda的这个帖子里提到,可以提取2.0.53版本中的libffmpeg_dice.so文件,放到sdcard下,但这只能恢复AC3解码。

而那个帖子又提供了几个网友根据DicePlayer官方页面提供的源码,编译的版本,但放我这里总是有破音,而且也无法恢复DTS解码。

于是我打算自己编译一下看看。

看了下DicePlayer官方提供的源码,发现是基于ffmpeg 0.10.10修改的,于是把正宗的0.10.10源码弄下来,用工具对比了一下修改了哪些地方,发现没修改什么,似乎是从libav那边弄了点代码过来,不过没在libav页面上找到对应的代码。

于是决定不进行大修改,直接编译:

  1. 下载ffmpeg的0.10.15版本代码,解压。
  2. 先安装NDK
  3. 再修改build-ffmpeg.sh脚本中的变量,记得按里面提示打开DTS部分,官方脚本有问题,可以用我修改后的版本
  4. 修改libavformat/nutdec.c第852行,assert(0);后添加一行return 0;,否则会编译报错。
  5. 执行build脚本即可。

编译要求不高,在我DigitalOcean的512M内存VPS上都可以编译,耗时大概10分钟,最后在ffmpeg目录里可以得到libffmpeg_dice.so文件即可使用。

附上解决问题过程中找到的几个有用的链接:

Update 1: 脚本又修改了一下,现在能支持ffmpeg-2.4.2版本

Update 2: 现成的版本可以在这里下载