android 直播服务器,Android直播环境搭建

目录

f6132c13e0d2?utm_source=desktop&utm_medium=timeline

目录

环境准备

直播测试

●OBS Studio配置推流:

在来源窗口右键->添加->显示器捕获

f6132c13e0d2?utm_source=desktop&utm_medium=timeline

zhibo.png

然后在控件窗口点击设置进行配置留的推送地址:

f6132c13e0d2?utm_source=desktop&utm_medium=timeline

配置推流地址,推流的协议为rtmp,后面则是服务器ip+端口号+随意名称(我是live),然后是下面的流名称这里我填的test。

f6132c13e0d2?utm_source=desktop&utm_medium=timeline

设置完之后就可以开始推流了

f6132c13e0d2?utm_source=desktop&utm_medium=timeline

●VLC拉流播放:

打开VLC选择工具栏的媒体->流

f6132c13e0d2?utm_source=desktop&utm_medium=timeline

选择网络选项卡,然后我们输入与推流一样的地址,然后点击播放:

f6132c13e0d2?utm_source=desktop&utm_medium=timeline

拉流成功的话会显示你屏幕的图像。

Android进行推流

这里我使用的是一个非常好用的Android推流开源库:https://github.com/begeekmyfriend/yasea

使用方式很简单首先导入它的library然后在代码中简单几行即可实现:

布局文件代码:

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="com.itfitness.zhiboapp.MainActivity">

android:id="@+id/glsurfaceview_camera"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

Activity代码:

//另外这个Activity还需要实现这些接口:SrsEncodeHandler.SrsEncodeListener, RtmpHandler.RtmpListener, SrsRecordHandler.SrsRecordListener

SrsCameraView cameraView = (SrsCameraView) findViewById(R.id.glsurfaceview_camera);

mPublisher = new SrsPublisher(cameraView);

//编码状态回调

mPublisher.setEncodeHandler(new SrsEncodeHandler(this));

mPublisher.setRecordHandler(new SrsRecordHandler(this));

//rtmp推流状态回调

mPublisher.setRtmpHandler(new RtmpHandler(this));

//预览分辨率

mPublisher.setPreviewResolution(1280, 720);

//推流分辨率

mPublisher.setOutputResolution(720, 1280);

//传输率

mPublisher.setVideoHDMode();

//开启美颜(其他滤镜效果在MagicFilterType中查看)

mPublisher.switchCameraFilter(MagicFilterType.BEAUTY);

//打开摄像头,开始预览(未推流)

mPublisher.startCamera();

//mPublisher.switchToSoftEncoder();//选择软编码

mPublisher.switchToHardEncoder();//选择硬编码

//开始推流 rtmpUrl(ip换成服务器的部署ip)

mPublisher.startPublish("rtmp://192.168.0.102/live/test");

接下来使用VLC进行拉流播放:

f6132c13e0d2?utm_source=desktop&utm_medium=timeline

如果觉得VLC比较卡的话可以使用一个在线的拉流播放工具:http://www.cutv.com/demo/live_test.swf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一: 使用javacv来实现,最终也是用过ffmpeg来进行编码和推流,javacv实现到可以直接接收摄像头的帧数据 需要自己实现的代码只是打开摄像头,写一个SurfaceView进行预览,然后实现PreviewCallback将摄像头每一帧的数据交给javacv即可 javacv地址:https://github.com/bytedeco/javacv demo地址:https://github.com/beautifulSoup/RtmpRecoder/tree/master 二: 使用Android自带的编码工具,可实现硬编码,这里有一个国内大神开源的封装很完善的的库yasea,第一种方法需要实现的Camera采集部分也一起封装好了,进行一些简单配置就可以实现编码推流,并且yasea目前已经直接支持摄像头的热切换,和各种滤镜效果 yasea地址(内置demo):https://github.com/begeekmyfriend/yasea 服务器 流媒体服务器我用的是srs,项目地址:https://github.com/ossrs/srs 关于srs的编译、配置、部署、在官方wiki中已经写的很详细了,并且srs同样是国内开发人员开源的项目,有全中文的文档,看起来很方便 这里有最基本的简单编译部署过程 Android直播实现(二)srs流媒体服务器部署 播放器 android端的播放使用vitamio,还是国内的开源播放器,是不是感觉国内的前辈们越来越屌了^~^! vitamio支持几乎所有常见的的视频格式和流媒体协议 vitamio地址(内置demo):https://github.com/yixia/VitamioBundle 这里使用的是yaesa库,先介绍一下直播实现的流程:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值