Skip to content

大牛直播iOS推流端SDK说明

daniulive edited this page Jul 18, 2017 · 7 revisions

1 集成说明

  • 相关库:libSmartPublisherSDK.a
  • 相关头文件:
    • nt_event_define.h
    • SmartPublisherSDK.h
  • 如集需要引入的framework
    • libz.tbd
    • libc++.tbd
    • libstdc++.tbd
    • Libbz.tbd
    • libiconv.tbd
    • Accelerate.framework
    • AudioToolBox.framework
    • AssetsLibrary.framework
    • AVFoundation.framework
    • CoreMedia.framework
    • Foundation.framework
    • UIKit.framework
    • VideoToolBox.framework
  • 如需集成到自己系统测试,请用大牛直播的app name:

Info.plist-->右键Open As-->Source Code 添加或者编辑

<key>CFBundleName</key>

<string>SmartiOSPublisher</string>

  • 快照添加到“照片”权限:

Info.plist-->右键Open As-->Source Code

  • 添加

<key>NSPhotoLibraryUsageDescription</key> <string>1</string>

2 调用时序

1.SmartPublisherInit,初始化publisher,参数设置如下:

Audio_opt:

0:不发布audio;

1:发布audio;

2:对接外部编码后的audio数据(AAC)

video_opt:

0:不发布video;

1:发布video;

2:对接外部编码后的video数据(H.264)

2.SmartPublisherSetPublishOrientation,设置横竖屏推送模式(仅适用于内置非美颜模式);

3.【美颜相关】SmartPublisherSetBeauty,是否使用美颜:

beautyType:

0:不使用美颜;

1:内部实现美颜;

2:第三方美颜接口给数据。

4.【视频配置】SmartPublisherSetGopInterval,设置推送端GOP间隔,一般建议在帧率的1~3倍,如不设置,用底层计算的默认值;

5.【视频配置】SmartPublisherSetVideoBitRate,设置software/harderware encode video bit-rate,最大码流一般是平均码流的2倍,如不设置,用底层计算的默认值;

6.【视频配置】SmartPublisherSetFPS,设置fps,如不设置,用底层计算的默认值;

7.【视频裁剪】SmartPublisherSetClippingMode,设置裁剪模式(仅用于640*480分辨率, 裁剪主要用于移动端宽高适配),如不设置,默认裁剪模式;

8.【视频镜像】SmartPublisherSetMirror,镜像模式: 播放端和推送端本地回显方向显示一致;

9.【美颜相关】SmartPublisherSetBeautyBrightness,内部美颜时使用,设置美颜效果;

10.【美颜或外部视频】SmartPublisherSetExternalResolution,设置采集分辨率,美颜或外部视频采集时使用;

11.【美颜或外部编码前视频数据对接】可选的第三方video数据接入方式(三选一),YUV/BGRA/ARGB:

SmartPublisherSetExternalYuvData,传递YUV数据;

SmartPublisherSetExternalBGRAData,传递BGRA数据;

SmartPublisherSetExternalARGBData,传递ARGB数据;

12.【第三方编码后数据】SmartPublisherOnReceivingVideoEncodedData,第三方编码后视频数据接口;

13.【第三方编码后数据】SmartPublisherSetAudioSpecificConfig(),第三方音频参数设置接口;

14.【第三方编码后数据】SmartPublisherOnReceivingAACData(),第三方编码后视频数据接口;

15.【实时静音】SmartPublisherSetMute(),设置实时静音、取消静音;

16.【录像】SmartPublisherSetRecorder, 设置是否边推流边本地存储;

17.【录像】SmartPublisherSetRecorderDirectory, 设置录像存放目录;

18.【录像】SmartPublisherSetRecorderFileMaxSize, 设置每个录像文件的大小 (5~500M), 默认200M;

19.【快照】SmartPublisherSaveImageFlag,设置是否启用快照;

20.【快照】SmartPublisherSaveCurImage,推送或录像过程中,根据设置路径和文件名,实时快照;

21.SmartPublisherSetRtmpPublishingType,设置rtmp publisher类型,0:live,1:record。

22.SmartPublisherSetVideoPreview,设置video preview,此接口仅当用daniulive采集视频数据时设置,若视频来自外部美颜(DN_BEAUTY_ADDITIONAL_BEAUTY)或外部第三方数据,无需调用;

23.SmartPublisherStartCapture,设置分辨率,开始采集音视频数据;

24.SmartPublisherSwitchCamera,前后摄像头切换,此接口仅当用daniulive采集视频数据时设置;

25.SmartPublisherStartPublish,开始推流;

26.SmartPublisherStopPublish,停止推流;

/* 增加新接口是为了把推送和录像分离, 老的接口依然可用
  *(SmartPublisherStartPublish, 	SmartPublisherStopPublish), 
 * 但是不要老接口和新接口混着用,这样结果是未定义的
	 */

27.【录像和推流分离接口】SmartPublisherStartPublisher,只推流;

28.【录像和推流分离接口】SmartPublisherStopPublisher,关闭推流;

28.【录像和推流分离接口】SmartPublisherStartRecorder,只录像;

30.【录像和推流分离接口】SmartPublisherStopRecorder,停止录像。

31.SmartPublisherStopCaputure,停止采集音视频数据;

32.SmartPublisherUnInit,unInit推流SDK;

33.SmartPublisherGetSDKVersionID,获取当前SDK版本;

34.handleSmartPublisherEvent: Event callback处理。