吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 726|回复: 0
收起左侧

[求助] 如何在mediacodec解码时同时渲染和得到数据帧?

[复制链接]
mudcastles 发表于 2020-9-18 18:02
我有一个需求,我需要将H264编码的视频流解码并显示,同时我需要拿到解码后的每一帧,并添加水印然后推送至RTMP流媒体服务器。

据我所知,在解码时只能通过参数来让解码器显示到Surface或者拿到YUV数据。但我现在需要在Surface上显示原始图像,并对YUV进行处理。谁有这方面的经验?望不吝赐教!!

或者变相解决,下面是我的想法和测试:
1.通过TextureView显示视频,然后在监听到视频帧到来时通过TextureView提供的getBitmap方法拿到Bitmap,转成YUV后处理。
这种方式经过测试,原本30FPS,直接就掉帧到了10FPS左右。显然不行。
2.通过解码得到YUV数据,然后将YUV数据转为RGBA,重写SurfaceView,然后在SurfaceView中拿到Canvas进行绘制。这种方法经过测试,闪烁的很厉害,而且因为用到了Bitmap,程序会频繁GC,体验很差。

我想过通过NDK直接使用surface对YUV帧进行渲染,但是网上的资料千篇一律,github上的项目寥寥无几,可以找到的项目在Android.mk中用到的依赖都没有给出,不知道如何处理这些依赖。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 12:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表