大牛直播SDK release note

视沃科技(大牛直播SDK)2018-12-14 release note:

1. 大牛直播SDK发布Windows“RTSP直播推流SDK”,相关功能介绍和使用说明,请点击链接;

2. Windows RTSP直播推流SDK支持RTMP直播推流SDK的除协议栈外的所有功能,支持RTSP H.264/H.265(64位库)推送,支持TCP/UDP模式设置、支持RTSP鉴权模式和401处理、支持网络重连和各种异常网络状态处理;

4. 优化Windows播放和推送SDK.

视沃科技(大牛直播SDK)2018-12-07 release note:

1. iOS播放端录像SDK支持录制纯音频或纯视频;

2. iOS播放端SDK支持RTMP/RTSP H.265硬解码,如硬解码不支持,自动跳转至软解码;

3. iOS推送端SDK支持H.265硬编码(可变码率,超低码率占用),RTMP推送和内置RTSP服务均支持H.265;

4. iOS推送端SDK支持音频软、硬编码设置;

5. iOS推送端SDK支持H.264软编码可变码率设置;

6. iOS推送端SDK支持设置H.264软编码profile设置(baseline/main/high profile);

7. iOS推送端SDK支持H.264软编码速度设置;

8. iOS推送端SDK支持外部PCM数据传输SDK;

9. iOS支持内置RTSP网关SDK(SmartiOSRelayDemoV2).

视沃科技(大牛直播SDK)2018-11-16 release note:

1. 安卓推送SDK支持H.265(hevc)硬编码;

2. 安卓推送SDK支持RTMP扩展H.265推送;

3. 安卓内置轻量级RTSP服务SDK支持H.265作为数据源;

4. 安卓推送SDK支持H.264可变码率设置接口;

5. 安卓SDK demo功能页面更新。

视沃科技(大牛直播SDK)2018-11-09 release note:

1. 大牛直播SDK发布“内置RTSP网关SDK”,相关功能介绍和使用说明,请点击链接;

2. 内网RTSP网关SDK,系内置轻量级RTSP服务SDK扩展,完成外部RTSP/RTMP数据拉取并注入到轻量级RTSP服务SDK工作,多个内网客户端直接访问内网轻量级RTSP服务获取公网数据,无需部署单独的服务器,支持RTSP/RTMP H.265数据接入;

3. Windows播放SDK增加音视频录制选项(可以单独录制视频或者音频);

4. 优化Windows播放和推送SDK.

视沃科技(大牛直播SDK)2018-11-03 release note:

1. 安卓播放SDK支持H265(hevc)硬解(SetSmartPlayerVideoHevcHWDecoder,H.264/H.265硬解码可单独设置),硬解码使用设置surface模式(Demo对应is_enable_hardware_render_mode变量控制),H.265资源占用更低;

2. 安卓推送SDK和播放SDK整体优化;

视沃科技(大牛直播SDK)2018-11-01 release note:

1. Windows推送SDK支持h265编码(64位库);

2. Windows推送SDK支持rtmp h265推送,针对摄像头采集编码,使用H.265可变码率,带宽大幅节省,效果直逼传统H.265编码摄像头;

3. Windows推送SDK支持H265录像;

4. Windows内置rtsp server支持发布h265视频(64位库);

5. 优化Windows推送和播放sdk。

视沃科技(大牛直播SDK)2018-10-24 release note:

1. iOS播放SDK支持rtmp h.265播放;

2. iOS转发SDK支持h265转发(rtsp/rtmp h265转rtmp h265推送,提供配套RTMP H.265扩展服务器测试);

3. iOS播放端SDK优化;

4. iOS推送端SDK优化。

视沃科技(大牛直播SDK)2018-10-18 release note:

1. 安卓转发SDK支持音频(PCMU/PCMA,Speex等)转AAC后再推流;

2. 安卓播放SDK支持音频(PCMU/PCMA,Speex等)转AAC后再录像接口;

3. 安卓播放SDK优化rtmp h264播放;

4. 安卓播放SDK支持rtmp扩展h265播放;

5. 安卓转发SDK优化rtsp转发;

6. 安卓播放SDK优化rtsp录像;

7. 安卓播放SDK优化rtsp h264播放;

8. 安卓转发SDK支持h265转发(rtsp/rtmp h265转rtmp h265推送);

9. 安卓播放SDK硬解码支持Surface直接绘制模式;

10. 安卓推送SDK优化音频编码, 降低音频码率.

视沃科技(大牛直播SDK)2018-10-16 release note:

1. Windows转发SDK支持h265转发(rtsp/rtmp h265转rtmp h265推送)

2. Windows播放SDK优化rtsp h264播放;

3. Windows播放SDK优化rtsp录像;

4. Windows转发SDK优化rtsp转发;

5. Windows推送SDK常规优化.

视沃科技(大牛直播SDK)2018-09-26 release note:

1. Windows播放SDK支持rtmp扩展h265播放;

2. Windows播放SDK优化rtmp h264播放

3. Windows推送SDK增加外部PCM音频数据对接接口;

4. iOS录像SDK支持音频(PCMU/PCMA,Speex等)转AAC后再录像接口;

5. iOS转发SDK支持音频(PCMU/PCMA,Speex等)转AAC后再推流.

视沃科技(大牛直播SDK)2018-09-13 release note:

1. 安卓播放SDK支持rtsp h265播放;

2.安卓播放SDK支持rtsp h265录像;

3. 安卓播放SDK增加rtsp超时时间设置接口;

4. 安卓播放SDK增加rtsp tcp-udp自动切换设置接口;

5. 安卓播放SDK上报rtsp 401事件;

6. 安卓推送SDK吐编码后的AAC数据;

7. 安卓推送SDK吐编码后的H264数据方便对接第三方平台.

视沃科技(大牛直播SDK)2018-09-12 release note:

1. Windows播放SDK支持音频(PCMU/PCMA,Speex等)转AAC后再录像接口;

2. Windows转发支持音频(PCMU/PCMA,Speex等)转AAC后再推流;

3. Windows推送SDK优化音频推送.

视沃科技(大牛直播SDK)2018-09-06 release note:

