大牛直播录像SDK

大牛直播录像SDK分布于以下模块:

  1. windows/android/iOS推送端SDK Demo;
  2. windows/android/iOS播放端SDK Demo;

大牛直播录像SDK不同于普通录像接口,更智能,和推送、播放、转发功能完全分离,支持随时录像。

此外,大牛直播录像SDK在录像过程中,支持切换不同URL,如两个URL配置一致,则可以录制到同一个MP4文件,如不一致,可自动分割到下一个文件。

录像SDK,从开始录像,到录像结束均有event callback上来。

大牛直播跨平台RTSP/RTMP转RTMP转发SDK

一个好的转发模块,首先要低延迟!其次足够稳定灵活,如果可以跨平台,还能以SDK形式提供,会给开发者提供更大的便利!

大牛直播SDK转发模块全面支持Windows、Android和iOS平台

我们不一样

  1. 大牛直播SDK转发模块,你可以看成我们强劲的播放器SDK+推流SDK合体,通过高效的数据传递,播什么,就能录什么,也能转什么
  2. 拉取本地或远程的rtsp/rtmp流,推到客户需要的rtmp服务器,让不通用或同时无法支撑多路访问的流,推到客户期望的服务器或CDN;
  3. 支持多路流拉取转发,超低资源占用
  4. 支持同一路转发流,数据源不断切换(比如,rtsp或rtmp不同数据源url之间切换,依然推到同一个rtmp地址,播放端无缝支持);
  5. 岂止是转发,还能随时本地预览
  6. 岂止是本地预览,还能同时有选择的多路录像
  7. 拒绝无聊的开源模块拼凑和一成不变的逻辑,行业内屈指可数以SDK形式提供的协议转换/转发模块,客户调用更方便;
  8. 跨平台,多路多实例;
  9. 拒绝无聊的吹嘘拒绝喧宾夺主的花哨页面纯干货,致力于靠谱好用的转发SDK

Windows平台(对应SmartStreamRelayDemo.exe):

支持同时多路拉取rtmp/rtsp流/本地flv文件,并分别转发到服务器(超低资源占用,支持设备性能内多路转发)

Windows转发平台支持功能:

  1. 支持拉取rtmp流;
  2. 支持拉取rtsp流;
  3. 支持本地flv文件转发(支持制定文件位置转发,或转发过程中seek);
  4. 支持本地预览;
  5. 支持转发过程中,实时静音;
  6. 支持转发过程中,切换rtmp/rtsp/flv本地文件url;
  7. 支持边转发,边本地录像。

 

Android平台(对应SmartRelayDemoV2):

Android转发平台支持功能:

  1. 支持拉取rtmp流;
  2. 支持拉取rtsp流;
  3. 支持本地预览;
  4. 支持转发过程中,实时静音;
  5. 支持转发过程中,切换rtmp/rtsp url;
  6. 支持边转发,边本地录像。

iOS平台(对应SmartiOSRelayDemoV2):

iOS转发平台支持功能:

  1. 支持拉取rtmp流;
  2. 支持拉取rtsp流;
  3. 支持本地预览;
  4. 支持转发过程中,实时静音;
  5. 支持转发过程中,切换rtmp/rtsp url;
  6. 支持边转发,边本地录像。

更多资料,可以访问官网 http://daniulive.com 或 https://github.com/daniulive/SmarterStreaming/

大牛直播RTMP/RTSP播放器SDK

windows播放器/android播放器/iOS播放器

  •  超低延迟的rtmp播放器;
  •  超低延迟的rtsp播放器;
  •  完美支持多实例播放(同时播放多路stream,可同时支持rtmp、rtsp stream播放);
  •  支持RTSP TCP/UDP模式切换;
  •  支持播放端,buffer设置;
  •  支持秒开模式;
  •  windows双击画面进入全屏模式;
  •  audio支持aac/speex/g.711;
  •  windows/iOS播放端sdk支持回调编码过的音视频数据(Video:H.264/YUV Audio:aac/speex/pcma/pcmu)到上层;
  •  android播放端sdk支持回调编码过的音视频数据(Video:YUV/RGB Audio:pcma/pcmu)到上层;
  •  支持自定义播放布局;
  •  音视频多种render机制;
  •  支持播放过程中,’实时静音/取消静音’;
  •  支持播放段视频view实时旋转(0° 90° 180° 270°);
  •  支持播放url快速切换,同等配置的流,切换url依旧可以录制到同一个文件
  •  android/iOS支持软硬解码,业内真正靠谱的超低延迟、低资源占用播放rtsp/rtmp 1080p+;
  •  [快照]支持播放/录像过程中,随时快照
  •  [windows点播播放器]支持本地flv文件播放(支持获取flv文件的duration(时长);支持显示当前播放位置;支持开始播放或播放过程中seek(跳转播放位置),也许是行业内seek最快的flv点播播放器。)
  •  支持针对类似于娃娃机直播方案的超低延迟模式设置(公网200~400ms)。

分平台说明:

  1. Windows平台

大牛直播SDK-Windows RTMP/RTSP/本地FLV播放器使用说明

