Firefly开源社区

12345... 7
发表新贴

Firefly-rk3288 linux下 实现视频硬解码(公开源码)

880

积分

1

威望

0

贡献

社区版主

Rank: 7Rank: 7Rank: 7

积分
880
发表于 2015-12-29 16:37:05     
本帖最后由 isle 于 2015-12-29 16:38 编辑

firefly-rk3288 linux上H264、H265解码一直都是软解,下面将介绍如何基于ffmpeg,在ubuntu系统上添加硬解支持,
首先安装硬解驱动库。这里使用的是国外友人mac_l1的libhybris库。
当然也可以使用rockchip自己发布的解码库,这个网上有,大家可以自己去找找。本源码是使用hybris库的,如果使用其他库,需要修改调用方式。
为了方便,我在百度网盘上备份了一个mac的hybris库,大家可以直接下载。
http://pan.baidu.com/s/1pKdqUQR

安装驱动库:
  1. sudo dpkg  -i machybris-0.1.0_armhf.deb
复制代码

如果提示错误请先执行:
  1. sudo apt-get -f install
复制代码

再执行安装,安装完解码库驱动后需要重启下。



安装ffplay依赖库sdl :
  1. sudo apt-get install libsdl-dev
复制代码

在开发板上安装编译环境:
  1. sudo apt-get install build-essential
复制代码


下载基于ffmpeg的视频解码源码:
  1. git clone https://github.com/isle0118/firefly-vpu-linux.git
复制代码

编译安装:
  1. ./configure  --enable-shared --prefix=/usr --disable-ffmpeg --disable-ffprobe --disable-ffserver  --disable-static
复制代码
  1. make && sudo make install
复制代码
成功之后就可以用ffplay测试了。可以与系统自带的mplayer对比效果及cpu占用率等。确实有很大的改善哦!

硬解的源文件 :libavcodec/rkdec_decoder.c 大家可以自行研究及优化。


回复

使用道具 举报

548

积分

10

威望

12

贡献

技术大神

Rank: 3Rank: 3

积分
548
发表于 2015-12-29 16:49:50     
高手
回复

使用道具 举报

467

积分

6

威望

0

贡献

技术达人

Rank: 2

积分
467
QQ
发表于 2015-12-29 17:34:14     
顶!狂顶!ANDROID下的解码已经快吧我搞疯掉了!
不知道这个支不支持隔行和4K!
回复

使用道具 举报

48

积分

0

威望

0

贡献

技术小白

Rank: 1

积分
48
发表于 2015-12-29 20:19:03     
android下的硬件编解码呢?
回复

使用道具 举报

467

积分

6

威望

0

贡献

技术达人

Rank: 2

积分
467
QQ
发表于 2015-12-29 22:20:33     
版主:编译报错啊!缺少头文件!
CC        libavcodec/resample2.o
CC        libavcodec/rkdec_decoder.o
libavcodec/rkdec_decoder.c:2:52: fatal error: /usr/local/include/hybris/common/dlfcn.h: No such file or directory
#include "/usr/local/include/hybris/common/dlfcn.h"


QQ截图20151229221914.png
回复

使用道具 举报

467

积分

6

威望

0

贡献

技术达人

Rank: 2

积分
467
QQ
发表于 2015-12-29 22:21:34     
lam007 发表于 2015-12-29 20:19
android下的硬件编解码呢?

安卓下的已经集成到OMX层了!
直接调用OMX就可以了!
回复

使用道具 举报

467

积分

6

威望

0

贡献

技术达人

Rank: 2

积分
467
QQ
发表于 2015-12-29 22:25:35     
要在开发板上编译???
缺少的头文件,在驱动库里面吗?
回复

使用道具 举报

880

积分

1

威望

0

贡献

社区版主

Rank: 7Rank: 7Rank: 7

积分
880
发表于 2015-12-30 09:26:57     
上面使用的方式是在开发板上编译的,头文件是需要先安装hybris驱动库的。如果要在上位机上编译,需先导出头文件来。这个自己改下了。
回复

使用道具 举报

467

积分

6

威望

0

贡献

技术达人

Rank: 2

积分
467
QQ
发表于 2015-12-30 10:25:01     
isle 发表于 2015-12-30 09:26
上面使用的方式是在开发板上编译的,头文件是需要先安装hybris驱动库的。如果要在上位机上编译,需先导出头 ...

嗯嗯,开发板编译太慢了!受不了!
回复

使用道具 举报

467

积分

6

威望

0

贡献

技术达人

Rank: 2

积分
467
QQ
发表于 2015-12-30 10:42:33     
isle 发表于 2015-12-30 09:26
上面使用的方式是在开发板上编译的,头文件是需要先安装hybris驱动库的。如果要在上位机上编译,需先导出头 ...

版主,我在开发板编译通过后,执行ffplay std.ts
出现:
could not initialize SDL- Unable to open mouse
Did you set the DISPLAY variable?
我已经把SDL 安装好了的呀!
回复

使用道具 举报

返回列表
12345... 7

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表