VLC播放RTSP视频流遇到的问题
摄像头是RTSP协议的,需要在Android端实时显示摄像头视频流,这里采用了开源的VLC播放器,可能会有如下需求:
一、有截屏的需求
二、有屏幕录制的需求
三、视频本来是横的,但是现在要竖屏显示,如何旋转视频,另外旋转后视频会拉伸,因此需要截取一段显示
四、显示的视频可能需要做额外处理,比如识别出人脸后框出来
先说说直接用VLC播放器的SDK会遇到的问题,利用SDK显示视频通常是如下写法:
private MediaPlayer mMediaPlayer;
private LibVLC mVlc;
void createPlayer(String url, int width, int height) {
ArrayList<String> options = new ArrayList<>();
options.add("--aout=opensles");
options.add("--audio-time-stretch");
options.add("-vvv");
mVlc = new LibVLC(context, options);
mMediaPlayer = new MediaPlayer(mVlc);
IVLCVout vout = mMediaPlayer.getVLCVout();
vout.setVideoView(textureView);
vout.attachViews();
vout.setWindowSize(width, height);
Media m = new Media(mVlc, Uri.parse(url));
int cache = 1000;
m.addOption(":network-caching=" + cache);
m.addOption(":file-caching=" + cache);
m.addOption(":live-cacheing=" + cache);
m.addOption(":sout-mux-caching=" + cache);
m.addOption(":codec=mediacodec,iomx,all");
mMediaPlayer.setMedia(m);
mMediaPlayer.play();
}
public void releasePlayer() {
mMediaPlayer.setVideoCallback(null, null);