• Stars
    star
    104
  • Rank 329,433 (Top 7 %)
  • Language
    Objective-C
  • Created over 8 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

UPYUN 直播 SDK。播放器、采集器、推流器统一集成,功能完备接口简练,可以快速安装使用。采集与音视频处理模块开源,灵活性强可以满足复杂定制需求。UPYUN 直播平台一站式服务:http://docs.upyun.com/live/

又拍云 iOS 直播 SDK(动态库) 使用说明

注: 从4.0.0 版本之后 SDK 改为了动态库形式.

1 SDK 概述

SDK 包含推流和拉流两部分,支持美颜滤镜、水印、连麦等全套直播功能。
50 行代码即可开始直播,结合 UPYUN直播平台 可以快速构建直播应用。

UPYUN 直播平台自主配置流程

2 SDK使用说明

2.1 运行环境和兼容性

UPLiveSDKDll.framework 支持 iOS 8 及以上系统版本;
支持 ARMv7ARM64 架构。请使用真机进行开发和测试。

UPLiveSDKDll.framework 接口支持 Swift 3 调用,参考 DemoSwift3

2.2 安装使用说明

手动安装方法:

直接将 UPLiveService文件夹拖拽到目标工程目录。

//文件结构:

UPLiveService 文件夹
├── GPUImage                 //视频处理依赖第三方库 GPUImage  
├── UPAVCapturer             //UPAVCapturer 音视频采集模块, 直播接口。
└── UPLiveSDKDll.framework   //framework 包含播放器`UPAVPlayer`和推流器`UPAVStreamer`

2.3 工程设置:

TARGET -> Build Settings -> Enable bitcode: 设置为 NO

TARGET -> General -> Embedded Binaries: 添加选择 UPLiveSDKDll.framework

注: 如果需要 app 退出后台仍然不间断推流直播,需要设置 TARGET -> Capabilities -> Backgroud Modes:ON √ Audio, AirPlay,and Picture in Picture

2.4 工程依赖:

AVFoundation.framework

QuartzCore.framework

OpenGLES.framework

AudioToolbox.framework

VideoToolbox.framework

Accelerate.framework

libbz2.1.0.tbd

libiconv.tbd

libz.tbd

CoreMedia.framework

CoreTelephony.framework

SystemConfiguration.framework

libc++.tbd

CoreMotion.framework

注: 此 SDK 已经包含 FFMPEG 3.0 , 不建议自行再添加 FFMPEG 库 , 如有特殊需求, 请联系我们

3 功能特性

3.1 推流端功能特性 (采集器 + 推流器)

  • 音频编码:AAC

  • 视频编码:H.264

  • 支持音频,视频硬件编码

  • 推流协议:RTMP

  • 支持前后置摄像头切换

  • 支持目标码率设置

  • 支持拍摄帧频设置

  • 支持美颜滤镜

  • 支持横屏拍摄

  • 支持单音频推流

  • 支持静音推流

  • 支持连麦推流

3.2 播放端功能特性 (播放器)

  • 支持播放直播源和点播源,支持播放本地视频文件。

  • 支持视频格式:HLS, RTMP, FLVmp4 等视频格式

  • 播放器支持单音频流播放,支持 speex 解码,可以配合浏览器 Flex 推流的播放

  • 低延时直播体验,配合又拍云推流 SDKCDN 分发, 可以达到全程直播稳定在 2-3 秒延时

  • 支持设置窗口大小和全屏设置

  • 支持音量调节,静音设置

  • 支持亮度调整

  • 支持缓冲大小设置,缓冲进度回调

  • 支持自动音画同步调整

4 SDK下载

Demo 下载: https://github.com/upyun/ios-live-sdk

5 使用示例

具体使用示例,请参考 demo 工程的 基础使用示例 部分,50行代码 即可以�开启�直播和播放。 高级设置和使用请参考 demo 工程的 高级设置使用示例 部分。

5.1 推流使用示例 UPAVCapturer

使用拍摄和推流功能需要引入头文件 #import "UPAVCapturer.h"UPAVCapturer 负责采集视频再经过 UPAVStreamer 进行推流直播,UPLiveSDKDll.framework中的推流器 UPAVStreamer也可以单独使用。UPAVStreamer可以配合任何采集器来推流原始或压缩的音视频数据。

    //1. 设置预览画面
    UIView *livePreview = [[UPAVCapturer sharedInstance] previewWithFrame:self.view.bounds
                                                              contentMode:UIViewContentModeScaleAspectFit];
    //2. 将预览画面添加到 view
    [self.view insertSubview:livePreview atIndex:0];
    
    //3. 设置代理,接收直播状态回调
    [UPAVCapturer sharedInstance].delegate = self;
    
    //4. 设置推流地址
    [UPAVCapturer sharedInstance].outStreamPath = [NSString stringWithFormat:@"rtmp://testlivesdk.v0.upaiyun.com/live/%@", _streamId];
    
    //6. 设置视频采集尺寸。其他详细设置请参考高级示例。
    [UPAVCapturer sharedInstance].capturerPresetLevel = UPAVCapturerPreset_640x480;
    
    //6. 开始推流
    [[UPAVCapturer sharedInstance] start];

    //7. 结束推流
    [[UPAVCapturer sharedInstance] stop];

5.2 拉流使用示例 UPAVPlayer

使用 UPAVPlayer 需要引入头文件 #import <UPLiveSDKDll/UPAVPlayer.h>

