使用live555,ffmpeg,sdl创建android播放器

李国帅 于2018/4/1

朝花夕拾,根据数年前资料整理。

这篇文章的目的是介绍使用live555,ffmpeg,sdl创建android播放器的基本思路和代码结构。

来源

2013年的时候,有些android自带的播放框架还没有定型,也没有直接可以播放rtsp的客户端控件,这时候为了能够在android播放ipc,dvr等rtsp视频源,就做了这个东西。

实现思路

资金问题,收费的不考虑,能考虑的就是使用live555来做rtsp通信,使用ffmpeg做编解码,使用sdl做展示,把sdl窗口放在android的surface上进行显示。

这个软件需要费些功夫搭建环境,编译开源库。这些开源库基本上都已经是千锤百炼的软件了,出错基本上都是你自己用错了。

模块结构

image

模块和调用结构如下:

Android界面使用本地函数调用player.so,player.so再去协调和调用live555,ffmpeg,sdl三部分。

image

其中,live555,ffmpeg,sdl开源项目中添加android.mk,然后在cygwin中使用ndk进行编译,编译出armeabi-v7a构架的so文件。这部分可以请度娘帮忙。

扫描二维码关注公众号,回复: 2359929 查看本文章

关键的部分就是Player.so部分,以及与android surface的交互,交互部分sdl开源库有专门的代码。Player.so的主要文件有:


image

编译

创建项目,添加ndk,把live555,ffmpeg,sdl源码加入jni,填写android.mk,执行编译,目录如下

image

编译后

image

测试

可以使用ffmpeg做文件服务器,进行rtsp播放测试;也可以使用spydroid-ipcamera做rtsp服务器进行调试。

APK下载地址

http://119.29.74.189:8080/apk/EVPlayer.apk

猜你喜欢

转载自blog.csdn.net/lgs790709/article/details/79785085