概述:

好像有三个月没有更新博客了,年前实在是忙的累成狗啊。。。本想直播功能稳定了就没那么多事了,没想到又要搞魔法短视频功能,马丹,短视频玩成了花啊,撸起袖子干。

现在把我们项目中的直播SDK开源出来,我们是境外直播平台,百万用户,经过半年迭代,SDK已经相当稳定,大家可以放心使用。https://github.com/WangShuo1143368701/WSLiveDemo

这个sdk是我根据这个librestreaming修修改改出来的,由于改了太多的代码,用法已经不一样了。

之前写过一篇ffmpeg实战教程(十一)手把手教你实现直播功能,不依赖第三方SDK

是用ffmpeg实现的推流,但是在实际移动端直播项目中,推流是不适合用ffmpeg的。

特性:

支持视频录制和推流,录制视频推流可以同时进行

支持推流过程中实时截帧功能

支持推流过程中实时镜像功能,不会打断推流

支持设置关键帧间隔gop

支持动态设置码率,帧率

支持分开设置预览分辨率,编码的分辨率

支持gpu滤镜,并可以通过opengles绘制图像纹理来自定义滤镜。

支持设fbo滤镜组。

支持前后摄像头快速切换,不会打断推流。

支持后台推流,后台录制视频

美颜滤镜可动态调节磨皮,美白,红润。

兼容GPUImage,一行代码不用修改就可以直接使用GPUImage的滤镜。可参考demo。

关于美颜:

美颜滤镜可动态调节磨皮,美白,红润。你可以调出一个你喜欢的美颜滤镜。

关于截帧,镜像:

推流过程中可以实时截帧。

推流过程中可以实时调节镜像,不会打断推流。可以分别调节预览镜像,推流镜像。

关于性能:

采用相机回调纹理texture,OpenGL渲染后直接把textureID传给编码器的方案,中间没有数据格式转换,没有glReadPixel()函数耗时问题。所以性能较其它方案要好的多。缺点是必须是Android4.3以上。

关于使用:

1.所有常用API都在StreamLiveCameraView类中

android:id="@+id/stream_previewView"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

2.初始化推流配置, StreamAVOption类里面有多种参数可配置,如不配置则使用默认值

/**

* 设置推流参数

*/

public void initLiveConfig() {

mLiveCameraView = (StreamLiveCameraView) findViewById(R.id.stream_previewView);

//参数配置 start

streamAVOption = new StreamAVOption();

streamAVOption.streamUrl = rtmpUrl;

//参数配置 end

mLiveCameraView.init(this, streamAVOption);

mLiveCameraView.addStreamStateListener(resConnectionListener);

//设置滤镜组

LinkedList files = new LinkedList<>();

files.add(new GPUImageCompatibleFilter(new GPUImageBeautyFilter()));

files.add(new GPUImageCompatibleFilter(new GPUImageAddBlendFilter()));

mLiveCameraView.setHardVideoFilter(new HardVideoGroupFilter(files));

}

3.开始推流录制 具体参考demo:

case R.id.btn_startStreaming://开始推流

if(!liveCameraView.isStreaming()){

liveCameraView.startStreaming(rtmpUrl);

}

break;

case R.id.btn_stopStreaming://停止推流

if(liveCameraView.isStreaming()){

liveCameraView.stopStreaming();

}

break;

case R.id.btn_startRecord://开始录制

if(!liveCameraView.isRecord()){

liveCameraView.startRecord();

}

break;

case R.id.btn_stopRecord://停止录制

if(liveCameraView.isRecord()){

liveCameraView.stopRecord();

}

关于集成:

方法2.

//Add it in your root build.gradle at the end of repositories:

allprojects {

repositories {

...

maven { url 'https://jitpack.io' }

}

}

//Add the dependency

dependencies { compile compile 'com.github.WangShuo1143368701:WSLiveDemo:v1.5' }

关于学习:

欢迎加入音视频交流群:364886309