UPAVPlayer 使用接口类似 AVFoundationAVPlayer

    //1. 初始化播放器
    _player = [[UPAVPlayer alloc] initWithURL:@"rtmp://live.hkstv.hk.lxdns.com/live/hks"];
    
    //2. 设置代理,�接收状态回调信息
    _player.delegate = self;
    
    //3. 设置播放器 playView Frame
    [_player setFrame:self.view.bounds];
    
    //4. 添加播放器 playView
    [self.view insertSubview:_player.playView atIndex:0];
    
    //5. 开始播放
    [_player play];

    //6. 停止播放
    [_player stop];

[注1] 如果需要在产品中正式使用连麦功能,请联系申请 rtc appid, 可以参考 README_rtc.md 熟悉连麦直播流程。

[注2] 单音频推流与连麦, 只需要在连麦或推流时设置 [UPAVCapturer sharedInstance].audioOnly = YES; 即可。

[注3] 可以通过 [UPAVCapturer sharedInstance].streamingOn 开关,来实现先预览再推流的逻辑。

[注4] 如果确定有视频流, 而拉流的时候出现黑屏,可以设置player.hasVideo = YES 来开启强制创建视频流信息。

6 版本历史

历史版本:https://github.com/upyun/ios-live-sdk/releases

7 反馈与建议

邮箱:[email protected]

QQ: 200576786

More Repositories

1

slardar

Updating your upstream list and run lua scripts without reloading Nginx.
Lua
495
star
2

lua-resty-checkups

Manage Nginx upstreams in pure Lua.
Lua
259
star
3

upx

UPYUN Storage Command Tool
Go
193
star
4

php-sdk

UPYUN SDK for PHPer
PHP
176
star
5

upyun-resty

UPYUN's open source software for OpenResty development
175
star
6

Android-short-video

Android-short-video 是又拍云推出的一款适用于 Android 平台的短视频 SDK,它包含短视频拍摄、编辑、合成、上传,还包含短视频播放器,再结合又拍云存储和 CDN,您就可以开启您的短视频业务了。
Java
172
star
7

python-sdk

UPYUN Python SDK
Python
115
star
8

java-sdk

UPYUN Java SDK
Java
114
star
9

node-sdk

UPYUN SDK for JS(support browser and node.js)
JavaScript
95
star
10

android-player-sdk

UPYUN Android 流媒体播放器
Java
87
star
11

go-sdk

UPYUN Go SDK
Go
76
star
12

android-push-sdk

UPYUN Android 推流 SDK
Java
74
star
13

cafex

Cafex is a pure Elixir implementation of Kafka client
Elixir
69
star
14

wechat-sdk

又拍云微信小程序 SDK
JavaScript
69
star
15

lua-resty-limit-rate

Lua module for limiting request rate for OpenResty/ngx_lua, using the "token bucket" method.
Perl
68
star
16

docs

UPYUN Docs
CSS
66
star
17

android-sdk

UPYUN Android SDK
Java
51
star
18

ios-short-video

ios-short-video 是又拍云推出的一款适用于 iOS 平台的短视频 SDK,它包含短视频拍摄、编辑、合成、上传,还包含短视频播放器,再结合又拍云存储和 CDN,您就可以开启您的短视频业务了。https://www.upyun.com/products/short-video
Objective-C
51
star
19

node-upyun

UPYUN Node.js SDK !!!Deprecated
48
star
20

lua-resty-sync

Synchronizing data based on version changes
Lua
41
star
21

ios-form-sdk

UPYUN iOS SDK
Objective-C
37
star
22

ios-sdk

UPYUN iOS SDK
Objective-C
32
star
23

ruby-sdk

UPYUN Ruby SDK
Ruby
29
star
24

js-multipart-upload

HTML5 multipart-uploader demo
JavaScript
28
star
25

upyun.com

The next generation website
Vue
27
star
26

token-examples

Multilingual token generation example
JavaScript
19
star
27

upyun.github.io

UPYUN Engineering Blog
CSS
18
star
28

ueditor

Integrate UPYUN API to UEditor.
JavaScript
17
star
29

multipart-upload-android-sdk

multipart-upload-android-sdk
Java
15
star
30

discuz-plugin

UPYUN for discuz
PHP
13
star
31

node-av-pretreatment

音视频处理 SDK(Node.js)
JavaScript
11
star
32

c-sdk

UPYUN C SDK
C
10
star
33

js-form-api

表单 API,前端使用的简单 Demo
9
star
34

c-sharp-sdk

UPYUN C-Sharp SDK
C#
8
star
35

upyun-uss-script

Commonly used script for UPYUN Storage Service
Python
8
star
36

multipart-upload-php-sdk

又拍云分块上传 SDK !!! Deprecated
PHP
7
star
37

multipart-upload-ios-sdk

multipart-upload-ios-sdk
Objective-C
7
star
38

erlang-sdk

UPYUN Erlang SDK
Erlang
6
star
39

swift-sdk

又拍云 swift SDK
Swift
5
star
40

Android-QuickLogin

Java
4
star
41

ios-video-player

Objective-C
4
star
42

iOS-QuickLogin

Objective-C
4
star
43

umeditor-for-UPYUN

Integrated UPYUN API to umeditor
JavaScript
3
star
44

av-pretreatment-php-sdk

又拍云音视频预处理 PHP SDK !!! Deprecated
PHP
3
star
45

java-purge-sdk

JAVA version cache refresh for UPYUN
Java
2
star
46

ios-fusion-sdk

UPYUN 融合云 iOS SDK
Objective-C
2
star
47

utilgo

Some awesome go utils
Go
2
star
48

android-fusion-sdk

UPYUN 融合云 Android SDK
Java
1
star
49

carrot

UPYUN scoop packages
PowerShell
1
star
50

rust-sdk

1
star
51

gzjion

multi gz files merge to one
C
1
star