1.  iOS播放SDK增加rtsp超时时间设置接口;

2. iOS播放SDK增加rtsp tcp-udp自动切换设置接口;

3. iOS播放SDK上报rtsp 401事件;

4. iOS播放SDK支持rtsp h265播放;

5. iOS录像SDK支持rtsp h265录制;

6. iOS推送、播放SDK支持模拟器编译运行;

7. 更新Windows推送、播放、转发C#demo至官方最新版本;

8. 更新Windows Unity3d播放demo(Daniulive-Unity3D-Win-SmartPlayer-2018-09-04);

9. 更新Windows SDK集成说明文档(视沃科技-Windows-SDK集成说明2.8.pdf)。

视沃科技(大牛直播SDK)2018-08-29 release note:

1.Windows播放SDK增加rtsp超时时间设置接口;

2. Windows播放SDK增加rtsp tcp-udp自动切换设置接口;

3. Windows播放SDK上报rtsp 401事件;

4. 优化Windows rtsp播放;

5. 优化Windows推送.

视沃科技(大牛直播SDK)2018-08-03 release note:

1.Android支持内置轻量级RTSP服务SDK;

2. iOS支持内置轻量级RTSP服务SDK;

3. 发布最新版本移动端SDK调用说明.

视沃科技(大牛直播SDK)2018-07-30 release note:

1.Windows 录像SDK支持rtsp h265录制,也许是业内为数不多的支持RTSP H.265录制到MP4文件的录像SDK.

视沃科技(大牛直播SDK)2018-07-25 release note:

1.Windows 播放SDK支持rtsp h265播放.

2.优化Windows推送和播放.

视沃科技(大牛直播SDK)2018-07-19 release note:

1.Android/iOS推送SDK增加推送字符串和二进制数据接口.

2.Android/iOS播放SDK增加用户数据回调接口.

3.Android/iOS播放SDK增加SEI数据回调接口.

4.Android/iOS播放SDK增加水平反转、垂直反转接口.

视沃科技(大牛直播SDK)2018-06-25 release note:

1.Windows推送内置rtsp server,无需部署服务器,即可发布rtsp音视频流.

2.安卓推送SDK扩展H264/AAC接口,方便用户直接传sps/pps给sdk.

3.安卓推送SDK支持可变分辨率水印.

4.Windows/安卓/iOS播放SDK优化rtsp播放.

5.Windows推送demo增加rtsp相关操作.

6.同步C#工程至2018年6月1日release版本.

视沃科技(大牛直播SDK)2018-06-01 release note:

1.Windows推送SDK增加预览接口.

2.Windows推送demo增加预览功能,可以先预览后推送.

3.Windows播放SDK深度优化rtsp播放,比好更好!

视沃科技(大牛直播SDK)2018-05-30 release note:

大牛直播SDK官方支持Android/iOS Unity3d RTMP/RTSP直播SDK.

视沃科技(大牛直播SDK)2018-05-10 release note:

1.Windows推送SDK增加发送文本,二进制数据接口.

2.Windows播放SDK增加吐文本,二进制数据接口.

3.Windows播放SDK增加吐H264 Sei数据接口.

4.Windows播放SDK增加水平垂直反转接口.

5.优化Windows播放SDK,降低CPU.

6.优化Windows推送SDK.

视沃科技(大牛直播SDK)2018-04-28 release note:

1.[Android]增加转发demo(rtsp转rtmp推送,rtmp转rtmp推送).

2.[Android]播放SDK优化rtsp播放.

3.[Android]播放SDK增加吐h264,aac/pcmu/pcma/speex接口.

4.[Android]推送SDK增加新的推送H264,AAC/PCMU/PCMA/Speex接口.

5.[Android]优化安卓推送SDK.

视沃科技(大牛直播SDK)2018-04-24 release note:

1.Windows推送SDK增加摄像头水平镜像,垂直反转接口, 增加90度,180度,270度旋转接口.

2.Windows推送SDK支持窗口采集推送,支持动态切换窗口.

3.Windows推送SDK增加设置多个视频码率的接口.

4.Windows推送SDK增加在采集屏幕时停用Win7 Aero的接口.

5.Windows推送SDK优化摄像头采集.

6.优化Windows播放SDK.

视沃科技(大牛直播SDK)2018-04-20 release note

1.Windows推送SDK增加DXGI屏幕采集方式,大大提高win8及以上系统桌面采集速度;

2.Windows推送SDK增加CPU自适应动态调整机制,降低SDK对机器性能的依赖性;

3.Windows推送SDK整体优化;

4.Windows推送SDK和播放SDK静态连接运行时库,方便各个vs版本对接;

5.优化Windows RTSP播放,兼容性和播放体验更优异。

视沃科技(大牛直播SDK)2018-03-29 release note

1.IOS播放SDK增加录像接口;

2.IOS播放SDK增加吐H264/AAC/PCMU/PCMA/SPEEX接口;

3.IOS推送SDK增强推送H264接口;

4.IOS推送SDK增加推送AAC/PCMU/PCMA/SPEEX接口;

5.IOS推送SDK支持推屏;

6.IOS增加播放-转发-录像三合一Demo;

7.IOS增加基于ReplayKit录屏推送demo;

8.IOS推送和播放SDK增加V2接口。

视沃科技(大牛直播SDK)2018-03-05 release note

1.[windows播放端]支持播放过程中,rtsp/rtmp或本地flv文件实时切换;

2.[windows转发端]支持转发过程中,拉取的rtsp/rtmp或本地flv文件实时内容切换;

3.[Android推送|播放端]Android全面升级V2接口(Android studio工程),并优化后台推屏幕/摄像头Demo。

视沃科技(大牛直播SDK)2018-02-28 release note

1.[windows播放端]支持本地flv点播:

  • 支持获取flv文件的duration(时长);
  • 支持显示当前播放位置;
  • 支持开始播放或播放过程中seek(跳转播放位置),也许是行业内seek最快的flv点播播放器。
  1. [windows转发端]支持本地flv文件转发,亦可支持指定位置转发。

视沃科技(大牛直播SDK)2018-02-01新功能抢先体验版:

