【发布时间】:2011-03-17 06:40:32
【问题描述】:
我想在我的项目中实现视频流。那么,有什么教程可以用吗?视频存储在服务器端。因此,使用 URL 获取视频并在 Android 上播放。我尝试了一些示例,但出现错误,“抱歉,无法播放此视频”。我正在尝试使用 MP4。
【问题讨论】:
标签: android video streaming playback
我想在我的项目中实现视频流。那么,有什么教程可以用吗?视频存储在服务器端。因此,使用 URL 获取视频并在 Android 上播放。我尝试了一些示例,但出现错误,“抱歉,无法播放此视频”。我正在尝试使用 MP4。
【问题讨论】:
标签: android video streaming playback
我遇到了同样的问题,但我终于找到了方法。
这是演练:
1- 在您的计算机 (SERVER) 上安装 VLC 并转到 Media->Streaming (Ctrl+S)
2- 选择要流式传输的文件,或者如果要流式传输网络摄像头或...单击“捕获设备”选项卡并进行配置,最后单击“流式传输”按钮。
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/}
注意:将 YOURCOMPUTER_SERVER_IP_ADDR 替换为您的计算机 IP 地址或任何运行 VLC 的服务器...
注意:您可以看到,视频编解码器是android支持的MP4V。
4- 转到 Eclipse 并为 media 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 秒...
问题:有人知道如何减少缓冲时间并几乎实时播放视频吗?
【讨论】:
Question: anybody know how to reduce buffering time and play video almost live ?
我遇到了同样的问题,并找到了让代码正常工作的解决方案。
android-Sdk/samples/android-?/ApiDemos 中给出的代码可以正常工作。复制粘贴 android 项目中的每个文件夹,然后在 MediaPlayerDemo_Video.java 中将要流式传输的视频的路径放在路径变量中。代码中留空。
以下视频流对我有用: http://www.pocketjourney.com/downloads/pj/video/famous.3gp
我知道 RTSP 协议将用于流式传输,但 mediaplayer 类支持 http 用于流式传输,如代码中所述。
我搜索了视频的格式,发现如果使用 Quicktime Pro 将视频转换为 mp4 或 3gp,则可以很好地进行流式传输。
我在 android 2.1 上测试了最终的 apk。该应用程序在模拟器上运行良好。在设备上试用。
希望对你有帮助。
【讨论】:
您的问题很可能出在视频文件上,而不是代码上。您的视频很可能“不适合流式传输”。请参阅where to place videos to stream android 了解更多信息。
【讨论】: