Skip to content

ThinkKeep/EvilsLive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EvilsLive

License MIT  Build Status

项目介绍

EvilsLive 是一个视频直播件开发工具包(SDK), 目前只支持 Android, 以后还会支持 Web/IOS 等平台。 主要负责视频直播的采集、推流、预览、播放、美图支持。

欢迎大家 Star, 你们的关注才是我们持续的动力!

注意:

目前此项目还在持续更新中....

功能特点

  • 视频编码:H.264
  • 推流协议:RTMP
  • 预览与推流分辨率可分别自由设置
  • 支持前、后置摄像头动态切换
  • 支持软编、硬编及软编兼容模式
  • 网络自适应,可根据实际网络情况动态调整目标码率,保证流畅性
  • 音频编码:AAC
  • 支持动态横竖屏推流
  • 音视频目标码率:可设

项目结构

  • android/app:这里是测试的 sameple
  • android/videolib: 直播相关核心功能实现
  • doc: 文档说明

Snapshot

snapshot

Usage

要求:

Android Studio >= 2.2.3

Android API >= 19

Step 1:

在进行推流之前,你需要有流媒体服务(视频上传默认rtmp协议),本地搭建或搭建在公有云上,随你意。

例如:rtmp://127.0.0.1/live/hjd_phone

具体可参照 ossrs/srs 搭建rtmp server

Step 2:

具体如何使用可以参照 app 中的代码

builder = EvilsLiveStreamerConfig.Builder.newBuilder();
//设置分辨率
builder.setVideoResolution(Defines.EvideoResolution.E720P);
//设置摄像头方向
builder.setCameraFacing(Defines.EcameraFacing.CAMERA_FACING_BACK);
//设置视频预览帧率
builder.setPreviewFrameRate(25);
//设置推流url
builder.setStreamUrl(url);
EvilsLiveStreamerConfig config = builder.build();
//设置预览视图
streamer.setDisplayPreview(mPreviewView);
streamer.setStreamConfig(config);
//停止预览
streamer.stopPreview();
//开启预览
streamer.startPreview();
//开启推流
streamer.startStream();
//停止推流
streamer.stopStream();

测试环境:

Android 版本: 6.0

硬件: HuaWei H60-L02

TODO LIST

  • 推流(视频)功能
  • 推流(音频)功能
  • 推流流程优化, 支持硬编、多种流媒体协议等
  • 拉流功能
  • 添加测试用例
  • 机型适配

遗留问题

  • 视频采集数据native层处理
  • 支持多种体系结构
  • 支持 Web/IOS 平台

Copyright and License

Copyright 2016-2017 ThinkKeep

Code released under the MIT License.