1.[android]提供V2接口,支持播放端录像。

2.[iOS]支持播放端录像;

3.[iOS]支持iOS端转发功能(拉取rtsp/rtmp流,转发到设定rtmp url);

比“最好”还好:

  1. 大牛直播SDK录像

a) 支持switchUrl接口;

b) 同等参数配置的两个url,可以录制到同一个mp4文件(彻底解决了娃娃机抓取等场景,因为频繁切换url,想申诉时,用户只能录屏,用新的SDK接口,同等摄像头参数配置,无论怎么切换url,自动录制到一个mp4文件)

c) 不同参数配置的两个url,自动识别,自动录制到不同mp4文件。

  1. iOS转发:

a) 大牛直播SDK转发功能,同样支持switchUrl接口,切换不同分辨率的url,一样正常转发;

b) 配合大牛直播播放SDK,转发数据切换,自动适配。

  1. 大牛直播SDK的播放、录像、转发功能完全分离:

a) 可以只播放,随时录像,随时转发;

b) 可以只录像,随时播放,随时转发;

c) 可以只转发,随时播放,随时录像。

视沃科技(大牛直播SDK)2017-12-22 release note

1.iOS播放SDK增加旋转接口.

/**

  • 设置顺时针旋转, 注意除了0度之外, 其他角度都会额外消耗性能
  • @param degress: 当前支持 0度,90度, 180度, 270度 旋转
  • @return {0} if successful */
  • (NSInteger)SmartPlayerSetRotation:(NSInteger)degress;

2.iOS播放推送SDK整体优化,点击本地下载

2017-11-20 release note

  1. 更新android studio demo工程,点击本地下载

视沃科技(大牛直播SDK)2017-11-16 release note

  1. [windows平台] 发布Windows C#多路流媒体转发模块SDK Demo,点击本地下载
  2. android Player增加buffer状态显示和实时带宽占用接口.
  3. iOS推送和播放端整体优化.

2017-11-10 release note:

  1. windows/android/iOS Player SDK增加”超低延迟”模式,适用于类似直播娃娃机等相关场景.
  2. iOS Player增加buffer状态显示和实时带宽占用接口.
  3. iOS Player增加回调YUV数据接口.
  4. android/iOS推送和播放器整体优化.

视沃科技(大牛直播SDK)2017-10-25 release note:

1.[Windows播放端]SDK增加下载速度上报接口.

2.[Windows播放端]SDK增加获取下载速度接口.

3.[Windows播放端]SDK增加buffer开始,停止,进度通知.

4.[Windows播放端]SDK增加吐PCM数据接口.

5.[Windows播放端]SDK增加和服务器链接状态上报接口.

6.[Windows播放端]SDK支持64位.

7.[Windows推送端]SDK支持64位.

8.[文档]更新ppt产品介绍.

视沃科技(大牛直播SDK)2017-09-25 release note:

1.[Windows播放端] sdk增加吐编码过的音视频数据接口.

2.[Windows推送端] sdk增加推送H264数据接口.

3.[Windows推送端] sdk增加推送AAC, Speex WB, PCMA, PCMU数据接口.

4.[Windows转发] 新增多路拉流转发demo.

…….

大牛直播SDK十万个为什么

1. 大牛直播SDK企业使用,需要商业授权吗?

回答:是的,企业用需要商业授权。

2. 大牛直播SDK为什么要收费?

回答:正规公司,专业技术对接,致力于比快更快、比靠谱更靠谱的流媒体SDK。

3. 大牛直播SDK 为什么接口那么多,demo这么简单?

回答:多归多,几乎没有累赘的接口,demo只是SDK调用说明,看似简单甚至粗糙,我们预期开发者只看Demo和API,甚至不看我们的集成说明就可以用起来。

4. 大牛直播SDK延迟这么低,是不是在服务器做了什么手脚?

回答:在相同的服务器和网络环境下,用我们的推送+播放,随便和能找到的第三方产品比较。

5. 大牛直播SDK怎么baidu搜索引擎信息那么少?

回答:可以尝试下google/bing等,我们没有做baidu推广。

6. 大牛直播SDK限定客户用第三方服务器或者CDN吗?

回答:标准的rtmp server我们都支持,支持标准rtmp协议封装的CDN厂商,标准的rtsp流,我们也都支持。

7. 大牛直播SDK长时间运行,稳定性怎么样?

回答:行业内最不怕测试的SDK。

8. 大牛直播SDK支持纯音频或纯视频推送吗?

回答:支持。

9. 大牛直播SDK怎么没有萌颜功能?

回答:我们只做最擅长的部分,我们不做的,提供对接接口。

10. 大牛直播SDK支持什么格式的水印?

回答:android端支持文字水印、实时时间水印、logo图片水印,windows端,提供文字、时间、logo水印,windows水印还可以动态开启关闭。

11. 大牛直播SDK支持屏幕采集吗?

回答:windows支持、Android支持(Android 5.0+)、iOS也支持(基于ReplayKit)。

12. 大牛直播的SDK,可以出个和第三方对比测试报告吗?

回答:欢迎非利益驱动的公司或开发者做对比测试,我们官方不会出。

13. 大牛直播SDK方便做第三方对接吗?

回答:我们提供video编码前RGB/YUV,播放端编码后H.264, audio编码后AAC接口,为了方便对接第三方平台,甚至支持android推送端回调编码后H.264/AAC数据到上层。

14. 大牛直播SDK时软编码还是硬编码?解码呢?

回答:Android/iOS编码软、硬都支持,解码也是,windows软编软解。

15. 大牛直播SDK支持rtsp播放了吗?

回答:不仅支持,而且支持RTSP H.265播放、录像,支持TCP/UDP模式自动切换等,行业内几无对手!

16. 大牛直播SDK支持多实例播放吗?

回答:支持,而且支持同时播放rtsp/rtmp流,不同流,还可分别软硬解码。

17. 大牛直播SDK支持实时静音吗?

回答:推送和播放端都支持。

18. 大牛直播SDK提供CDN租赁服务吗?

回答:我们的SDK可以支持CDN对接,但自己不做运营。

19. 大牛直播SDK可以支持自建服务器吗?

