AnyChat技术支持论坛

标题: YUV420SP问题 [打印本页]

作者: kolidat    时间: 2014-4-14 21:31
标题: YUV420SP问题
您好:
有几个问题遇到,请解答:
1、视频数据默认采用NV21格式,但通过setParameter接口设置为其他格式(如RGB545)进行传输无法生效。请问可否设置成RGB545进行传输?
2、接收端收到数据后,在回调函数中获得的数据格式为RGB545,接上问,若发送端为NV21格式,能否在JAVA层获得原始的NV21格式数据?
3、so库进行了哪种编码转换?是否H.264之类?能否不进行转换,将发送端的NV21格式数据直接透传到接收端?

谢谢解答,非常感激。

作者: admin    时间: 2014-4-14 21:44
您好!
1、视频数据默认采用NV21格式,但通过setParameter接口设置为其他格式(如RGB545)进行传输无法生效。请问可否设置成RGB545进行传输?

这需要看Android底层硬件驱动是否支持RGB格式,通常来说,NV21是Android驱动默认会支持的格式,可能有些平台可以支持RGB,有些平台就不一定支持。

2、接收端收到数据后,在回调函数中获得的数据格式为RGB545,接上问,若发送端为NV21格式,能否在JAVA层获得原始的NV21格式数据?

可以实现,需要我们这边做一些定制,您若是有需求,可以和我们的销售联系:http://www.anychat.cn/contactus.html

3、so库进行了哪种编码转换?是否H.264之类?能否不进行转换,将发送端的NV21格式数据直接透传到接收端?

默认是H.264编码,如果不进行编码,数据量非常大,可能达到10~50Mbps以上(与分辩率有关),不实用,所以必须进行编码。

作者: kolidat    时间: 2014-4-14 22:22
谢谢解答,还有些不明白请教下:

若发送端摄像头采集NV21格式数据后进行加密转换为一随机数组(默认115200字节),然后将此随机数组送入你们的SO库进行编码及发送,
在接收端收到数据后,怎样才能得到这个原始的随机数组?
可否不修改现在的SO库文件而实现
作者: admin    时间: 2014-4-14 22:33
您好,
1、编码是有损编码,编码、解码之后不能得到原始的数据;
2、您的需求可以通过透明通道扩展来实现,参考:http://www.anychat.cn/faq/index. ... =206&artlang=zh
作者: kolidat    时间: 2014-4-14 22:41
您的意思是我通过BRAC_TransBufferEx发送NV21数据?但数据量太大,估计无法满足实时性要求。
那能否得到H.264编码后的数据再加密,在接收端先解密后还原成H.264编码数据,再送给SO库进行解码
作者: admin    时间: 2014-4-14 23:32
您好,可以定制加密,解密的数据接口,对编码后的数据进行加解密,您的思路是对的!
作者: kolidat    时间: 2014-4-16 20:11
我用第三方编解码库编译SO后设置CODECID和库路径,在SO中实现编解码函数。
在实现中直接引用demo中的libmediahwcodec_4.0.so,调用相应的编解码函数。但在MediaCodec_VideoCodec_InitEncoder中返回-1,MediaCodec_VideoCodec_Encode也返回-1。请解释下为什么。
另外libmediahwcodec_rk30_4.1.so和libmediahwcodec_rk30_4.2.so不知可以引用吗。
作者: admin    时间: 2014-4-17 14:32
您好,是您自己编写的.so库文件吗?
作者: kolidat    时间: 2014-4-17 15:13
是的,在我自己的so中调用libmediahwcodec_4.0.so中的MediaCodec_VideoCodec_InitEncoder函数
作者: admin    时间: 2014-4-17 15:18
您好,libmediahwcodec_4.0.so是给anychat调用的,暂时没有提供api接口给外部so来调用。
作者: kolidat    时间: 2014-4-17 18:28
我可以调用成功,只是返回值错误,可否提供详细原因?
另,外部编解码库指南中的示例代码能否提供完整的
作者: admin    时间: 2014-4-17 20:05
可能是原因是参数传递出错!

示例代码在《外部编解码库指南》最后附录部分。
作者: kolidat    时间: 2014-4-17 23:27
附录部分没有完整的,我是说可以直接用起来的
作者: kolidat    时间: 2014-4-17 23:34
调用自定义MediaCodec_VideoCodec_Encode时,发现lpContext->dwWidth及lpContext->dwHeight等参数都是很大的错误数据,按道理应该是320和240才对,而InPacket->dwSize=115200,OutPacket->dwSize=76800,但返回值为-1。
最好能提供下完整和详细的DEMO代码
作者: kolidat    时间: 2014-4-17 23:36
另外,上下文结构体中的AC_PIX_FMT PixFmt不知此类型定义在哪,编程指南里并没有




欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3