Firefly开源社区

123
发表新贴
打印 上一主题 下一主题

3288对得起解码小霸王的称号吗?咱们来测试测试

493

积分

6

威望

0

贡献

技术达人

Rank: 2

积分
493
QQ

3288对得起解码小霸王的称号吗?咱们来测试测试

发表于 2016-1-26 09:32:43      浏览:27459 | 回复:21        打印      只看该作者   [复制链接] 楼主
本帖最后由 jingjin221 于 2016-1-27 10:16 编辑

很抱歉,如果你贸然进入,可能已经陷入我等标题党的圈套!:D:D:D
但是既然进来了,必不会让你白来一趟滴!:):):)
对于RK3288的解码能力确实是不容置疑的,但是小弟今天为何做此言论,必有一番理由和疑问需要大家来探讨探讨!
小弟这里有一份录下来的TS码流,AVC编码,1080@60i的分辨率,这对3288来说原本简直就是小菜一碟的事儿,但事实并非如此!
我的这份码流和普通的264编码的码流有区别,普通的通常是I,P,B帧构成,这个码流里面只有P帧(下面都简称低延时),且是隔行编码的!
经过我的测试,结果如下:

0、标准,逐行编码自然可以!
1、低延时,逐行编码的码流是可以正常硬解!
2、标准,隔行编码的码流也是可以正常硬解!(BOX和PAD版本有区别)
3、低延时,隔行编码的码流不能硬解!
那么问题来了?究竟是什么原因导致的呢?是解复用送帧的时候没有送对?

下面是小弟送给解码器的帧的实例!
码流源文件(http://pan.baidu.com/s/1bbQTmI),low_i.ts为低延时隔行ts流,low_i.264为解复用后的裸流!码流分工具析用的是Elecard StreamAnalyzer

标准模式:              
1、逐行
自然是I,P,B帧,依次送入,这个没有问题!
2、隔行(std_i.264)
一帧分为2场(同一Frame Number,SEI信息区分顶场还是底场,AUD单元分割),需要把一帧分为两场,依次送入,这个也没有问题!
低延时:
1、逐行(low_p.264)

同一Frame Number下有5个SLICE帧,需要一起送入,这个没有问题!
2、隔行(low_i.264)
一帧分两场,每一场有5个SLICE(同一Frame Number)帧构成,于是我采用,分两次送,先送5个SLICE的顶场,再送5个SLICE的底场。结果送到解码器,无反应!!!求解!









回复

使用道具 举报

493

积分

6

威望

0

贡献

技术达人

Rank: 2

积分
493
QQ
发表于 2016-1-26 09:49:54        只看该作者  推荐
没人看吗?自己顶一个!解复用器是我移植的LIBDVBPSI库,具体帧的管理是我自己写的!
如果是解复用器出现了问题,但是我用VLC FOR ANDROID来解码,还是不行,证明不是解复用出问题咯!
只有两种可能,第一:帧送的不正确(指帧切割,解码器有特殊要求),第二:解码器不支持这种编码模式!
回复

使用道具 举报

493

积分

6

威望

0

贡献

技术达人

Rank: 2

积分
493
QQ
发表于 2016-1-27 15:58:25        只看该作者  板凳
再顶!!!
回复

使用道具 举报

发表于 2016-1-27 16:10:16        只看该作者  地板
支持原创,赞一个!
评测比较专业,期待楼主的更多好帖子
暴走的创客!
回复

使用道具 举报

29

积分

0

威望

0

贡献

技术小白

积分
29
发表于 2016-1-27 22:32:44        只看该作者  5#
我以前一般怎么解决这种问题呢:拖到对应芯片原生的Android播放器播放(因为厂商对Android的播放器还是做得比较齐全的),然后看能不能播放,能播放的话,就去找解码接口,在接口前面dump未解码数据(最好文件比较小),dump几帧就差不多,然后找到规律,模仿一下就可以了。
如果Android原生的那个播放器不能工作,一般需要邮件Rockchip需要技术支持了。
回复

使用道具 举报

493

积分

6

威望

0

贡献

技术达人

Rank: 2

积分
493
QQ
发表于 2016-1-28 09:24:14        只看该作者  6#
Mimosa 发表于 2016-1-27 22:32
我以前一般怎么解决这种问题呢:拖到对应芯片原生的Android播放器播放(因为厂商对Android的播放器还是做得 ...

原生播放器坑的很,,根本解不了!
我都是自己写的解复用器送入解码器的!
ROCKCHIP的技术支持都说只服务合作商!!!
回复

使用道具 举报

29

积分

0

威望

0

贡献

技术小白

积分
29
发表于 2016-1-28 10:10:51        只看该作者  7#
@jingjin221 没关系,你可以用ffmpeg转一个格式,但是音视频内容不变,换成一种原生播放器播放的格式。最后能播放了,什么都好处理。
回复

使用道具 举报

493

积分

6

威望

0

贡献

技术达人

Rank: 2

积分
493
QQ
发表于 2016-1-28 11:52:58        只看该作者  8#
Mimosa 发表于 2016-1-28 10:10
@jingjin221 没关系,你可以用ffmpeg转一个格式,但是音视频内容不变,换成一种原生播放器播放的格式。最 ...

并不是封装格式影响了解码,不管是什么播放器,最后都是调用OMX来硬解,我现在直接调用的OMX IL层,就是吧一帧或一场数据送进解码器,解码器无处理成功返回给我!
回复

使用道具 举报

936

积分

20

威望

19

贡献

社区版主

Rank: 7Rank: 7Rank: 7

积分
936
发表于 2016-1-28 16:13:33        只看该作者  9#
你确定全p帧 逐行可以解么?解码器要找到I帧才开始解码的。
回复

使用道具 举报

493

积分

6

威望

0

贡献

技术达人

Rank: 2

积分
493
QQ
发表于 2016-1-28 18:06:02        只看该作者  10#
isle 发表于 2016-1-28 16:13
你确定全p帧 逐行可以解么?解码器要找到I帧才开始解码的。

全P帧逐行,可以解码的!正常情况下一般解码器是要找到I帧,3288挺强的
回复

使用道具 举报

返回列表
123
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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