2011-03-17 160 views
20

我想在我的项目中实现视频流。那么,有没有任何教程可行?视频存储在服务器端。所以,要使用URL获取视频并在Android上播放。我尝试了一些示例,但是出现错误,“对不起,此视频无法播放”。我正在尝试使用MP4。Android视频流示例

回答

6

你的问题很可能是视频文件,而不是代码。您的视频很可能不是“安全流式传输”。有关更多信息,请参见where to place videos to stream android

+1

当我运行的例子,一个对话框生成显示“对不起,这个视频不能播放” – user609239 2011-03-17 13:47:45

10

我正面临同样的问题,并找到解决方案让代码工作。

android-Sdk/samples/android-?/ApiDemos中给出的代码正常工作。复制粘贴android项目中的每个文件夹,然后在MediaPlayerDemo_Video.java中将要流式传输的视频的路径放入路径变量中。它在代码中留空。

下面的视频流为我工作: http://www.pocketjourney.com/downloads/pj/video/famous.3gp

我知道,RTSP协议是用于流媒体,但媒体播放器类支持HTTP为在代码中提到的流。

我搜索了该视频的格式,发现如果使用Quicktime Pro将视频转换为mp4或3gp,则视频效果良好。

我测试了Android 2.1上的最终apk。应用程序剂量很好地在仿真器上工作。在设备上试用。

我希望这有助于..

20

我有同样的问题,但终于让我找到的方式。

这里是穿行:

1-您的计算机(服务器)上安装VLC,去媒体 - >视频流(按Ctrl + S)

2 - 选择一个文件流,或者如果您想要流式传输您的摄像头或...点击“Capture Device”选项卡并进行配置,最后点击“Stream”按钮。

3-在这里,你应该做的流媒体服务器的配置,只要进入“选项”选项卡,并粘贴以下命令:

:sout=#transcode{vcodec=mp4v,vb=400,fps=10,width=176,height=144,acodec=mp4a,ab=32,channels=1,samplerate=22050}:rtp{sdp=rtsp://YOURCOMPUTER_SERVER_IP_ADDR:5544/} 

注:您的计算机的IP地址或任何服务器替换YOURCOMPUTER_SERVER_IP_ADDR这正在运行VLC ...

注意:您可以看到,视频编解码器是Android支持的MP4V。

4-转到eclipse并为媒体playbak创建一个新项目。 创建VideoView对象和在OnCreate()函数写像这样的代码:

mVideoView = (VideoView) findViewById(R.id.surface_view); 

mVideoView.setVideoPath("rtsp://YOURCOMPUTER_SERVER_IP_ADDR:5544/"); 
mVideoView.setMediaController(new MediaController(this)); 

5-运行在设备上的APK(未模拟器,我没有检查它),并等待重放是开始。请考虑缓冲过程将需要约10秒...

问:任何人都知道如何减少缓冲时间和播放视频几乎活?

+0

完美。这工作出色!假设VLC streaming是使用ffmpeg创建的,现在我只需要找到一种方法来使用该库自己完成此操作。 – Johncl 2011-12-01 14:21:37

+0

Gud问题:任何人都可以回答这个问题'问题:任何人都知道如何减少缓冲时间和播放视频几乎活? – 2011-12-31 08:52:37

+1

@sonuthomas如果你有一个新的问题,请点击[问问题](http ://stackoverflow.com/questions/ask)按钮。 – 2012-01-02 07:18:49