android接推流sdk,Android——直播推流SDK相关推荐

  1. Android开发-在Android里接入阿里云推流SDK实现直播推流的功能

    前 言 如今,在国内移动互联网发展了几年的时间,移动开发技术也相对的成熟,在咱们日常使用的手机App中也少不了直播的功能,不管是娱乐类.游戏类.体育类还是教育类等的App都会有直播的功能,可以说直播的 ...

  2. Android开发-在Android里接入腾讯云推流SDK实现直播推流的功能

    前 言 如今,在国内移动互联网发展了几年的时间,移动开发技术也相对的成熟,在咱们日常使用的手机App中也少不了直播的功能,不管是娱乐类.游戏类.体育类还是教育类等的App都会有直播的功能,可以说直播的 ...

  3. 美颜SDK和直播美颜SDK有什么区别?

    如今市场上有着各式各样的美颜SDK开发商,他们的产品各有各的特点,但总体可以规划为两个分支,一个是实时美颜SDK.另一个是非实时美颜SDK.第一种顾名思义就是在动态的情况下快速完成对目标的美颜.美型, ...

  4. android直播sdk+美颜,直播美颜sdk的三大功能及注意事项

    直播平台日渐增加,平台之间的竞争力也是很大的,想要吸引更多的用户,保障平台的稳定运行,是少不了美颜SDK的接入的,绝大多数社交平台都需要借助美颜特效实现更好的直播效果.美颜SDK可以根据用户不同的需求 ...

  5. 【Android RTMP】安卓直播推流总结 ( 直播服务器搭建 | NV21 图像采集 | H.264 视频编码 | PCM 音频采集 | AAC 音频编码 | RTMP 包封装推流 )

    文章目录 一. 安卓直播推流专栏博客总结 二. 相关资源介绍 三. GitHub 源码地址 四. 整体 Android 直播推流数据到服务器并观看直播演示过程 Android 直播推流流程 : 手机采 ...

  6. 【Android RTMP】RTMP 直播推流阶段总结 ( 服务器端搭建 | Android 手机端编码推流 | 电脑端观看直播 | 服务器状态查看 )

    文章目录 安卓直播推流专栏博客总结 一. 服务器搭建 二. 手机端推流 三. 电脑端观看直播 四. RTMP 服务器端状态 安卓直播推流专栏博客总结 Android RTMP 直播推流技术专栏 : 0 ...

  7. 【Android RTMP】RTMPDump 推流过程 ( 独立线程推流 | 创建推流器 | 初始化操作 | 设置推流地址 | 启用写出 | 连接 RTMP 服务器 | 发送 RTMP 数据包 )

    文章目录 安卓直播推流专栏博客总结 一. Java 层传入的 RTMP 推流地址处理 二. RTMPDump 推流线程 三. 创建 RTMP 对象 四. 初始化 RTMP 对象 五. 设置 RTMP ...

  8. Android流媒体直播第三方库,Android——直播推流SDK

    概述: 好像有三个月没有更新博客了,年前实在是忙的累成狗啊...本想直播功能稳定了就没那么多事了,没想到又要搞魔法短视频功能,马丹,短视频玩成了花啊,撸起袖子干. 现在把我们项目中的直播SDK开源出来 ...

  9. 本系列介绍了rtmp直播推流全过程(已完结)

    本系列介绍了rtmp直播推流全过程 完整项目地址 (已完结) 以下文章是针对每一个情况,介绍音视频相关知识,以及实现的原理,总共分五章: 第一章:直播推流全过程:视频数据源之YUV(1) RGB或YU ...

最新文章

  1. pandas使用rename函数自定义重命名dataframe指定索引标签(位置)的名称(customize rename index value or label)
  2. python3下载安装配置-Linux 安装python3.7.3
  3. VC++获取屏幕大小第一篇 像素大小GetSystemMetrics
  4. Spring AOP XML配置及注解配置
  5. php 去年年初和年底时间,PHP 日期与时间
  6. java连接并操作redis_java 使用 jedis 连接 redis 并进行简单操作
  7. 人口增长模型_未来中国近一半人口将生活在20强城市,这是异想天开还是大势所趋?...
  8. 简单mysql优化_MySQL简单优化
  9. HTML做一个个人博客页面(纯html代码)
  10. IMEI,手机号,身份证号格式有效性校验
  11. vue表格根据属性值设置背景颜色、vue表格设置鼠标悬浮背景颜色、vue表格的隔行变色修改背景颜色
  12. 你的电脑或移动设备不支持Miracast
  13. 英雄联盟——心得体会
  14. 搭建内网yum源镜像仓库
  15. Html 内嵌 选择器属性 Dom操作 JavaScript 事件
  16. 微信跳一跳辅助之JAVA版(最容易理解的算法)实现原理分析
  17. open-cv 读存图片
  18. buuctf crypto page 2
  19. Swarm管理Docker集群
  20. 360Replugin插件启动Activity慢导致ANR的问题

热门文章

  1. 案例集锦|科技赋能,华为云GaussDB助千行百业数字化转型
  2. 【API进阶之路】API带来的微创新,打动投资人鼓励我创业
  3. Cassandra Gossip协议的二三事儿
  4. 一文带你掌握OBS的两种常见的鉴权方式
  5. 华为全面启航计算战略:“鲲鹏+昇腾”双引擎
  6. 索引体积_MySQL入门之索引
  7. SpringBoot和监控管理
  8. Kotlin学习笔记 第二章 类与对象 第十二 十三节 对象表达式与对象声明 类型别名
  9. error: unrecognized arguments: 不运行_JavaScript函数 arguments
  10. 统计学习方法第二版知识点合集 - 自用笔记