我是Android开发的新手,似乎无法随时随地开发应用程序来从ip camera直播RTSP供稿。虽然我可以从具有.mov文件的RTSP地址的网站流式传输代码,但我无法从我的ip camera的RTSP地址流式传输。我们使用VideoView
以便我们可以支持回到android 4.0,因为我们的目标是在Epson Moverio BT-200视频眼镜中显示它。
下面是我现在的代码,我可以从相机中注释掉两条流的线条。未注释掉的行是在线测试流,可以正常播放。
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 camera中拉出的任何一条线路运行时,我们会收到以下错误:
'setDataSource IOException happend :
java.io.FileNotFoundException: No content provider: http://192.168.1.122/ipcam/mjpeg.cgi'
来自相机的RTSP流已经使用另一个rtsp android应用程序进行了验证,所以我知道它并不坏。
是否必须采取措施才能进行缓冲?最终目标是尽可能接近实时直播到应用程序,在眼镜中进行视频叠加。但是,我们甚至无法获得显示的基本流。欢迎提出任何建议!
答案 0 :(得分:0)
我可以确认我遇到了类似的问题。
就我而言,我正在使用本地RTSP服务器使用以下RTSP URL为名为camera.ts
的文件提供服务:
rtsp://macpro.local:8554/camera.ts
它会产生Can't play this video
错误:
我想看看是否存在权限问题或其他问题,所以我尝试了测试RTSP网址。
rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov
很好。
因此,这不是权限问题。可能是网络问题,所以让我们看看是否可以通过RTSP服务器播放相同的BigBuckBunny电影文件。
我下载了BigBuckBunny电影,将其转换为.mkv
,然后尝试了。
rtsp://macpro.local:8554/big_buck_bunny.mkv
很好。
这样可以排除权限问题,并排除网络问题或服务器问题。
我的猜测是开始研究文件类型。也许.ts
文件类型给它带来了麻烦。
.ts
文件扩展名。这是我在日志中看到的错误消息:
D/MediaPlayer: setDataSource IOException happened :
java.io.FileNotFoundException: No content provider: rtsp://macpro.local/camera.ts
但是,这可能是“红鲱鱼”,因为如果我在尝试播放测试文件时查看日志,那是可行的,那么我会得到相同的东西:
D/MediaPlayer: setDataSource IOException happend :
java.io.FileNotFoundException: No content provider: rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov
所以让我们排除它并继续寻找。...
更新:我从未找到解决方案。我放弃尝试查看RTSP流,而只使用ffmpeg
记录了它,这是我们演示演示所需的全部。如果您找到合适的解决方案或Android增加了更好的支持,请在此处发布。