2011-09-18 160 views
3

我试图在Android设备上播放视频流。不幸的是,我仍然遇到与MediaPlayer/VideoView相同的问题。我正在寻找几天,但仍然没有找到任何工作解决方案。 出于测试目的,我使用API​​演示中的MediaPlayer应用程序(API演示/媒体/ MediaPlayer /播放流式视频)。 下面是代码片段播放的流在Android中播放RTSP流

mMediaPlayer = new MediaPlayer(); 
mMediaPlayer.setDataSource(path); 
mMediaPlayer.setDisplay(holder); 
mMediaPlayer.prepare(); 
mMediaPlayer.setOnBufferingUpdateListener(this); 
mMediaPlayer.setOnCompletionListener(this); 
mMediaPlayer.setOnPreparedListener(this); 
mMediaPlayer.setOnVideoSizeChangedListener(this); 

当我尝试播放流我从logcat的 http://pastebin.com/5Uib5CH5

此信息这是流媒体视频

Port 8090 
BindAddress 0.0.0.0 

RTSPPort 7654 
RTSPBindAddress 0.0.0.0 

MaxHTTPConnections 2000 
MaxClients 1000 
MaxBandwidth 10000 

CustomLog - 
NoDaemon 
<Feed feed1.ffm> 

File /tmp/feed1.ffm 
FileMaxSize 5M 

Launch ffmpeg -i mmsh://tempserv.cam/vid1 

ACL allow 127.0.0.1 

</Feed> 

<Stream rat1.mpg> 
Feed feed1.ffm 
Format rtp 
NoAudio 
VideoBitRate 56k 
VideoBufferSize 40 
VideoFrameRate 12 
VideoSize 176x144 
VideoGopSize 12 
VideoCodec libx264 
AVPresetVideo baseline 
</Stream> 

如果ffserver的配置人可以告诉我如何解决它,或者至少表明一个错误,我将不胜感激。

回答

0

我发现解决方案如何运行适合Android设备的流媒体。这是我的ffserver配置,适用于任何其他类似问题的人。

Port 8090 
BindAddress 0.0.0.0 
RTSPPort 7654 
RTSPBindAddress 0.0.0.0 

MaxHTTPConnections 2000 
MaxClients 1000 
MaxBandwidth 10000 

CustomLog - 
NoDaemon 

<Feed feed1.ffm> 

File /tmp/feed1.ffm 
FileMaxSize 5M 

Launch ffmpeg -i mmsh://tempserv.cam/vid1 

ACL allow 127.0.0.1 
</Feed> 

<Stream rat1.mpg> 

Feed feed1.ffm 
Format rtp 
NoAudio 

VideoBitRate 56k 
VideoBufferSize 40 
VideoFrameRate 12 
VideoSize 176x144 
VideoGopSize 12 
VideoCodec h263 

AVOptionVideo flags +global_header 

</Stream> 
+0

更改为h263解决了您的问题? – Dnaso

+0

在这种情况下,是的。但ffmpeg是一种可以在两个版本之间工作不同的软件。 – Kamil