回答:如果内置RTSP服务这块,可直接用我们内置RTSP服务SDK,rtmp服务器的话建议Nginx或SRS。

20. 大牛直播SDK和其他SDK优势在哪里?

回答:说到做到!

21. 大牛直播SDK有出教程的打算吗?

回答:太忙了。

22. 大牛直播SDK为什么不多写些blog?

回答:太忙了。

23. 大牛直播SDK支持内置RTSP服务吗?

回答:支持、windows/android/iOS三个平台都支持,而且支持同时启动多个服务。

24. 我想做大牛直播SDK的产品代理,可以吗?

回答:可以,有一定资源的个人和公司,欢迎联系我们,QQ 89030985 手机 130-7210-2209。

25. 现在PC端屏幕采集推流的工具都太慢啦,大牛直播什么时候支持PC端屏幕采集?

回答:已支持,并支持扬声器或麦克风采集,还支持屏幕和摄像头合成等,功能、性能体验没得说。

26. 推流端,支持录像吗?拉流端呢?

回答:必须有,推送端和播放端都有录像功能,而且完全录像和推送、播放完全分离,甚至支持音频(PCMU/PCMA,Speex等)转AAC后再录像。

27. 我还想转发,比如拉取rtsp/rtmp摄像头,转发到其他rtmp服务器?

回答:Windows、Android和iOS已经完美支持,而且支持多路转发,欢迎体验。

28. 我还想一对一互动咋整?

回答:Windows和Android老早就支持,欢迎体验。

29. 为什么大牛直播SDK,只支持rtmp/rtsp播放?

回答:目前来看,大而全的播放器,基本都是拿开源改的,我们侧重于全自研内核的超低延迟、超强体验的SDK,目前来看,RTMP、RTSP直播SDK,几乎对手!

30. PC端,摄像头和屏幕可以合成吗?

回答:不仅可以,还可以多图层叠加,不仅可以叠加,还可以,摄像头和屏幕,单屏切换,还有水印,功能太多了。

31. 如何看待同行的竞争?

回答:期待更多的良心竞争。

32. 默认参数不符合我们的业务预期,我想自己设置码率、帧率、关键帧间隔之类,可以吗?

回答:windows/android/iOS三个平台都支持。

33. 大牛直播SDK的功能是完全分离的吗?

回答:如RTMP推送、录像、内置RTSP服务,可单独使用,亦可组合使用。

34. 推送端,有背景噪音,可以处理吗?

回答:Windows和android平台支持噪音抑制。

35. 推送端、播放端SDK想截图怎么办?

回答:windows/android/iOS推送或播放,都可以截图。

36. 大牛直播SDK支持不支持在线认证?

回答:无后门。

37. 为什么别的SDK一直降价,你们的还这么坚挺?

回答:同等配置的iphone比android手机贵,陆虎比陆风贵..

38. 我们是游戏或教育客户,想把sdk融入到unity3d环境下,怎么办?

回答:大牛直播SDK播放端SDK支持windows/android/iOS三个平台unity3d接口..

大牛直播录像SDK

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

  1. windows/android/iOS推送端SDK Demo和windows/android/iOS播放端SDK Demo集成了录像SDK;
  2. 大牛直播录像SDK不同于普通录像接口,更智能,和推送、播放、转发、内置轻量级RTSP服务功能完全分离,支持随时录像;
  3. 此外,大牛直播录像SDK在录像过程中,支持切换不同URL,如两个URL配置一致,则可以录制到同一个MP4文件,如不一致,可自动分割到下一个文件;
  4. 大牛直播录像SDK支持设置单个录像文件大小、录像路径等,并支持纯音频、纯视频、音视频录制模式;
  5. Windows播放SDK支持音频(PCMU/PCMA,Speex等)转AAC后再录像;
  6. 支持RTSP/RTMP H.265(hevc)录制到MP4文件
  7. 从开始录像,到录像结束均有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形式提供,会给开发者提供更大的便利!

大牛直播跨平台RTSP/RTMP转RTMP转发SDK目前已全面覆盖Windows、Android和iOS平台,行业内以高稳定、低延迟、超低资源占用和强大的功能拓展能力深受开发者欢迎。

Windows/Android/iOS RTMP/RTSP多路流媒体转发SDK功能支持:

  1. 支持拉取rtmp流;
  2. 支持拉取rtsp流;
  3. Windows支持本地flv文件转发(支持制定文件位置转发,或转发过程中seek);
  4. 支持本地预览;
  5. 支持转发过程中,实时静音;
  6. 支持转发过程中,切换rtmp/rtsp url,此外,windows平台还支持切换本地flv文件;
  7. 支持录像模块扩展,可边转发边录制,每个文件录制开始结束,均有状态回馈;
  8. 支持内网RTSP网关模块扩展,拉取的流数据,可以流入到内网RTSP网关模块,对外微型RTSP媒体流服务(RTSP url),便于内网访问;
  9. 音频:AAC,并支持拉流后的音频(PCMU/PCMA,Speex等)转AAC后再转发;
  10. 视频:H.264、H.265,支持h265转发(rtsp/rtmp h265转rtmp h265推送)

对应Demo:

  •  Windows测试程序:SmartStreamRelayDemo.exe;
  •  Windows C++工程:WIN-RelaySDK-CPP-Demo;
  •  Windows C#工程:WIN-RelaySDK-CSharp-Demo;
  •  Android工程:SmartRelayDemoV2;
  •  iOS工程:SmartiOSRelayDemoV2。

Windows平台(对应SmartStreamRelayDemo.exe):

注意:Windows,先输入需要拉流URL或本地FLV路径,并输入,需要推流的rtmp url,点击“拉流”后,再点击“推流”,即可完成转发动作。

如需把音频转AAC后再转发,选中页面“转AAC”选项即可。

Android平台(对应SmartRelayDemoV2):

iOS平台(对应SmartiOSRelayDemoV2):

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

大牛直播iOS平台Demo工程

版本下载:

SDK Demo下载

