4

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

我们目前有在 3G 上运行良好的低质量视频流(大约 200kbps)。现在,我们正在尝试为用户提供更快的连接时提供高质量的流。高质量视频在 VLC 中播放流畅,但 Android 播放似乎丢帧并变得块状,即使在 4 兆位连接上也是如此。

似乎 YouTube 应用程序使用纯 HTTP 下载他们的高质量视频。这运行良好且播放流畅,但不适用于流式传输实时视频。有人有幸通过 RTSP 将高质量视频流式传输到 Android 吗?

视频使用 H.264、1500kbps、24fps 和 720x480 分辨率进行编码。在应用程序中,我们使用 VideoView 来播放视频。我们正在使用 Darwin Streaming Server,但如有必要,我们对其他选项持开放态度。

2011 年 6 月 23 日更新

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

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

我试图强迫客户缓冲更多,但我还没有弄清楚如何做到这一点。我只是在查看 Darwin Streaming Server 源代码并试图弄清楚他们是如何做事的。有达尔文专家吗?

2011 年 6 月 24 日更新

事实证明,使用普通的旧 HTTP 按需观看视频效果很好,而且质量没有损失。当我们开始直播时,我们将不得不更多地研究 RTSP。

4

1 回答 1

2

好吧,即使网络能够以该速率传输,您仍然需要对其进行解码。你用什么解码?您可能需要使用 NEON 加速视频解码器,这样您才能拥有适当的帧速率和大小合适的缓冲区...图形处理器仅与它所在的总线一样好...您的编码设置是什么和分辨率?

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

于 2011-06-22T20:35:49.517 回答