閱讀988 返回首頁    go 財經資訊


iOS 推流SDK使用說明__SDK文檔及下載_API及SDK_視頻直播-阿裏雲

文檔說明:本文檔麵向所有使用該SDK的開發人員、測試人員以及對此感興趣的用戶,要求讀者具有一定的iOS開發能力

1. 簡介

iOS推流SDK是在iOS平台上使用的軟件開發工具包(Soft Development Kit),為iOS開發者提供簡單易用的接口,幫助開發者實現iOS平台上的推流應用開發。

1.1 功能說明

  1. 方便快捷、低門檻實現媒體推流功能。用戶無須關心內部實現細節,隻需要自定義界麵既可以實現專業級的推流應用。

  2. 推流支持格式:rtmp

  3. 編碼目前為硬編

1.2 安裝包說明

推流器SDK的完整下載包中包含test、lib、doc等
  1. test:主要存放了調用SDK的示例工程,可以幫助用戶了解如何使用該SDK

  2. lib:推流器SDK開發包,包含推流器framework文件,需要在您的工程中進行引用

  3. doc:存放SDK相關接入文檔。

1.3 推流器性能

  1. 目前推流SDK推流采用的是硬編。

  2. 推流采用librtmp推流

  3. DK的大小:使用SDK庫安裝之後的程序大小在1M左右。即為你的程序增 加1M左右的大小。

1.4 注意事項

  1. 推流器SDK目前隻支持單實例。不能夠同時開2個推流實例,同時隻能存在一個實例,需要另開實例的時候,需要關閉之前存在的實例。

  2. 操作係統版本要求iOS8.0以上。

2. 使用說明

2.1 開發環境配置

  1. 需要準備iOS的運行環境(Xcode8.0以上版本,iOS SDK8.0以上版本), 以及硬件CPU支持ARMv7、ARMv7s或ARM64的iOS設備。

2.2、開通直播

詳情參見 直播快速開始 流程

2.3、SDK下載

iOS 推流SDK開發包(2016-11-09)

2.4、SDK集成

拖拽sdk文件夾到自己的Xcode項目中。

sdk

勾選 Copy items if needed,點擊 Finish。

打開項目的 app target,在 Build Phases 中的 Link Binary With Libraries添加以下依賴庫。

libz.tbd
VideoToolbox.framework
AudioToolbox.framework
libstdc++.tbd
SystemConfiguration.framework
CoreTelephony.framework

2.5 iOS10適配說明

由於iOS10.0對於iOS設備權限獲取的方式不同於之前的版本,因此特別說明.

推流SDK需要獲取iOS設備的攝像頭和麥克風權限,需要在開發項目的plist文件中添加如下權限配置
  1. Privacy - Camera Usage Description
  2. Privacy - Microphone Usage Description

3. SDK使用指南

3.1 開發環境配置

  1. 需要準備Xcode運行環境,以及硬件配置iOS8.0以上的蘋果手持設備。

  2. 權限開通,在阿裏雲上申請推流SDK開發權限

3.2 開發步驟

在需要直播功能的控製器頭部導入#import <AlivcLiveVideo/AlivcLiveVideo.h>,並設置代理AlivcLiveSessionDelegate使用用媒體推流器SDK的調用順序為

  1. 調用[[AlivcLiveSession alloc] initWithConfiguration:configuration]創建session類

  2. 調用alivcLiveVideoStartPreview開啟預覽

  3. 調用alivcLiveVideoConnectServer開始推流

  4. 調用alivcLiveVideoDisconnectServer停止推流

  5. 調用alivcLiveVideoStopPreview停止預覽

  6. session = nil 銷毀直播session

3.3 Demo示例

在 SDK 中提供了 Demo,此 Demo 是用推流 SDK 開發了一個完整的推流器, 用戶可以參考 Demo 進行推流的開發。

下麵給出了部分重要的 Demo 中調用 SDK 的代碼。

一. 設置直播參數

1.初始化config配置類

  1. AlivcLConfiguration *configuration = [[AlivcLConfiguration alloc] init];

2. 設置推流地址

  1. configuration.url = pushUrl;

3. 設置最大碼率

  1. configuration.videoMaxBitRate = 1500 * 1000;

4. 設置當前視頻碼率

  1. configuration.videoBitRate = 600 * 1000;

5. 設置最小碼率

  1. configuration.videoMinBitRate = 400 * 1000;