Demo文件说明:
1. SmartiOSPlayer:2018年2月10日之前的播放器demo,接口展示比较全面,不涵盖录像;
2. SmartiOSPlayerV2: 大牛直播SDK播放端demo,V2版,涵盖实时录像功能;
3. SmartiOSPublisherV2: 大牛直播SDK推送端demo;
4. SmartiOSRelayDemoV2: 大牛直播SDK互动、转发、录像三合一Demo;
5. SmartiOSScreenPublisherV2: 大牛直播SDK无纸化推屏/会议demo。

未授权版本,限制app-name,如果需要集成到自己工程里面调试,可以用以下名字:
1. iOS推送端:SmartiOSPublisher
2. iOS转发端:SmartiOSRelayDemo
3. iOS播放端:SmartiOSPlayer或者SmartiOSPlayerV2
4. iOS后台推屏:DaniuliveExtStream
5. APICloud对接测试名字:自定义loader

详细集成说明请参见 视沃科技-大牛直播移动端SDK(V2)调用说明2.8

大牛直播Android平台Demo工程

大牛直播SDK android Demo下载

Demo文件说明:
1. SmartPlayerV2: 大牛直播SDK播放端demo;
2. SmartPublisherV2: 大牛直播SDK推送端demo;
3. SmartEchoCancellationV2: 大牛直播SDK一对一互动demo;
4. SmartServiceCameraPublisherV2: 大牛直播SDK无纸化推屏/会议demo;
5. SmartServicePublisherV2: 大牛直播SDK后台推摄像头demo.

未授权版本,限制app-name,如果需要集成到自己工程里面调试,可以用以下名字:
1. android推送端:SmartPublisherSDKDemo
2. android后台Service推送:SmartServicePublisherSDKDemo
3. android一对一互动:SmartEchoCancellation
4. android播放器:SmartPlayerSDKDemo

详细集成说明请参见”视沃科技-大牛直播移动端SDK(V2)调用说明2.5.pdf”.

大牛直播RTMP/RTSP播放器SDK

大牛直播RTSP/RTMP播放器SDK特点:

在没测试过大牛直播SDK的RTMP和RTSP播放器之前,你甚至不相信行业内,RTMP和RTSP播放器(特别是RTMP播放器)延迟可以稳定的做到1秒以内。

无需赘述,全自研内核,行业内一致认可的跨平台RTSP/RTMP直播播放器SDK,功能齐全、高稳定、超低延迟、近200家公司明智之选。

功能支持:

如不单独说明,系Windows、Android、iOS全平台支持。

  •  [支持播放协议]高稳定、超低延迟(一秒内,行业内几无效果接近的播放端)、业内首屈一指的RTMP/RTSP直播播放器SDK;
  •  [多实例播放]支持多实例播放(如同时播放多路RTMP/RTSP流);
  •  [事件回调]支持网络状态、buffer状态等回调;
  •  [视频格式]支持RTSP H.265、RTMP扩展H.265,RTSP/RTMP H.264;
  •  [音频格式]RTMP/RTSP支持AAC/PCMA/PCMU,此外RTMP还支持Speex;
  •  [H.264/H.265软解码]支持H.264/H.265软解;
  •  [H.264硬解码]Android/iOS支持H.264硬解;
  •  [H.265硬解]Android支持H.265硬解;
  •  [H.264/H.265硬解码]Android支持设置Surface模式硬解和普通模式硬解码;
  •  [RTSP模式设置]支持RTSP TCP/UDP模式设置;
  •  [RTSP TCP/UDP自动切换]支持RTSP TCP、UDP模式自动切换;
  •  [RTSP超时设置]支持RTSP超时时间设置,单位:秒;
  •  [RTSP 401认证处理]支持上报RTSP 401事件,如URL携带鉴权信息,会自动处理;
  •  [缓冲时间设置]支持buffer time设置;
  •  [首屏秒开]支持首屏秒开模式;
  •  [低延迟模式]支持类似于线上娃娃机等直播方案的超低延迟模式设置(公网200~400ms);
  •  [复杂网络处理]支持断网重连等各种网络环境自动适配;
  •  [快速切换URL]支持播放过程中,快速切换其他URL,内容切换更快;
  •  [音视频多种render机制]Android平台,视频:surfaceview/OpenGL ES,音频:AudioTrack/OpenSL ES;
  •  [实时静音]支持播放过程中,实时静音/取消静音;
  •  [实时快照]支持播放过程中截取当前播放画面;
  •  [渲染角度]支持0°,90°,180°和270°四个视频画面渲染角度设置;
  •  [渲染镜像]支持水平反转、垂直反转模式设置;
  •  [实时下载速度更新]支持当前下载速度实时回调(支持设置回调时间间隔);
  •  [解码前视频数据回调]支持H.264/H.265数据回调;
  •  [解码后视频数据回调]支持解码后YUV/RGB数据回调;
  •  [解码前音频数据回调]支持AAC/PCMA/PCMU/SPEEX数据回调;
  •  [音视频自适应]支持播放过程中,音视频信息改变后自适应;
  •  [扩展录像功能]完美支持和录像SDK组合使用,录像相关功能,可参见”Windows/Android/iOS录像SDK“;
  •  [全屏]Windows平台双击画面进入全屏模式;
  •  [Windows本地FLV播放器]支持本地FLV文件播放(支持获取FLV文件的duration(时长);支持显示当前播放位置;
  •  [Windows本地FLV播放器]支持开始播放或播放过程中seek(跳转播放位置),也许是行业内seek最快的flv点播播放器)。

对应Demo:

  •  Windows测试程序:SmartPlayer.exe;
  •  Windows C++工程:WIN-PlayerSDK-CPP-Demo;
  •  Windows C#工程:WIN-PlayerSDK-CSharp-Demo;
  •  Android工程:SmartPlayerV2;
  •  iOS工程:SmartiOSPlayerV2。

大牛直播推流SDK

