如何让Android顺利播放高质量的RTSP流?

有没有人有幸通过RTSP将高质量视频(超过1000kbps)流式传输到
Android

我们目前拥有低质量的视频流(大约200kbps),可以在3G上运行.现在,我们正努力为用户提供更快速的连接时提供高质量的流.高质量的视频在VLC中流畅播放,但即使在4兆位连接上,Android播放似乎也会丢帧并变得模糊.

YouTube应用似乎使用普通的HTTP下载来获得高质量的视频.这很好用,播放流畅,但不适用于流式直播视频.有没有人通过RTSP将高质量视频传输到Android?

视频使用H.264,1500kbps,24fps和720×480分辨率进行编码.在应用程序中,我们使用VideoView播放视频.我们正在使用Darwin Streaming Server,但如有必要,我们可以使用其他选项.

2011年6月23日更新

今天再看看达尔文.到目前为止,我只是在Darwin模块中记录请求和会话信息.

原始Droid尝试使用这些设置:3GPP-Adaptation:… size = 131072; target-time = 4000.虽然这意味着它需要4秒的缓冲,但131Kb仅能以1200kbps的速度保持大约一秒的播放时间.我知道1200kbps很大,但它对于高质量视频是必要的(720×480上的最小压缩).

我试图强迫客户缓冲更多,但我还没弄明白该怎么做.我只是查看Darwin Streaming Server源代码并试图弄清楚它们是如何做的.那里有任何达尔文专家吗?

2011年6月24日更新

事实证明,使用普通的旧HTTP来按需观看视频效果很好而且不会降低质量.当我们进入直播时,我们将不得不更多地关注RTSP.

最佳答案 即使网络能够以该速率传输,您仍然需要对其进行解码.你用什么解码?您可能需要使用NEON加速视频解码器,这样您就可以拥有合适的帧速率和合适的缓冲区……图形处理器的性能与它所在的总线一样好……还有什么编码设置和决议?

编辑:您正在以高比特率编码那些,其中一半会很好.您还需要确定问题所在. mediaPlayer是否获取数据并且无法以合适的帧速率进行流式传输,在这种情况下,您必须使用自己的播放器替换MediaPlayer代码.这是网络问题,那么只有解决方案才能降低比特率,600Kbps就可以了(或500Kbps视频,128Kbps音频),它是你的200k流的3倍,而且在屏幕上这么小,差别并不明显.

点赞