大牛直播推流SDK

Windows屏幕截取/摄像头推送录像

  1. 视频源相关:
  •  [屏幕/摄像头]支持帧率、关键帧间隔、码率、编码profile、编码速度等设置;
  •  [屏幕]支持屏幕裁剪,根据帧率和推送分辨率,自动推荐码流;
  •  [摄像头]支持摄像头选择、分辨率设置、帧率设置;
  •  [扩展数据]支持外部H.264接口输入;
  1. 音频源相关
  •  [音频]采集麦克风;
  •  [音频]采集扬声器;
  •  [扩展数据]AAC, Speex WB, PCMA, PCMU数据接口输入;
  1. 摄像头和屏幕合成
  •  [摄像头和屏幕实时切换]支持推送过程中,摄像头和屏幕互相切换,单画面显示摄像头或屏幕;
  •  [摄像头叠加到屏幕] 支持摄像头按照设置坐标,叠加到屏幕指定位置,并支持实时关闭叠加层;
  •  [屏幕叠加到摄像头] 支持屏幕按照设定坐标,叠加到摄像头指定位置,并支持实时关闭叠加层;
  1. 水印和透明度遮挡
  •  [实时水印]支持动态水印设置,完美支持文字水印、实时时间水印和图片水印
  •  [透明度]可以设置透明度处理(设置遮盖);
  1. 音频合成
  •  [音频]支持扬声器和麦克风音频混音输出(同时选择“采集扬声器”和“采集麦克风”);
  1. 音频处理
  •  [音频]支持音频“端点检测(VAD)”,自适应码流,音频码流更节省;
  •  [音频]支持回音消除功能(一对一功能:可通过在两台windows机器同时开启daniulive的推送和播放端demo,相互推送播放测试);
  •  [音频]支持噪音抑制功能;
  •  [音频]支持自动增益控制;
  1. 音视频推送类型选择
  •  [视频]支持推送H.264;
  •  [音频]支持推送AAC;
  •  [音频]支持推送Speex;
  •  [音频]支持推送PCMA/PCMU;
  1. 音视频类型、静音、快照、录像等
  •  [音视频]支持纯音频、纯视频、音视频推送;
  •  [音频]推送过程中实时静音/取消静音;
  •  [对接服务器]完美支持自建服务器或CDN;
  •  [录像]录像和推送完全分离,完美支持“边推送边录像”、“先推送、后录像”、“先录像,后推送;
  •  [录像]支持设置录像文件前缀、录像文件大小,录像文件增加日期、时间;
  •  [快照]支持推送或录像过程中,随时快照

Android推流/iOS推流

  •  多分辨率选择;
  •  支持横竖屏推送;
  •  音视频推送、纯音频推送、纯视频推送;
  •  支持边采集、边录像
  •  支持rtmp推送 live|record模式设置;
  •  真正靠谱的录像、推流分离模式,支持推流过程中随时开启录像,录像过程中,随时推流;
  •  支持本地录像文件回放、处理;
  •  采集过程中,前后摄像头切换;
  •  提供编码前(YUV/RGB)、编码后音视频(H.264/AAC)接口对接,方便AR/VR设备调用。
  •  android/iOS自带美颜功能;
  •  android完美支持文字水印、实时时间水印和图片水印
  •  支持推送端实时静音/取消静音
  •  支持软硬编码自适应;
  •  android支持后台service推送摄像头或屏幕(推送屏幕需要5.0+版本);
  •  iOS支持后台推送屏幕(基于ReplayKit,需要iOS 10.0+版本);
  •  android支持实时传递远端PCM数据;
  •  支持gop间隔、帧率、bierate、android编码profile和编码速度设置;
  •  支持推送端镜像设置;
  •  [音频]android支持噪音抑制功能;
  •  [音频]android支持自动增益控制;
  •  [音频]android支持Speex推送;
  •  [音频]android支持Speex编码质量设置;
  •  [快照]支持推送或录像过程中,随时快照;
  •  iOS支持裁剪模式设置;
  •  完美支持各个厂家CDN。

相关平台说明:

  1. Windows平台:

大牛直播SDK-Windows推送端使用说明

如何基于ReplayKit实现低延迟rtmp推屏

目录

1背景说明

2 iOS录制屏幕三要素

3集成说明

4 SDK对接

5 SDK运行

6如何在移动端测试

7 Demo下载

1背景说明

在ReplayKit live未出来之前,iOS推流屏幕信息,必须使用实际或虚拟的AirPlay模式,使用起来非常不便,自iOS 10开始,苹果在 iOS 9 的 ReplayKit 保存录屏视频的基础上,增加了视频流实时直播功能,iOS 11新增的ReplayKit2,进一步提升了Replaykit的易用性,可以对整个手机实现屏幕录制,不再局限于特定App。ReplayKit的出现,让直播更稳定、对设备性能要求低、并可直接嵌入主 app。

2 iOS录制屏幕三要素

宿主App:被录屏的应用(对应SmartiOSScreenPublisherV2)

