大牛直播连麦SDK

以Windows与android端连麦为例(Windows端作为主播端/指挥中心):

[Windows demo] Windows推送、播放、合成、导播、连麦Demo本地下载

Windows端

  1. 打开”SmartMixStreamDemo.exe”;
  2. [视频] 选择期望的视频采集模式,并获取推荐的码流(码流可根据需求自行调整);
  3. [音频] 选择”采集扬声器” + “采集麦克风”,并选择”回音消除”、”噪音抑制”、”端点检测(VAD)”(可选);
  4. [推送地址设置] 输入合流后的rtmp推送地址(可以直接推到CDN),对应”RTMP推送地址1″,如”rtmp://player.daniulive.com:1935/hls/streammix”;
  5. [推送地址设置] 输入原始rtmp推送地址,对应”RTMP原始流推送地址”,如”rtmp://player.daniulive.com:1935/hls/streamorg”;
  6. [播放连麦互动rtmp] 在SmartMixStreamDemo.exe左下角播放器部分,在”播放URL”栏,输入android端的推送地址,如”rtmp://player.daniulive.com:1935/hls/streamandroid”;

[推送] 点击”推送”和”推送原始流”。

Android端

  1. 打开SmartEchoCancellation.apk
  2. [推送]根据需求,选择合适的分辨率和帧率,并选择”使用噪音抑制”,输入推送地址,如”rtmp://player.daniulive.com:1935/hls/streamandroid”,点击开始推送;
  3. [播放]输入Windows推送的原始rtmp推送地址,如此次设置,输入 “rtmp://player.daniulive.com:1935/hls/streamorg”,点击开始播放。

至此,android和windows连麦基础设置完成,如第三方平台(windows/android/iOS)需要观看此次实时互动视频(连麦效果),在播放端,输入合流后的rtmp推送地址,此次demo为 “rtmp://player.daniulive.com:1935/hls/streammix”,即可完成播放。

大牛直播导播SDK

适用场景:大牛直播导播SDK适用于外部如多路RTMP/RTSP流,本地摄像头/屏幕/flv文件,多路流合成一路流,然后单路输出的场景。

支持平台:Windows

对应Demo:SmartMixStreamDemo.exe

主界面:

数据源:

1. rtmp/rtsp音视频流;

2. 本地屏幕/摄像头/音频数据;

3.本地flv文件;

输出:多路流合成一路

合流后预览:

扩展功能:

多路合成一路后,本地录像、快照等。

技术优势:

1. 以C++/C# SDK形式输出,企业或开发者可根据需求完成多样化的产品需求;

2. 行业内接口更灵活,资源占用更低;

3. 超低延迟输出,效率更高;

4. 支持合流后的图像预览;

5. 支持合流后的音频混音;

6. 岂止是合流,还可以实时录像、快照等,接口更丰富。

轻量级RTSP服务SDK

为满足内网无纸化/电子教室等内网超低延迟需求,避免让用户配置单独的服务器,大牛直播SDK在推送端发布了轻量级RTSP服务SDK:

简单来说,之前推送端SDK支持的功能,内置轻量级RTSP服务SDK后,功能继续支持。

一、支持功能

数据源:

1. 视频源相关:

 [屏幕/摄像头]支持帧率、关键帧间隔、码率、编码profile、编码速度等设置;

 [屏幕]支持屏幕裁剪,根据帧率和推送分辨率,自动推荐码流;

 [摄像头]支持摄像头选择、分辨率设置、帧率设置。

2. 音频源相关

 [音频]采集麦克风;

 [音频]采集扬声器。

3. 摄像头和屏幕合成数据

 [摄像头和屏幕实时切换]支持推送过程中,摄像头和屏幕互相切换,单画面显示摄像头或屏幕;

 [摄像头叠加到屏幕] 支持摄像头按照设置坐标,叠加到屏幕指定位置,并支持实时关闭叠加层;

 [屏幕叠加到摄像头] 支持屏幕按照设定坐标,叠加到摄像头指定位置,并支持实时关闭叠加层。

音视频处理:

1. 支持类型

 [视频]H.264;

 [音频]AAC;

2.水印和透明度遮挡

 [实时水印]支持动态水印设置,完美支持文字水印、实时时间水印和图片水印

 [透明度]可以设置透明度处理(设置遮盖)。

3.音频合成

 [音频]支持扬声器和麦克风音频混音输出(同时选择“采集扬声器”和“采集麦克风”)。

4. 音频处理

 [音频]支持音频“端点检测(VAD)”,自适应码流,音频码流更节省;

 [音频]支持噪音抑制功能;

 [音频]支持自动增益控制。

静音、快照、录像等:

 [音视频]支持纯音频、纯视频、音视频

 [音频]实时静音/取消静音;

 [对接服务器]在内置RTSP服务的同时,完美支持同步推送RTMP流到自建RTMP服务器或CDN

 [录像]录像和内置RTSP服务完全分离,完美支持“边推送边录像”、“先推送、后录像”、“先录像,后推送;

 [录像]支持设置录像文件前缀、录像文件大小,录像文件增加日期、时间;

 [快照]支持随时快照。

二、如何操作内置RTSP服务

1. 在选择好需要推送出去的音视频数据类型、调整好码率后,点击“配置查看RTSP服务”:

