首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >活动RTSP流将不使用VideoView;没有内容提供程序错误

活动RTSP流将不使用VideoView;没有内容提供程序错误
EN

Stack Overflow用户
提问于 2014-12-18 04:01:19
回答 1查看 4K关注 0票数 11

我是Android开发的新手,似乎无法通过开发一个应用程序来实时传输来自ip摄像头的RTSP提要。虽然我可以用.mov文件的RTSP地址从一个网站获得代码流,但我不能让它从我的ip摄像机的RTSP地址流。我们使用VideoView,这样我们就可以支持Android4.0,因为我们的目标是在爱普生MoverioBT-200视频眼镜中显示这一点。

下面是我现在的代码,行到我可以从相机得到的两个流注释掉。未注释掉的行是一个在线测试流,运行良好。

代码语言:javascript
复制
VideoView videoView;
@Override public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    //Create a VideoView widget in the layout file
    //use setContentView method to set content of the activity to the layout file which contains videoView
    this.setContentView(R.layout.activity_full_screen_video);
    videoView = (VideoView)this.findViewById(R.id.video_player_view);

    //Set the path of Video or URI
    //videoView.setVideoPath("rtsp://192.168.1.122/h264");
    //videoView.setVideoPath("http://192.168.1.122/ipcam/mjpeg.cgi");
    videoView.setVideoPath("rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov");

    //Set the focus
    videoView.requestFocus();
    videoView.start();
}

当使用从ip摄像机中提取的任何一条线运行时,我们将得到以下错误:

代码语言:javascript
复制
'setDataSource IOException happend :
java.io.FileNotFoundException: No content provider: http://192.168.1.122/ipcam/mjpeg.cgi'

来自摄像头的RTSP流已经用另一个rtsp android应用程序进行了验证,所以我知道它还不错。

需要做些什么才能缓冲吗?最终目标是尽可能接近实时流媒体应用程序,在眼镜中进行视频覆盖。然而,我们甚至不能得到一个基本的流来显示。欢迎您提出任何建议!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-03 20:28:17

我可以确认我遇到了一个类似的问题。

在我的例子中,我使用本地网络RTSP服务器提供一个名为camera.ts的文件,该文件具有以下RTSP:

rtsp://macpro.local:8554/camera.ts

它会产生一个Can't play this video错误:

我想知道是否存在权限问题,所以我尝试了测试RTSP url。

rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov

效果很好。

所以这意味着这不是一个权限问题。可能是网络问题,所以让我们看看是否可以通过我的RTSP服务器播放相同的BigBuckBunny电影文件。

我下载了那部BigBuckBunny电影,把它转换成了.mkv,并尝试了一下。

rtsp://macpro.local:8554/big_buck_bunny.mkv

效果很好。

因此,这就排除了权限问题,也排除了网络问题或我的服务器的问题。

我的猜测是开始在文件类型上打磨。也许.ts文件类型给它带来了麻烦。

.ts文件扩展名。

这是我在日志中看到的错误消息:

代码语言:javascript
复制
D/MediaPlayer: setDataSource IOException happened : 
    java.io.FileNotFoundException: No content provider: rtsp://macpro.local/camera.ts

但是,这可能是一个,因为当我尝试播放测试文件时,如果我查看日志,就会得到相同的信息:

代码语言:javascript
复制
D/MediaPlayer: setDataSource IOException happend : 
    java.io.FileNotFoundException: No content provider: rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov

所以让我们排除这一点,继续寻找..。

更新:我从未找到过解决这个问题的方法。我放弃了查看RTSP流的尝试,只使用录制它,这就是演示所需的全部内容。如果您找到了合适的解决方案,或者Android增加了更好的支持,请在这里发布。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27539039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档