vlc android局域网rtsp,基于Rtsp推流,实现局域网无纸化会议直播

本文详细介绍了如何利用Android的MediaProjection API录屏,通过RTSP协议推流,以及使用VLC进行播放,实现局域网内的无纸化会议直播。虽然未涉及音频部分,但已涵盖录屏、解码、推流和播放的完整流程。
摘要由CSDN通过智能技术生成

注:没有实现音频推送

录屏到直播逻辑过程

推流端:得到录屏权限,开始录屏

推流端:开启线程,解码得到裸流

推流端:通过Rtsp建立服务器推流

播放端:得到rtsp://ip 通过vlc播放

什么是Rtsp?

RTSP协议以客户服务器方式工作,,如:暂停/继续、后退、前进等。它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进行控制,

因此 RTSP 又称为“因特网录像机遥控协议”。RTSP协议详解

如何录屏?

运用Android 5.0开放接口MediaProjection,通过MediaProjectionManage申请录屏权限,用户允许后开始录制屏幕;

步骤:

1.获取MediaProjectionManager实例

mMediaProjectionManager = (MediaProjectionManager) getSystemService(MEDIA_PROJECTION_SERVICE);

2.申请权限

Intent captureIntent = mMediaProjectionManager.createScreenCaptureIntent();

startActivityForResult(captureIntent, REQUEST_CODE);

3.在onActivityResult获取授权结果

public void onActivityResult(int requestCode, int resultCode, Intent data) {

try {

MediaProjection mediaProjection = mMediaProjectionManager.getMediaProjection(resultCode, data);

if(mediaProjection == null){

T.showShort(ServerActivity.this, "程序发生错误:MediaProjection@1");

RunState.getInstance().setRun(false);

return;

}

}

catch (Exception e){

}

}

4.创建录屏线程

public class ScreenRecordThread extends Thread {

private final static String TAG = "ScreenRecord";

private Surface mSurface;

private Context mContext;

private VirtualDisplay mVirtualDisplay;

private MediaProjection mMediaProjection;

private VideoMediaCodec mVideoMediaCodec;

private WindowManager wm;

private int windowWidth;

private int windowHeight;

private int screenDensity;

public ScreenRecordThread(Context context, MediaProjection mp, H264DataCollecter mH264Collecter){

this.mContext = context;

this.mMediaProjection = mp;

wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);

windowWidth = DisplayUtils.getDisplayW(context);

windowHeight 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值