大牛直播RTMP推送端SDK特点:

  1. 全自研框架,易于扩展,自适应算法让延迟更低、采集编码传输效率更高;
  2. 所有功能以SDK接口形式提供,所有状态,均有event回调,完美支持断网自动重连;
  3. SDK模块化,可和大牛直播播放器SDK组合实现流媒体数据转发、内置轻量级RTSP服务、连麦、一对一互动等场景;
  4. Windows推送端SDK以层级模式提供,开发者可以自行组合数据源(如多摄像头/屏幕/水印叠加);
  5. 支持外部YUV/RGB/H.264/AAC/SPEEX/PCMA/PCMU数据源接入;
  6. 所有参数均可通过SDK接口单独设置,亦可通过默认参数,傻瓜式设置;
  7. 推送、录像、内置轻量级RTSP服务模块完全分离,可单独使用亦可组合使用;
  8. 业内甚至很难找到效果接近的SDK

功能支持:

如不单独说明,系Windows、Android、iOS全平台支持。

  •  [视频采集处理]Windows平台涵盖“Windows视频采集处理SDK”功能;
  •  [音频采集处理]Windows平台涵盖“Windows音频采集处理SDK”功能;
  •  [本地预览]Windows平台支持摄像头/屏幕/合成数据实时预览功能,Android/iOS平台支持本地前后置摄像头预览;
  •  [摄像头反转/旋转]Windows平台支持摄像头水平反转、垂直反转、0°/90°/180°/270°旋转;
  •  [RTMP推流]超低延时的RTMP协议直播推流SDK(Windows支持RTMP扩展H.265推送);
  •  [视频格式]Windows平台支持H.264/H.265编码,Android/iOS平台支持H.264编码;
  •  [音频格式]Windows/Android/iOS平台支持AAC编码,Windows/Android平台支持Speex编码;
  •  [音频编码]Windows/Android平台支持Speex推送、Speex编码质量设置;
  •  [H.264硬编码]Android/iOS支持H.264硬编码;
  •  [硬编码码自适应]Android/iOS平台支持硬编码自适应,如检测到硬编码不支持,自动切换到软编;
  •  [编码参数配置]支持gop间隔、帧率、bit-rate、软编码profile、软编码速度设置;
  •  [多实例推送]支持多实例推送(如同时推送屏幕/摄像头和外部数据);
  •  [RTMP扩展H.265]Windows推送SDK支持RTMP扩展H.265推送,针对摄像头采集编码,使用H.265可变码率,带宽大幅节省,效果直逼传统H.265编码摄像头;
  •  [横竖屏推流]Android/iOS平台支持支持横屏、竖屏推流;
  •  [多分辨率支持]支持摄像头或屏幕多种分辨率设置;
  •  [Windows推屏]支持屏幕裁剪、窗口采集、屏幕/摄像头数据合成等多种模式推送;
  •  [移动端推屏]Android平台支持后台service推送摄像头或屏幕(推送屏幕需要5.0+版本);
  •  [移动端推屏]iOS平台支持后台推送屏幕(基于ReplayKit,需要iOS 10.0+版本);
  •  [事件回调]支持各种状态实时回调;
  •  [水印]Windows平台支持文字水印、png水印、实时遮挡,Android平台支持文字水印、png水印;
  •  [RTMP推送模式]支持RTMP推送 live|record模式设置(需服务器支持);
  •  [镜像]Android/iOS平台支持前置摄像头实时镜像功能;
  •  [前后摄像头实时切换]Android/iOS平台支持采集过程中,前后摄像头切换;
  •  [复杂网络处理]支持断网重连等各种网络环境自动适配;
  •  [动态码率]支持根据网络情况自动调整推流码率;
  •  [实时静音]支持推送过程中,实时静音/取消静音;
  •  [实时快照]支持推流过程中,实时快照;
  •  [纯音频推流]支持仅采集音频流并发起推流功能;
  •  [纯视频推流]支持特殊场景下的纯视频推流功能;
  •  [降噪]Windows/Android平台支持环境音、手机干扰等引起的噪音降噪处理、自动增益、VAD检测;
  •  [回音消除]android支持实时传递远端PCM数据,方便回音消除处理;
  •  [外部编码前视频数据对接]支持YUV数据对接;
  •  [外部编码前音频数据对接]支持PCM对接;
  •  [外部编码后视频数据对接]支持外部H.264数据对接;
  •  [外部编码后音频数据对接]外部AAC/PCMA/PCMU/SPEEX数据对接;
  •  [编码后数据输出]Android平台支持输出编码后的H264/AAC数据到上层,方便对接第三方平台(如GB28181)对接(接口说明和demo请点击以下链接);
  •  [扩展录像功能]完美支持和录像SDK组合使用,录像相关功能,可参见”8. Windows/Android/iOS录像SDK“;
  •  [基础美颜]iOS平台自带基础美颜功能;
  •  [裁剪模式]Android/iOS平台支持特定分辨率摄像头裁剪模式设置;
  •  [服务器兼容]支持支持自建服务器(如Nginx、SRS)或CDN。

对应Demo:

  •  Windows测试程序:SmartPublisherDemo.exe;
  •  Windows C++工程:WIN-PublisherSDK-CPP-Demo;
  •  Windows C#工程:WIN-PublisherSDK-CSharp-Demo;
  •  Android工程:SmartPublisherV2;
  •  iOS工程:SmartiOSPublisherV2。

Windows平台说明:

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

Windows RTMP推送SDK Demo界面:

Android RTMP推送SDK Demo界面:

iOS RTMP推送SDK Demo界面:

rtmp/rtsp/hls公网测试地址

相信大家在调试播放器的时候,都有这样的困惑,很难找到合适的公有测试源,以下是大牛直播整理的真正可用的直播地址源。

其中,rtmp和rtsp的url,用https://github.com/daniulive/SmarterStreaming提供的播放器验证通过。

hls的地址,用vlc验证通过。

1. RTMP协议直播源

香港卫视:rtmp://live.hkstv.hk.lxdns.com/live/hks

2. RTSP协议直播源

大熊兔(VOD):rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov

国外电视台:rtsp://rtsp-v3-spbtv.msk.spbtv.com/spbtv_v3_1/214_110.sdp

3. HTTP协议直播源

香港卫视:http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8

大牛直播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;
  •  [录像]录像和推送完全分离,完美支持“边推送边录像”、“先推送、后录像”、“先录像,后推送;
  •  [录像]支持设置录像文件前缀、录像文件大小,录像文件增加日期、时间;
  •  [快照]支持推送或录像过程中,随时快照

