我的要求是能够在我的Android应用程序中播放实时视频流。流将通过RTSP/RTP。我对源代码没有控制权;看起来RTP负载不符合“开发人员指南”( Developers Guide 视频编码建议 )中概述的要求。具体而言,视频来源似乎违反了以下要求:
对于3 3GPP和MPEG-4容器,moov原子必须先于mdat原子,但必须继承ftyp原子。
基本上,我们似乎得到了原始的H264数据(而不是包装在容器中)。
现在,
MediaPlayer
类播放这个流。在上面的案例2和3中,DDMS日志都指出了一个事实,即Stage框架是在内部使用的,而在案例1中,使用的是PVP (即OpenCore)。所有这些使我得出结论:
这就引出了我的问题:
将stagefright移植到Android2.2涉及什么?
此外,我在AOSP源代码中注意到,较新的NuPlayer
现在负责播放RTSP流。问题:
NuPlayer
移植回较旧版本的安卓(2.2或2.3)?我知道我可以查看源代码并使用NDK构建stagefright和NuPlayer (尽管我从未在NDK级别工作过)。我不知道的是我的应用程序是如何使用这个NuPlayer的。
发布于 2012-05-15 08:41:45
我遇到了类似的问题,但我找到了一个解决办法。您必须修补系统build.prob文件。请看一下我的问题,我还发了我的回答。
默认情况下,stagefright在build.prop文件中保持禁用状态。你必须启用它并重新启动你的设备。然后,您可以访问支持您的需求的stagefright框架。
对于RTSP流,请在远程mechine中下载live555MediaServer.exe文件,并将一些媒体文件保存在相同的位置。打开live555MediaServer.exe文件。
使用以下代码-
private final String RTSP_FILE = "rtsp://<remote machine IP>/<file name>";
mVideoView.setVideoURI(Uri.parse(RTSP_FILE));
https://stackoverflow.com/questions/10297244
复制相似问题