容器App:本身与录屏直播没有直接关系, 仅仅提供录屏App扩展的发布渠道(对应DaniuliveExtSetupUI)

录屏App扩展:实现录屏和直播的主要功能(对应DaniuliveExt)

3集成说明

添加扩展:File->New Target:

填写Product Name:

配置好Product Name(记得勾选”Include UI Extension”)。点”Finish”后可以看到,工程多了两个目录,target也多了两个,对应直播扩展和UI扩展:

APP内需要处理的两个扩展:

Broadcast UI Extension: 提供类似用户登录、URL设置等配置选项的界面,本实例,由于我们在DaniuliveExtSetupUI中新创建了MainInterface.storyboard,将info.plist中的:

NSExtensionPrincipalClass

BroadcastSetupViewController

换成

NSExtensionMainStoryboard

MainInterface

Broadcast Upload Extension:接收图像和音频数据, 进行直播,集成daniulive推送SDK的工作主要在Upload扩展的代码中进行,info.plist中添加音频权限:

NSMicrophoneUsageDescription

请允许使用麦克风

如需生成后台可直接启用的录制程序,info.plist中NSExtensionPointIdentifier改为:

NSExtensionPointIdentifier

com.apple.broadcast-services-upload

如需APP内部debug,查看SampleHandler里面的log,请设置为

NSExtensionPointIdentifier

com.apple.broadcast-services

4 SDK对接

导入DaniuliveSDK,对应“DaniuliveExt\daniuliveSDK”下的include和libs。

添加依赖库:

编写UI扩展(对应DaniuliveExtSetupUI):

//Called when the user has finished interacting with the view controller and a broadcast stream can start

– (void)userDidFinishSetup {

// Broadcast url that will be returned to the application

NSURL *broadcastURL = [NSURL URLWithString: _rtmpUrl.text];

// Service specific broadcast data example which will be supplied to the process extension during broadcast

NSString *endpointURL = _rtmpUrl.text;

NSDictionary *setupInfo = @{@”endpointURL” : endpointURL};

// Set broadcast settings

RPBroadcastConfiguration *broadcastConfig = [[RPBroadcastConfiguration alloc] init];

// Tell ReplayKit that the extension is finished setting up and can begin broadcasting

[self.extensionContext completeRequestWithBroadcastURL:broadcastURL broadcastConfiguration:broadcastConfig setupInfo:setupInfo];

}

– (void)userDidCancelSetup {

// Tell ReplayKit that the extension was

// cancelled by the user

NSError * err = [NSError errorWithDomain:@”com.daniulive.ios”

code:-1

userInfo:nil];

[self.extensionContext cancelRequestWithError:err];

}

SampleHandler.m调用SDK即可:

[if !supportLists]1. [endif]初始化并推送:

[self InitPublisher];

[self StartPublisher];

[if !supportLists]2. [endif]实时数据回调处理:

– (void)processSampleBuffer:(CMSampleBufferRef)sampleBuffer

withType:(RPSampleBufferType)sampleBufferType {

switch (sampleBufferType) {

case RPSampleBufferTypeVideo:

{

NSLog(@”RPSampleBufferTypeVideo”);

if(_smart_publisher_sdk)

{

[_smart_publisher_sdk SmartPublisherPostVideoSampleBuffer:sampleBuffer];

}

}

break;

case RPSampleBufferTypeAudioApp:

NSLog(@”RPSampleBufferTypeAudioApp”);

if (s_headPhoneIn || s_isMicEnable == Mic_Disable)

{

if (CMSampleBufferDataIsReady(sampleBuffer) != NO)

{

if(_smart_publisher_sdk)

{

NSInteger type = 2;

[_smart_publisher_sdk SmartPublisherPostAudioSampleBuffer:sampleBuffer inputType:type];

}

}

}

break;

case RPSampleBufferTypeAudioMic:

NSLog(@”RPSampleBufferTypeAudioMic”);

if(_smart_publisher_sdk)

{

NSInteger type = 1;

[_smart_publisher_sdk SmartPublisherPostAudioSampleBuffer:sampleBuffer inputType:type];

}

break;

default:

break;

}

}

[if !supportLists]3. [endif]退出:

[self StopPublisher];

[self UnInitPublisher];

NOTE:集成时DaniuliveExt请使用daniulive demo里面的app-name测试,如需授权,请联系大牛直播SDK工作人员。

5 SDK运行

1. 先运行SmartiOSScreenPublisherV2,在移动端生成宿主app;

2. 再运行DaniuliveExtSetupUI,加载到宿主app;

3. 最后运行DaniuliveExt,加载到宿主app。

6如何在移动端测试

前台启动,设置推送的url,点击“开始推屏”:

后台启动(推屏rtmp url可在前台推送url页面设置):

 

7 Demo下载

测试Demo可以到Github或者QQ群共享下载

Github:https://github.com/daniulive/SmarterStreaming/

CSDN Demo下载链接: https://download.csdn.net/download/renhui1112/10313775

QQ群:

大牛直播精英群: 294891451

大牛直播技术交流群: 499687479