有没有人能通过RTSP将高质量的视频(超过1000kbps)传输到Android上?
我们目前有低质量的视频流(大约200kbps),在3G上工作得很好。现在,我们正在尝试为用户提供更快的连接时提供高质量的流。高质量的视频可以在VLC中流畅播放,但Android播放似乎会丢帧,甚至在4兆连接的情况下也会出现块状。
似乎YouTube应用程序使用普通的超文本传输协议下载其高质量的视频。这样做效果很好,播放起来也很流畅,但不适用于直播视频。有没有人幸运地通过RTSP将高质量的视频流传输到Android?
视频采用H.264、1500kbps、24fps和720x480分辨率编码。在应用程序中,我们使用VideoView来播放视频。我们使用的是Darwin Streaming Server,但如果需要,我们也可以选择其他选项。
更新6/23/2011
今天我们将深入了解达尔文。到目前为止,我只是在Darwin模块中记录请求和会话信息。
最初的Droid尝试使用这些设置:3GPP-Adaptation:...size=131072;target-time=4000
。虽然这意味着它需要4秒的缓冲,但131Kb在1200kbps的速度下只能支持大约1秒的回放。我知道1200kbps很大,但对于高质量的视频(720x480的最小压缩)来说,这是必要的。
我正在尝试强制客户端进行更多的缓冲,但我还没有想出如何做到这一点。我只是在看达尔文流媒体服务器的源代码,并试图弄清楚他们是如何做事情的。外面有达尔文专家吗?
更新6/24/2011
事实证明,使用普通的HTTP来观看视频点播效果很好,而且不会损失质量。当我们谈到直播时,我们将不得不更多地研究RTSP。
发布于 2011-06-23 04:35:50
即使网络能够以这种速率传输,您仍然需要对其进行解码。你用什么解码?您可能需要使用霓虹灯加速的视频解码器,以便您可以有一个适当的帧率,和一个像样的大小缓冲区…图形处理器的好坏取决于它所在的总线...另外,你的编码设置和分辨率是什么?
编辑:你正在以很高的比特率编码那些,一半就行了。此外,您还需要确定问题所在。如果mediaPlayer获得了数据,并且无法以合适的帧率进行流传输,在这种情况下,您必须用您自己的播放器替换MediaPlayer代码。如果是网络问题,那么唯一的解决方案就是降低比特率,600Kbps就可以了(或者500Kbps的视频,128Kbps的音频),它是200k流的3倍,而在这么小的屏幕上,差异并不明显。
https://stackoverflow.com/questions/6446135
复制相似问题