6. 設置音頻碼率

  1. configuration.audioBitRate = 64 * 1000;

7. 設置直播分辨率

  1. configuration.videoSize = CGSizeMake(360, 640);

8. 設置橫屏or豎屏

  1. configuration.screenOrientation = AlivcLiveScreenVertical;

9. 設置幀率

  1. configuration.fps = 20;

10. 設置攝像頭采集質量

  1. configuration.preset = AVCaptureSessionPresetiFrame1280x720;

11. 設置前置攝像頭或後置攝像頭

  1. configuration.position = AVCaptureDevicePositionFront;

12.設置水印圖片

  1. configuration.waterMaskImage = [UIImage imageNamed:@"watermask"];

13.設置水印位置

  1. configuration.waterMaskLocation = 1;

14.設置水印相對x邊框距離

  1. configuration.waterMaskMarginX = 10;

15.設置水印相對y邊框距離

  1. configuration.waterMaskMarginY = 10;

16.設置重連超時時長

  1. configuration.reconnectTimeout = 5;

二. 創建直播session

1. 初始化liveSession

  1. _liveSession = [[AlivcLiveSession alloc] initWithConfiguration:configuration];

2. 設置session代理

  1. _liveSession.delegate = self;

3. 開啟直播預覽

  1. [_liveSession alivcLiveVideoStartPreview];

4. 開啟直播

  1. [_liveSession alivcLiveVideoConnectServer];

5. 獲取直播預覽視圖,可將獲取的直播視圖添加到當前控製器上,實現直播預覽功能。

  1. [_liveSession previewView]

6.停止預覽

  1. [_liveSession alivcLiveVideoStopPreview];

注意:停止預覽後將liveSession置為nil

7.關閉直播

  1. [_liveSession alivcLiveVideoDisconnectServer];

8.設置閃光燈模式

  1. _liveSession.torchMode = AVCaptureTorchModeOn//關閉AVCaptureTorchModeOff;

9.開啟美顏

  1. [_liveSession setEnableSkin:YES];

10.縮放

  1. [_liveSession alivcLiveVideoZoomCamera:1.0f];

11.聚焦

  1. [_liveSession alivcLiveVideoFocusAtAdjustedPoint:percentPoint autoFocus:YES];

12.調試信息

  1. AlivcLDebugInfo *i = [_liveSession dumpDebugInfo];

三、直播功能的相關代理方法

@Required

1.直播出錯的代理方法

  1. -(void)alivcLiveVideoLiveSession:(AlivcLiveSession *)session error:(NSError *)error;

2.網速較慢時的代理方法

  1. -(void)alivcLiveVideoLiveSessionNetworkSlow:
  2. (AlivcLiveSession *)session;

@optional

1.音頻初始化失敗

  1. -(void)alivcLiveVideoLiveSession:(AlivcLiveSession *)session OpenAudioError:(NSError *)error;

2.視頻初始化失敗

  1. -(void)alivcLiveVideoLiveSession:(AlivcLiveSession *)session OpenVideoError:(NSError *)error;

3.音頻編碼器初始化失敗

  1. -(void)alivcLiveVideoLiveSession:(AlivcLiveSession *)session EncodeAudioError:(NSError *)error;

4.視頻編碼器初始化失敗

  1. -(void)alivcLiveVideoLiveSession:(AlivcLiveSession *)session EncodeVideoError:(NSError *)error;

5. 音頻設備獲取成功

  1. - (void)alivcLiveVideoOpenAudioSuccess:(AlivcLiveSession *)session;

6.視頻設備獲取成功

  1. - (void)alivcLiveVideoOpenVideoSuccess:(AlivcLiveSession *)session;

7.推流連接成功

  1. - (void)alivcLiveVideoLiveSessionConnectSuccess:(AlivcLiveSession *)session;

8.碼率變化

  1. -(void)alivcLiveVideoLiveSession:(AlivcLiveSession *)session bitrateStatusChange:(ALIVC_LIVE_BITRATE_STATUS)bitrateStatus;

9.重連超時

  1. - (void)alivcLiveVideoReconnectTimeout:(AlivcLiveSession *)session

4. 接口說明

4.1 AlivcLiveSession

類名:AlivcLiveSession

功能:推流器接口類,提供推流控製

成員:

成員 功能
initWithConfiguration 初始化推流器
StartPreview 開始預覽
StopPreview 停止預覽
RotateCamera 轉換攝像頭
FocusAtAdjustedPoint:autoFocus 對焦攝像頭
ZoomCamera 縮放攝像頭
enalbelSkin 美顏
torchMode 閃光燈
enableMute 靜音
ConnectServer 開始推流
DisConnectServer 斷開推流
dumpDebugInfo 調試信息
VideoBitRate 碼率
Version 版本號

各成員具體使用:

  1. /*!
  2. * 當前版本號
  3. *
  4. * @return 版本號
  5. */
  6. + (NSString *)alivcLiveVideoVersion;
  7. /*!
  8. * init
  9. *
  10. * @param configuration 配置
  11. *
  12. * @return AlivcLiveSession
  13. */
  14. - (instancetype)initWithConfiguration:(AlivcLConfiguration *)configuration;
  15. /*!
  16. * 預覽View
  17. *
  18. * @return 預覽View
  19. */
  20. - (UIView *)previewView;
  21. /*!
  22. * 開始
  23. */
  24. - (void)alivcLiveVideoStartPreview;
  25. /*!
  26. * 停止
  27. */
  28. - (void)alivcLiveVideoStopPreview;
  29. /*!
  30. * 轉換攝像頭
  31. */
  32. - (void)alivcLiveVideoRotateCamera;
  33. /*!
  34. * 對焦
  35. *
  36. * @param point 位置
  37. * @param autoFocus 是否自動對焦
  38. */
  39. - (void)alivcLiveVideoFocusAtAdjustedPoint:(CGPoint)point autoFocus:(BOOL)autoFocus;
  40. /*!
  41. * 縮放
  42. *
  43. * @param zoom 縮放倍數
  44. */
  45. - (void)alivcLiveVideoZoomCamera:(CGFloat)zoom;
  46. /*!
  47. * 更新live配置,可以更新碼率和幀率,但是隻能在connectServer之前調用
  48. *
  49. * @param block 配置
  50. */
  51. - (void)alivcLiveVideoUpdateConfiguration:(void(^)(AlivcLConfiguration *configuration))block;
  52. /*!
  53. * 推流連接
  54. */
  55. - (void)alivcLiveVideoConnectServer;
  56. /*!
  57. * 推流斷開連接
  58. */
  59. - (void)alivcLiveVideoDisconnectServer;
  60. /*!
  61. * 調試信息
  62. *
  63. * @return 調試信息
  64. */
  65. - (AlivcLDebugInfo *)dumpDebugInfo;
  66. /*!
  67. * 當前碼率
  68. *
  69. * @return 碼率
  70. */
  71. - (NSInteger)alivcLiveVideoBitRate;

4.2 delegate監聽回調

成員 功能
error 推流錯誤
NetworkSlow 網速慢
ConnectSuccess 連接成功
OpenVideoSuccess 攝像頭獲取成功
OpenAudioSuccess 麥克風獲取成功
openAudioError 音頻設備打開失敗
openVideoError 視頻設備打開失敗
encodeAudioError 音頻編碼失敗
encodeVideoError 視頻編碼失敗
bitrateStatusChange 碼率變化
ReconnectTimeout 重連超時

4.3 AlivcLDebugInfo

類名: AlivcLDebugInfo

功能: 提供推流實時調試信息

成員:

成員 功能
cameraPresent 攝像頭方向
connectStatus 連接狀態
fps 當前編碼幀數
encodeSpeed 編碼速度
speed 當前上傳速度 單位byte
localBufferSize 本地buffer大小
localBufferAudioCount 本地buffer音頻幀數
localBufferVideoCount 當前buffer視頻幀數
localDelay 編碼耗時 單位ms
pushSize 當前上傳數據大小 單位 byte
keyFrameDTS 上一個關鍵幀dts
currentVideoPTS 當前輸出流video pts
currentAudioPTS 當前輸出流audio pts
encodeFrameCount 所有編碼幀數
pushFrameCount 所有發送幀數
videoDiscardFrameCount 視頻丟幀數
audioDiscardFrameCount 音頻丟幀數
cycleDelay 周期性延遲 單位 ms

5. 注意事項

6. 版權聲明

版權所有,切勿盜版

最後更新:2016-11-24 11:23:49

  上一篇:go Android 推流SDK使用說明__SDK文檔及下載_API及SDK_視頻直播-阿裏雲
  下一篇:go Android播放器SDK說明__SDK文檔及下載_API及SDK_視頻直播-阿裏雲