2. 根据需求,可以启动一路或者多路服务,每路服务,并可配置用户名密码信息(可选)。启动服务后,点击“确定”退出设置页面;
3. 配置流名称(可自定义),默认是 stream1;
4. 发布RTSP流:
5. 发布后,播放地址列表里面,会显示当前发布的url,拷贝其中一个或多个,用大牛直播直播播放器SDK,分别播放即可;
6.服务器负载查看:再次点击“配置查看RTSP服务”,即可看到每个服务连接的会话数:
7. 如需停止服务,点击页面的“停止RTSP流”即可;
8. 如需启动RTSP服务的同时,还需要把数据推到其他RTMP服务,输入推送的RTMP url,点击“推送”即可。

整体效果展示,以采集桌面左上角640×480区域为例,同时播放9路,并分别连不同的服务:

视频展示:

 

经测试,整体延迟在200-300毫秒区间,在高稳定低CPU占用的前提下,也可能是行业内功能支持最全面,延迟最低的商用级内置RTSP服务方案。

大牛直播SDK-Unity3D直播播放器SDK

大牛直播SDK unity3d直播播放端目前已完美支持windows/android/iOS三个平台,秉承了高稳定、超低延迟的SDK特性,也可能是unity3d下最好用的rtmp/rtsp直播播放SDK.

windows/android/iOS播放器SDK(V2)Unity3D调用说明

大牛直播SDK基于unity3d平台的rtmp/rtsp直播播放端SDK视频演示

Unity3D-Windows播放端APP下载

Unity3D-Android播放端APK下载

大牛直播录像SDK

大牛直播录像SDK可作为单独功能模块使用(如同时多路录像存档),亦分布于以下模块,和其他模块组合调用

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

大牛直播录像SDK不同于普通录像接口,更智能,和推送、播放、转发、内置轻量级RTSP服务功能完全分离,支持随时录像

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

此外,大牛直播录像SDK支持设置单个录像文件大小、录像路径等,并支持纯音频、纯视频、音视频录制模式。

支持RTSP H.265录制到MP4文件

从开始录像,到录像结束均有event callback上来,网络堵塞、音视频同步均做了非常友好的处理,大牛直播录像SDK是目前市面上为数不多真正好用的商业化录像SDK。

相关接口实现(以播放端为例):

Windows平台:

		/*
		设置本地录像目录, 必须是英文目录,否则会失败
		*/
		NT_UINT32(NT_API *SetRecorderDirectory)(NT_HANDLE handle, NT_PCSTR dir);

		/*
		设置单个录像文件最大大小, 当超过这个值的时候,将切割成第二个文件
		size: 单位是KB(1024Byte), 当前范围是 [5MB-800MB], 超出将被设置到范围内
		*/
		NT_UINT32(NT_API *SetRecorderFileMaxSize)(NT_HANDLE handle, NT_UINT32 size);

		/*
		设置录像文件名生成规则
		*/
		NT_UINT32(NT_API *SetRecorderFileNameRuler)(NT_HANDLE handle, NT_SP_RecorderFileNameRuler* ruler);


		/*
		设置录像回调接口
		*/
		NT_UINT32(NT_API *SetRecorderCallBack)(NT_HANDLE handle,
			NT_PVOID call_back_data, SP_SDKRecorderCallBack call_back);

		/*
		启动录像
		*/
		NT_UINT32(NT_API *StartRecorder)(NT_HANDLE handle);

		/*
		停止录像
		*/
		NT_UINT32(NT_API *StopRecorder)(NT_HANDLE handle);

Android平台:

	/**
	 * Create file directory
	 *
	 * @param path,  E.g: /sdcard/daniulive/rec
	 *
	 * <pre> The interface is only used for recording the stream data to local side. </pre>
	 *
	 * @return {0} if successful
	 */
	public native int SmartPlayerCreateFileDirectory(String path);

	/**
	 * Set recorder directory.
	 *
	 * @param path: the directory of recorder file.
	 *
	 * <pre> NOTE: make sure the path should be existed, or else the setting failed. </pre>
	 *
	 * @return {0} if successful
	 */
	public native int SmartPlayerSetRecorderDirectory(long handle, String path);

	/**
	 * Set the size of every recorded file.
	 *
	 * @param size: (MB), (5M~500M), if not in this range, set default size with 200MB.
	 *
	 * @return {0} if successful
	 */
	public native int SmartPlayerSetRecorderFileMaxSize(long handle, int size);

	/**
	 * Start recorder stream
	 *
	 * @param handle: return value from SmartPlayerOpen()
	 *
	 * @return {0} if successful
	 */
	public native int SmartPlayerStartRecorder(long handle);

	/**
	 * Stop recorder stream
	 *
	 * @param handle: return value from SmartPlayerOpen()
	 *
	 * @return {0} if successful
	 */
	public native int SmartPlayerStopRecorder(long handle);

iOS平台:

/**
 * 录像相关:
 *
 * @param path 录像文件存放目录
 *
 * @return {0} if successful
 */
- (NSInteger)SmartPlayerSetRecorderDirectory:(NSString*)path;

/**
 * 录像相关:
 *
 * @param size 每个录像文件的大小 (5~500M), 默认200M
 *
 * @return {0} if successful
 */
- (NSInteger)SmartPlayerSetRecorderFileMaxSize:(NSInteger)size;

/**
 * 录像相关:
 *
 * Start recorder(开始录像)
 *
 * @return {0} if successful
 */
- (NSInteger)SmartPlayerStartRecorder;

/**
 * 录像相关:
 *
 * Stop recorder(停止录像)
 *
 * @return {0} if successful
 */
- (NSInteger)SmartPlayerStopRecorder;

大牛直播跨平台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支持RTSP H.265播放,并支持RTSP H.265录制到MP4文件
  •  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°);
  •  支持播放段视频view水平反转、垂直反转;
  •  支持播放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