安卓视频流 - 设备支持?

9
好的。因为Android设备种类繁多,我有一个视频流服务,在iOS上运作得很好。我的应用程序具有实时视频功能和已保存的视频剪辑播放功能(也会流式传输到设备)。我在不同的Android设备上进行了一些测试,并得到了许多不同的播放结果。我正在使用640x480 H.264基本配置文件视频。该视频在某些设备上仅能流式传输。对于其他设备,可以将相同的视频流设置为低分辨率,并且在某些设备上可以正常工作,但仍无法在其他设备上正常工作。高配置文件流通过http://www.wowzamedia.com/ (RTSP) 进行,根本不能在任何 Android 设备上工作(但可以在 iPhone 上工作)。最低且最差的选项是Motion JPEG,迄今为止在所有测试设备上都可以正常工作。

那么我的问题是:我如何找出(无需测试市场上的每个设备)设备是否能够播放640x480 H.264基本配置文件 - 如果无法播放,则播放低分辨率视频 - 如果这也不起作用,则默认使用Motion JPEG?

此外,您有任何想法为什么经过wowza转码的rtsp在iPhone上工作,但在任何Android设备(甚至是Motorola Atrix)上都无法工作吗?

3个回答

3

在安卓上进行流媒体传输是一件非常麻烦的事情。大多数设备都不支持高于基线3.0的任何内容。如果你为iPhone 3进行编码,通常可以通过RTSP实现。较新版本的安卓支持HLS,但这很难说是否可行,而且很大程度上取决于具体的设备。


1

我解决了这个问题。请检查您的流媒体服务中的RTP实现和x264配置文件。我的RTSP服务器在90%的设备上运行良好。

p.s 不同Android版本中的某些视频框架可能会以一些差异实现RTP和RTSP协议。


你能解释一下你所说的“RTP实现”是什么吗?我已经使用Wowza媒体服务器接近5年了(并曾一度在支持团队工作),但这个术语对我来说完全陌生。 - Ian Beyer
对不起,我不是那个意思。我的英语水平还很初级。我是指RTP协议的实现。 - radya
啊,好的,我现在明白你的意思了 - 在Wowza中,这个设置在Application.xml文件中的MediaCaster->RTP->RTSP->RTPTransportMode下面 - 在V3及以上版本中,默认设置为“交错(interleave)”,也就是TCP。另一个选项是“udp”,应该很容易理解。 - Ian Beyer
最近版本的Android也可以在HTML5 <VIDEO>标签中轻松地进行RTSP。 - Ian Beyer

0

这些是我在尝试使流媒体在不同设备上工作时遇到的一些链接/问题。

MediaPlayer seekTo对于流无法正常工作

MediaPlayer在从不同位置seek后启动时将位置重置为0

MediaPlayer seekTo不一致地从开头播放歌曲

基本的流媒体音频在2.1中可以工作,但在2.2中无法工作

MediaPlayer.seekTo()对于未缓冲的位置无法正常工作

在videoView / Mediaplayer中回溯缓冲启动时流媒体视频

即使是stackoverflow的大佬们也对此感到困惑。

如果您只想进行流式传输而不寻求(这很无聊),那么可以实现这一点。但如果您在观看时接到电话,您将从头开始。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接