Windows导播平台或多路合成、混音推流/录像

对应“SmartMixStreamDemo.exe”

  •  支持“windows屏幕截取/摄像头推送录像”模块所有功能;
  •  支持拉取rtmp流;
  •  支持拉取rtsp流;
  •  支持本地采集到屏幕或摄像头数据,和远程拉取得rtmp或rtsp流做合成、混音输出;
  •  支持导播过程中,随时切断某一路音视频或音频;
  •  支持rtsp数据转rtmp推送出去;
  •  音频混音同时选择“采集麦克风”+“采集扬声器”。

windows/iOS拉流转发模块

对应“SmartStreamRelayDemo.exe”

  •  [拉流]支持拉取rtsp流;
  •  [拉流]支持拉取rtmp流;
  •  [预览]支持拉取到的rtsp/rtmp随时本地预览、关闭预览;
  •  [拉流音频调节]支持拉取的rtsp/rtmp流静音;
  •  [url切换]支持转发过程中,拉取的rtsp/rtmp或本地flv文件实时内容切换
  •  [转发]超低延迟转发拉取的rtsp/rtmp流到rtmp server。

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。

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)。

大牛直播SDK集成和调用说明

大牛直播SDK集成和调用说明

大牛直播demo使用说明

如何实现简单粗暴靠谱的直播抓娃娃方案

市面上的娃娃机方案五花八门,daniulive认为最简单靠谱粗暴性价比的方案如下:

RTMP摄像机–>CDN–>daniulive player(专门针对直播娃娃机开通了“超低延迟”模式,公网实际延迟在200~400毫秒).

娃娃机抓取过程录制方案:

行业内首屈一指的录制方案,利用大牛直播播放端SDK,支持两个摄像头切换过程中(SmartPlayerSwitchUrl)录制到同一个MP4文件,便于用户分享抓取过程或进行申诉。

娃娃机视频管理方案:

利用大牛直播的Windows播放器,同时多窗口播放rtmp摄像机数据,采用轮询播放的方式,有设备发生重连或断线之类,实时统计或者告警,保证前端rtmp摄像机的正常运转。

相关播放器下载:

Windows平台下载

Android平台下载

iOS平台下载

比快更快,效果轻松PK市面上“全球第一、国际领先”的各类技术方案。

大牛直播精英群: 294891451 大牛直播技术交流群: 499687479

最近接到最大的质疑是:为什么只有大牛直播推荐这种rtmp摄像头方案?

回答:我们不是做云服务的,通俗点说,我们不是靠带宽盈利的,我们期望客户采用更稳定靠谱的技术方案,服务于更好的商业模式。

可能的其他方案:

PC机一台或工业主板(android或linux),每个连接两个摄像头。

a) 操作娃娃机的用户,走私有协议,来实现所谓低延迟抓取;

b) 其他观看者,数据传到特定服务器,走标准协议,延迟1-3秒。

为什么我们不采用这个方案:

  1. 码率:以720*1280分辨率,20帧码流为例,如果以android板件或windows系统编码,再优化的算法也要占用1.2M码流;如果走rtmp摄像头,因为摄像头本身数据压缩率比较高,码流大概占用在0.3至0.4M,也就是说,同一台摄像机,同等分辨率,码流只有windows或android采集摄像头编码的1/4~1/3。
  2. 成本决策:以1M码流一天的流量费用1块钱为例,1000个并发,走PC或工业主板,带宽成本1000元,rtmp摄像机成本250~300元。
  3. 实际上下行带宽:问题来了,上行1.2M的码流好传,还是0.3M更容易抗网络抖动?下行呢?答案不言而喻。
  4. 平台稳定性:娃娃机属于24小时不间断推送的,一般rtmp摄像机,可靠运行60天,出问题的概率远小于PC或工业板件;
  5. 隔离效应:

a) 摄像机单独部署,网线直接接交换机,每个模块独立,相互干扰的可能性为0;

b) PC或工控机连摄像头,普通摄像头(非工业级摄像头)连续运行60天面临功耗和稳定性问题;

c) PC或工控机,托两路,上行带宽2.4M,是不是能一直得到保障?如厂商考虑成本,顺带娃娃机控制模块也跑在这个板件,相互影响的概率是不是增大了?

质疑1:别扯了,我可以用480*640分辨率啊,反正也能满足娃娃机抓取要求,0.6M就够了

回答:是的,两路1.2M,如果rtmp,每一路大概0.13至0.2M,两路0.3至0.4M,如果没有用户抓娃娃,场景不发生变化时候,你关注下哪怕是720*1280分辨率下,rtmp摄像头实际占用码流,小到吓人。

质疑2:说了这么多,你们只能用rtmp摄像头吗?

回答:我们有提供android工业主板推两路rtmp数据的方案,问题在于,这个带宽成本和其他风险,你们愿意买单吗?

附录:如何简单粗暴的测试Windows推送端和Windows播放器

附录2:大牛直播Android工业板推两路效果

啥也不说,直接看视频演示

参考资料:https://github.com/daniulive/SmarterStreaming

apicloud如何对接大牛直播SDK

随着apicloud的普及,越来越多的用户苦于apicloud下没有一款真正靠谱低延迟的rtmp/rtsp直播播放器苦恼。

鉴于此,大牛直播SDK携手apicloud资深版主,推出apicloud对接方案:

apicloud官方链接:https://www.apicloud.com/mod_detail/49069

apicloud对接版本说明:https://docs.apicloud.com/Client-API/Open-SDK/daniuPlayer

相关接口如下:

视沃科技-大牛直播SDK

专注、极致、智慧,国内外为数不多不依赖开源框架、跨平台(windows/android/iOS)、公网推送(支持rtmp)-转发-播放-录像(支持rtmp/rtsp),比快更快,业界真正靠谱的超低延迟(真1秒,低延迟模式下200~400ms)。

