我的需求
Java后台接收MQTT实时传过来的H264裸流(分包)数据,要求在后台查看无人机拍摄的实时画面;
踩坑心路历程
- Android中能够直接解码H264并进行渲染,那么在Java中不就是一个照葫芦画瓢的过程吗?
- Java中使用FFmpeg去解码还是Javacv去解码呢?听说Javacv也可以解码H264;
- 管他那么多,直接去Git上Copy一份现成的代码他不香吗?
- 如果实在没找到现成的Demo,我把H264数据先解析出来,在调用第三方的播放器来进行播放它不行吗?
我踩的坑
在Android中我是Java层接收到数据,再通过JNI去调用C/C++ 层代码来进行解码得到YUN,最后回到Java层进行渲染工作。
但是在Javaweb项目中咱也不能用NDK或者Cmake来编译啊!于是问了下度娘发现可以用.dll的方式来调用C/C++ 的方法;
解码完成后该来的问题还是来了,如何进行渲染(播放)?于是乎各种博客、论坛以及各个技术群里都是关于我的这个问题?
直到现在我都还不确定,直接在Javaweb项目中解码H264并进行实时播放到底行不行?
写在结尾
各位万能的网友,小菜能力实在有限,各位大神有更好的方法欢迎留言指教为谢。
小菜目前能想到的就是搭建流媒体服务器了,不过如果搭建流媒体服务器,到底是在拍摄端直接进行推流?还是按现在的方式,在服务端先接收H264裸流,解码后封装再进行推流?