概述:

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

现在把我们项目中的直播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 区域 推流,Android——直播推流SDK相关推荐

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

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

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

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

  3. 【Android RTMP】RTMP 直播推流服务器搭建 ( Ubuntu 18.04.4 虚拟机 )

    文章目录 安卓直播推流专栏博客总结 一. Android RTMP 直播推流简介 二. Nginx.RTMP Module 编译环境源码准备 三. pcre.OpenSSL.zlib 函数库安装 四. ...

  4. 【Android RTMP】RTMP 直播推流 ( 阿里云服务器购买 | 远程服务器控制 | 搭建 RTMP 服务器 | 服务器配置 | 推流软件配置 | 直播软件配置 | 推流直播效果展示 )

    文章目录 安卓直播推流专栏博客总结 一. 阿里云服务器购买 二. 远程服务器控制软件 三. 配置 Ubuntu 服务器 1 . 更新 apt 源 2 . 安装 pcre.OpenSSL.zlib 库 ...

  5. android大疆无人机直播推流VLC

    官方给了直播的方法:startStream,最近公司需求是大疆无人机做直播推流给后台服务器,然后在后台可以看到无人机拍摄的内容,实时监控无人机的状态 因为这个最新的大疆官方给出了方法,所以做起来是非常 ...

  6. android studio yasea,安卓直播推流yasea的使用

    緊接着之前寫的安卓直播實現方法,項目后期發現有些定制的安卓設備外掛攝像頭,原來的android_rtmppush_sdk出現調取攝像頭(熱插拔)前后異常和畫面翻轉來回跳動的問題.之后調研發現有個封裝比 ...

  7. 本人开发Android视频编码和直播推流使用到的相关命令

    1.切换管理员权限: sudo su root  密码123 2.前往usr文件夹 cd /usr   cd work/ 3.创建work文件夹 mkdir work 4.强制删除文件夹 rm -rf ...

  8. php直播推流rtmp,直播推流nginx-rtmp-module集成

    战斗民族俄罗斯人民开发的一款NGINX的流媒体插件,除了直播发布音视频流之外具备流媒体服务器的常见功能 比如推拉流媒体资源 基于HTTP的FLV/MP4 VOD点播 HLS (HTTP Live St ...

  9. linux摄像头推流,树莓派直播推流---树莓派摄像头推流的几种方式

    不管使用何种推流方式,咱们要使用树莓派CSI摄像头时必须首先要进行一些设置linux 1.raspivid工具推流-延迟大约170ms 该工具已经默认集成到了树莓派之中github raspivid ...

  10. 骨密度中android区域,基于Android平台的超声骨密度测试系统的设计与实现

    摘要: 骨质疏松是一种高发病率和高危害性的退行性疾病.骨密度的精确测定是骨质疏松的防治前提,也是诊断骨质疏松的金标准.针对目前骨质早期筛查的常用设备--超声骨密度仪存在的携带不便.界面单一等问题,本文 ...

最新文章

  1. 超前探秘首个国产元宇宙百度“希壤”:率先实现10万人同屏互动
  2. html流动模型,javascript的事件流模型都有什么?
  3. 淘宝宝贝浏览量提升刷新工具 - 最好的淘宝宝贝流量提升工具
  4. Go的异常处理 defer, panic, recover
  5. 前端一HTML:二十CSS的三种存在方式
  6. C# 每月第一天和最后一天
  7. (zz)Sql Server 2005中的架构(Schema)、用户(User)、角色(Role)和登录(Login)(三)
  8. css实现loading,CSS3 19种LOADING(加载)动效
  9. android 使用动态的svg资源,在Android中使用SVG作为资源 – victor
  10. 关于mybatis的mapper和mapper.xml注入spring托管的方法 超详细
  11. 安卓开发mysql数据库_Android编程之数据库的创建方法详解
  12. 华为机试HJ9:提取不重复的整数
  13. 简单小巧的跨平台共享内存代码
  14. python下载不了怎么回事_python怎么下载
  15. Android获取安装应用Apk包大小 缓存大小 getPackageSizeInfo StorageManager
  16. js如何复制一个对象?
  17. 机考[51 - 60]
  18. 史济怀20180915_1 有限覆盖定理
  19. 【HTML+CSS之小米商城页面图】
  20. 用Arduino做一个“空心时钟”(只有表针,没有表盘)

热门文章

  1. 如何使 API 安全测试成为 CI 过程的自动化部分
  2. 央企招聘:中国华电集团直属单位2023秋季招聘
  3. 基于stm32的智能家居项目
  4. 从打通企业微信到连接腾讯会议 销售易全面释放“洪荒之力”
  5. EFM32例程——ADC
  6. 干货 | 携程持久化KV存储实践
  7. Python3菜鸟教程(5):list的基本操作和技巧
  8. ac和av的结构linux系统,基于nxp MCIMX6S6AVM08AC的汽车电子主板解析之软件系统等设置!...
  9. 百度网盘转存阿里云盘最好的机会(阿里云盘15天20TB超级会员兑换截至8月31日),附软件和教程
  10. java学习day61(乐友商城)品牌新增、FastDFS实现图片上传