适用于在线教育、无纸化推屏/会议、智慧教室、智能可视门禁对讲、超低延迟娃娃机抓取播放方案、媒体移动直播、应急指挥调度(针对保险、城管、交警、消防、公安等职能管理部门的单兵应急执法系统)、可视化购物、远程专家诊断、可视化巡检、(如电信/电力线路/铁路沿线/水利设施/油田/消防设施巡检)、移动视频安防监控,企业内训、金融在线直播室、微信直播、监控对接、活动现场直播、游戏直播、秀场直播等场景。

daniuPlayer 模块概述

本模块封装了大牛直播SDK,支持rtsp、rtmp播放(请开发者自行控制播放格式),支持秒开模式,支持快速切换视频播放地址等。

License文件打包模块包需注意事项请参考License打包模块包注意事项

模块接口

addPlayerListener

播放器监听

addPlayerListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    code: 1001,   //状态码(含义见下表:)
    param1 : '',//返回参数1
    param2 : '',//返回参数2
    param3 : '',//返回参数3
    param4 : '',//返回参数4
}

示例代码

var demo = api.require('daniuPlayer');
demo.addPlayerListener(function(ret){
    api.toast({
        msg : " addPlayerListener " + JSON.stringify(ret)
    });
});

code状态码

状态码 描述信息
1001 开始播放
1002 连接中
1003 连接失败
1004 已连接
1005 断开连接
1006 停止播放
1007 视频解码分辨率信息
1008 收不到RTMP数据
1009 快速切换url
1010 快照成功/失败
1011 开始buffer
1012 buffer百分比
1013 停止buffer
1014 download速度

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

openPlayer

打开播放器

openPlayer({params}, callback(ret, err))

params

rect:

  • 类型:JSON 对象
  • 描述:(必填项)模块的位置及尺寸
  • 备注:iOS,Android 必须传此参数。
  • 内部字段:
{
    x: 0,   //(必填项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
    y: 0,   //(必填项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
    w: api.frameWidth, //(必填项)数字类型;模块的宽度;默认值:所属的 Window 或 Frame 的宽度
    h: api.frameHeight  //(必填项)数字类型;模块的高度;默认值:所属的 Window 或 Frame 的高度
}

fixedOn:

  • 类型:字符串
  • 描述:(可选项)模块所属 Frame 的名字,若不传则模块归属于当前 Window

fixed:

  • 类型:布尔
  • 描述:((可选项)模块是否随所属 Window 或 Frame 滚动
  • 默认值:true(不随之滚动)

playBuffer:

  • 类型:数字型
  • 描述:(可选项)设置播放端缓存数据 buffer,如不需 buffer, 设置为 0 。
  • 默认值:200

isLowLatency:

  • 类型:布尔
  • 描述:(可选项)针对类似于直播娃娃机等期待超低 延迟的使用场景,超低延迟播放模式下,延迟可达到 200~400ms;
  • 默认值:false(不开启)

isFastStartup:

  • 类型:布尔
  • 描述:(可选项)设置 快速启动后,如果 CDN 缓存 GOP,daniulive player 可快速出帧;
  • 默认值:true(秒开)

isMute:

  • 类型:布尔
  • 描述:(可选项)设置播放过程中,实时静音/取消静音;
  • 默认值:false(取消静音)

isHardwareDecoder:

  • 类型:布尔
  • 描述:(可选项)设置是否用硬解码播放,硬解码/软解码;
  • 默认值:false(软解)

url:

  • 类型:字符串
  • 描述:(必填项)支持 rtmp、rtsp地址类型(类型控制请开发者自行判断,模块不做地址限制判断逻辑);

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('daniuPlayer');
demo.openPlayer({
    rect : {
        x : 5,
        y : 0,
        w : api.frameWidth-5,
        h : 200 
    },
    playBuffer : 200, // 默认200ms
    isLowLatency : false, //超低延时,默认fasle:不开启 true:开启
    isFastStartup : true, // 是否秒开, 默认true:秒开 false:取消秒开
    isMute : false, //是否静音 默认false:取消静音 true:静音
    isHardwareDecoder : false, //是否硬解 默认false:软解 true:硬解
    url : _deviceid , 
    fixedOn : api.frameName,
    fixed : true
}, function(ret, err) {
    api.toast({ msg : " openPlayer " + JSON.stringify(ret) + " " + JSON.stringify(err) });
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

hidePlayer

隐藏播放器

hidePlayer(callback(ret,err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('daniuPlayer');
demo.hidePlayer();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

showPlayer

显示播放器

hidePlayer(callback(ret,err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('daniuPlayer');
demo.showPlayer();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

closePlayer

关闭播放器

closePlayer(callback(ret,err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('daniuPlayer');
demo.closePlayer();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

switchUrl

切换播放器视频地址 switchUrl({params}, callback(ret, err))

params

url:

  • 类型:字符串
  • 描述:(必填项)支持 rtmp、rtsp地址类型(类型控制请开发者自行判断,模块不做地址限制判断逻辑);

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('daniuPlayer');
demo.switchUrl({
    url : "http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8"
}, function(ret, err) {
    api.toast({
        msg : " switchUrl " + JSON.stringify(ret) + " " + JSON.stringify(err)
    });
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

switchMute

设置是否静音 switchMute({params}, callback(ret, err))

params

isMute:

  • 类型:布尔
  • 描述:(可选项)设置播放过程中,实时静音/取消静音;
  • 默认值:false(取消静音)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('daniuPlayer');
demo.switchMute({
    isMute : true
}, function(ret, err) {
    api.toast({
        msg : " switchMute " + JSON.stringify(ret) + " " + JSON.stringify(err)
    });
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

saveImage

保存快照 saveImage(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('daniuPlayer');
demo.saveImage(function(ret, err) {
    api.toast({
        msg : " saveImage " + JSON.stringify(ret) + " " + JSON.stringify(err)
    });
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

startRecorder

开始录像 startRecorder({params}, callback(ret, err))

params

fileMaxSize:

  • 类型:数字型
  • 描述:(可选项)设置每个录像文件最大 size, 以兆(M)为单位,范围(5M~500M);
  • 默认值:200

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('daniuPlayer');
demo.startRecorder();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stopRecorder

停止录像 stopRecorder(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('daniuPlayer');
demo.stopRecorder();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

如何基于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