这里只是简单记录点东西。
摄像头采集(mjpeg) ---》服务器编码(rtsp流) ---》android接收并播放
网上搜了搜android 播放 rtsp视频流,有用videoview的,用ffmpeg的,有用MediaPlayer的。
下了些项目源码来编译运行,有不能运行的,有运行后没有图像显示的。
使用ffmpeg,在运行时,在avformat_open_input( )里出现的段错误,有说最后两个参数为null时就会出现段错误,但我测试过了,不为null依然出现段错误。看了下ffmpeg官方的指南,后面两个参数也都可以设置为null。无果,放弃。
在《android多媒体应用开发实战详解:图像、音频、视频、2D和3D》中使用了MediaPlayer来播放网络视频。将链接替换为一个rtsp测试地址 rtsp://218.204.223.237:554/live/1/66251FC11353191F/e7ooqwcfbqjoo80j.sdp,发现可以播放,但每隔一定时间就会卡顿一下。和电脑上使用VLC观看做对比,(在A20 android4.2.2下)确实是播放卡顿的,不是视频源卡。
使用安卓系统自带的,不行。只能试下linux下(能被移植到android下)的东西。网上有使用mplayer的,这个在linux下确实是个强大的东西。但是在http://www.live555.com/mplayer/ 中有提到
“Note: We now recommend the use of theVLC media player.VLC, like MPlayer, uses the "LIVE555 Streaming Media"code for RTSP client support, but is generally more reliable than MPlayer.”
相对于mplayer,更推荐vlc。看到有vlc for android的(下载地址:http://download.csdn.net/detail/jishubuxiaodatao/6589933#comment):android vlc rtsp 播放器 源码
下载下来,编译运行,和之前MediaPlayer的相比,确实好多了,和电脑上使用VLC观看做对比,画面是一致性的。这里要感谢这个的作者以及贡献者。
好了,显示解决了,下面是视频源了。
先在电脑上搭建一个服务器,VLC media player搭建是比较简单的,但是测试了一下,没有画面,但进度条在走。后一搜,网上有人建议用live555。于是下了个live555MediaServer.exe运行,但是支持的格式少。
将一个.flv视频转换为.ts后测试,可以播放,但没有声音,可能是哪里问题,先不管。
好了,这样,下面就要做采集并发送rtsp了。