RTSP直播推流SDK

技术特点和优势:

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

具体参见下图“RTSP推流SDK”关联部分:

功能支持:

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

  •  [视频采集处理]Windows平台涵盖“Windows视频采集处理SDK”功能;
  •  [音频采集处理]Windows平台涵盖“Windows音频采集处理SDK”功能;
  •  [本地预览]Windows平台支持摄像头/屏幕/合成数据实时预览功能,Android/iOS平台支持本地前后置摄像头预览;
  •  [摄像头反转/旋转]Windows平台支持摄像头水平反转、垂直反转、0°/90°/180°/270°旋转;
  •  [摄像头采集]除常规YUV格式外,Windows平台还支持MJPEG格式的摄像头采集;
  •  [RTSP推流]超低延时的RTSP协议直播推流SDK;
  •  [视频格式]Windows/Android平台支持H.264/H.265编码(Android H.265硬编码),iOS平台支持H.264编码;
  •  [音频格式]Windows/Android/iOS平台支持AAC编码;
  •  [音量调节]Windows/Android平台采集端支持实时音量调节(其中,Windows平台混音模式下支持单独控制麦克风、扬声器音量);
  •  [H.264硬编码]Android/iOS平台支持H.264硬编码;
  •  [H.265硬编码]Android/iOS平台支持H.265硬编码;
  •  [硬编码自适应]Android/iOS平台支持硬编码自适应,如检测到硬编码不支持,自动切换到软编(iOS如H.265硬编,先切换到H.264硬编码,如不支持再尝试H.264软编);
  •  [RTSP鉴权]支持RTSP鉴权推送;
  •  [TCP/UDP模式]支持rtp over udp和rtp over tcp两种传输方式;
  •  [401事件处理]RTSP推送支持401事件上报;
  •  [视频格式]支持H.264/H.265(64位库)编码;
  •  [音频格式]支持AAC编码;
  •  [软硬编码参数配置]支持gop间隔、帧率、bit-rate设置;
  •  [软编码参数配置]支持软编码profile、软编码速度、可变码率设置;
  •  [多实例推送]支持多实例推送(如同时推送屏幕/摄像头和外部数据);
  •  [多分辨率支持]支持摄像头或屏幕多种分辨率设置;
  •  [Windows推屏]Windows平台支持屏幕裁剪、窗口采集、屏幕/摄像头数据合成等多种模式推送;
  •  [事件回调]支持各种状态实时回调;
  •  [水印]Windows平台支持文字水印、png水印、实时遮挡,Android平台支持文字水印、png水印;
  •  [复杂网络处理]支持断网重连等各种网络环境自动适配;
  •  [动态码率]支持根据网络情况自动调整推流码率;
  •  [实时静音]支持推送过程中,实时静音/取消静音;
  •  [实时快照]支持推流过程中,实时快照;
  •  [纯音频推流]支持仅采集音频流并发起推流功能;
  •  [纯视频推流]支持特殊场景下的纯视频推流功能;
  •  [降噪]Windows/Android平台支持降噪处理、自动增益、VAD检测;
  •  [回音消除]Android平台支持实时传递远端PCM数据,方便回音消除处理;
  •  [外部编码前视频数据对接]支持YUV数据对接;
  •  [外部编码前音频数据对接]支持PCM对接;
  •  [外部编码后视频数据对接]支持外部H.264数据对接;
  •  [外部编码后音频数据对接]外部AAC/PCMA/PCMU数据对接;
  •  [推送端休眠设置]Windows平台支持休眠接口(设置成休眠模式后CPU会适当降低);
  •  [扩展录像功能]完美支持和录像SDK组合使用,录像相关功能,可参见”Windows/Android/iOS录像SDK“;
  •  [服务器兼容]支持自建服务器(如Darwin Stream Server)。

对应Demo:

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

相关博客:

大牛直播RTMP播放器SDK

技术特点和优势

大牛直播SDK RTMP 播放器,基于跨平台全自研内核,专为专业级 RTMP 播放场景打造,全面支持 Windows、Linux、Android、鸿蒙NEXT、iOS 多平台统一接入与集成。具备毫秒级超低延迟(100~200ms)功能全面性能卓越等核心优势,支持软硬解灵活切换、状态回调、音视频控制等,轻松适配各类复杂应用需求。

目前已广泛应用于直播监控、远程教学、工业视觉等关键领域,成功服务超过 500 家企业项目,被广泛认可为 RTMP 播放器领域的高性能标杆方案

技术架构

功能支持

如不单独说明,系Windows、Linux(含x86_64|aarch64)、Android、鸿蒙NEXT、iOS全平台支持。

  •  [支持播放协议]高稳定、超低延迟(毫秒级,行业内几无效果接近的播放端)、业内领先的RTMP直播播放器SDK;
  •  [多实例播放]支持多实例播放;
  •  [事件回调]支持网络状态、buffer状态等回调;
  •  [视频格式]支持RTMP扩展H.265和Enhanced RTMP H.265,H.264;
  •  [音频格式]支持AAC/PCMA/PCMU/Speex;
  •  [H.264/H.265软解码]支持H.264/H.265软解;
  •  [H.264硬解码]Windows/Android/鸿蒙NEXT/iOS支持特定机型H.264硬解;
  •  [H.265硬解]Windows/Android/鸿蒙NEXT/iOS支持特定机型H.265硬解;
  •  [H.264/H.265硬解码]Android/鸿蒙NEXT支持设置Surface模式硬解和普通模式硬解码;
  •  [缓冲时间设置]支持buffer time设置;
  •  [首屏秒开]支持首屏秒开模式;
  •  [低延迟模式]支持低延迟模式设置(公网100~200ms);
  •  [复杂网络处理]支持断网重连等各种网络环境自动适配;
  •  [快速切换URL]支持播放过程中,快速切换其他URL,内容切换更快;
  •  [音视频多种render机制]Android平台,视频:SurfaceView/GLSurfaceView,音频:AudioTrack/OpenSL ES;
  •  [实时静音]支持播放过程中,实时静音/取消静音;
  •  [实时音量调节]支持播放过程中实时调节音量;
  •  [实时快照]支持播放过程中截取当前播放画面;
  •  [只播关键帧]Windows平台支持实时设置是否只播放关键帧;
  •  [渲染角度]支持0°,90°,180°和270°四个视频画面渲染角度设置;
  •  [渲染镜像]支持水平反转、垂直反转模式设置;
  •  [等比例缩放]支持图像等比例缩放绘制(Android/鸿蒙NEXT设置surface模式硬解模式不支持);
  •  [实时下载速度更新]支持当前下载速度实时回调(支持设置回调时间间隔);
  •  [ARGB叠加]Windows平台支持ARGB图像叠加到显示视频(参看C++的DEMO);
  •  [解码前视频数据回调]支持H.264/H.265数据回调;
  •  [解码后视频数据回调]支持解码后YUV/RGB数据回调;
  •  [解码后视频数据缩放回调]Windows平台支持指定回调图像大小的接口(可以对原视图像缩放后再回调到上层);
  •  [解码前音频数据回调]支持AAC/PCMA/PCMU/SPEEX数据回调;
  •  [音视频自适应]支持播放过程中,音视频信息改变后自适应;
  •  [扩展录像功能]完美支持和录像SDK组合使用(支持RTMP扩展H.265流录制,支持PCMA/PCMU/Speex转AAC后录制,支持设置只录制音频或视频),录像相关功能,可参见”Windows/Android/iOS录像SDK“。

对应Demo

  •  Windows测试程序:SmartPlayer.exe;
  •  Windows C++工程:WIN-PlayerSDK-CPP-Demo;
  •  Windows C#工程:WIN-PlayerSDK-CSharp-Demo;
  •  Linux工程:single_playerdemo|multi_playerdemo;
  •  Android工程:SmartPlayerV2;
  •  鸿蒙NEXT工程:SmartPlayerDemo;
  •  iOS工程:SmartiOSPlayerV2。

技术对接文档

延时测试视频

相关博客

大牛直播RTSP播放器SDK

技术特点和优势

大牛直播SDK(SmartMediaKit) RTSP 播放器,基于跨平台全自研内核,专为专业级 RTSP 播放场景打造,全面支持 Windows、Linux、Android、iOS、Unity3D 多平台统一接入与集成。具备毫秒级超低延迟(100~200ms)功能全面性能卓越超低资源占用等核心优势,原生支持 RTSP TCP/UDP 双模式、自动鉴权、软硬解灵活切换,轻松适配各类复杂网络与设备环境。

目前已广泛应用于安防监控、远程教育、单兵指挥、工业视觉、智能机器人、低空经济等关键领域,成功服务超过 500 家企业项目,被广泛认可为跨平台超低延迟 RTSP 播放器领域的高性能标杆方案

具体参见下图“RTSP播放SDK”关联部分

功能支持

如不单独说明,系Windows、Linux(x64_64架构|aarch64)、Android、鸿蒙NEXT、iOS全平台支持。

  •  [支持播放协议]高稳定、超低延迟、业内首屈一指的RTSP直播播放器SDK;
  •  [多实例播放]支持多实例播放;
  •  [事件回调]支持网络状态、buffer状态等回调;
  •  [视频格式]支持H.265、H.264,此外,还支持RTSP MJPEG播放;
  •  [音频格式]支持AAC/PCMA/PCMU;
  •  [H.264/H.265软解码]支持H.264/H.265软解;
  •  [H.264硬解码]Windows/Android/鸿蒙NEXT/iOS支持特定机型H.264硬解;
  •  [H.265硬解]Windows/Android/鸿蒙NEXT/iOS支持特定机型H.265硬解;
  •  [H.264/H.265硬解码]Android/鸿蒙NEXT支持设置Surface模式硬解和普通模式硬解码;
  •  [RTSP模式设置]支持RTSP TCP/UDP模式设置;
  •  [RTSP TCP/UDP自动切换]支持RTSP TCP、UDP模式自动切换;
  •  [RTSP超时设置]支持RTSP超时时间设置,单位:秒;
  •  [RTSP 401认证处理]支持上报RTSP 401事件,如URL携带鉴权信息,会自动处理;
  •  [缓冲时间设置]支持buffer time设置;
  •  [首屏秒开]支持首屏秒开模式;
  •  [复杂网络处理]支持断网重连等各种网络环境自动适配;
  •  [快速切换URL]支持播放过程中,快速切换其他URL,内容切换更快;
  •  [音视频多种render机制]Android平台,视频:surfaceview/OpenGL ES,音频:AudioTrack/OpenSL ES;
  •  [实时静音]支持播放过程中,实时静音/取消静音;
  •  [实时音量调节]支持播放过程中实时调节音量;
  •  [实时快照]支持播放过程中截取当前播放画面;
  •  [只播关键帧]Windows平台支持实时设置是否只播放关键帧;
  •  [渲染角度]支持0°,90°,180°和270°四个视频画面渲染角度设置;
  •  [渲染镜像]支持水平反转、垂直反转模式设置;
  •  [等比例缩放]支持图像等比例缩放绘制(Android设置surface模式硬解模式不支持);
  •  [实时下载速度更新]支持当前下载速度实时回调(支持设置回调时间间隔);
  •  [解码前视频数据回调]支持H.264/H.265数据回调;
  •  [解码后视频数据回调]支持解码后YUV/RGB数据回调;
  •  [解码前音频数据回调]支持AAC/PCMA/PCMU数据回调;
  •  [音视频自适应]支持播放过程中,音视频信息改变后自适应;
  •  [扩展录像功能]完美支持和录像SDK组合使用(支持RTSP H.265流录制,支持PCMA/PCMU转AAC后录制,支持设置只录制音频或视频),录像相关功能,可参见”Windows/Linux/Android/鸿蒙NEXT/iOS录像SDK“。

对应Demo

  •  Windows测试程序:SmartPlayer.exe;
  •  Windows C++工程:WIN-PlayerSDK-CPP-Demo;
  •  Windows C#工程:WIN-PlayerSDK-CSharp-Demo;
  •  Linux工程:single_playerdemo|multi_playerdemo;
  •  Android工程:SmartPlayerV2;
  •  鸿蒙NEXT工程:SmartPlayerDemo。
  •  iOS工程:SmartiOSPlayerV2。

对应对接文档

延时测试视频

相关博客

一对一互动SDK

大牛直播一对一互动SDK涵盖Windows、Android和iOS平台。

目前市面上大多一对一互动都是基于WebRTC,缺点如下:

  1. 服务器部署非常复杂,不利于私有部署,在一些私密性高的场景下,无法使用,如公安、市政等体系;
  2. 传输基于UDP,很难保证传输质量,由于UDP是不可靠的传输协议,在复杂的公网网络环境下,各种突发流量、偶尔的传输错误、网络抖动、超时等等都会引起丢包异常,都会在一定程度上影响音视频通信的质量;
  3. 难以应对复杂的互联网环境,如跨区跨运营商、低带宽、高丢包等场景;
  4. 整个框架体系不够灵活,代码复杂度高,行话说的好:从demo到实用,中间还差1万个WebRTC

RTMP/RTSP一对一互动SDK技术特点和优势:

  •  基于官方现有RTMP、RTSP推送、或内置RTSP服务、播放SDK,产品稳定度高,行业内首屈一指的超低延迟特性;
  •  加入噪音抑制、回音消除、自动增益控制等特性,确保通话效果;
  •  采用通用的RTMP和RTSP服务器,如nginx、SRS或 Darwin Stream Server(原生版本),更有利于私有部署;
  •  支持H.264的扩展SEI消息发送机制;
  •  支持H.265编码(Windows/Android/iOS特定机型硬编码)和H.264可变码率设定,换句话说,之前大牛直播SDK推送端支持的功能,都可以同步支持;
  •  支持H.265解码,直播播放器支持的功能,一对一互动模块都可以有选择的支持;
  •  Windows平台支持双流合成大小屏录制;
  •  Windows支持摄像头、屏幕合成、水印等各种组合模式,扩展度高;
  •  适用于应急指挥、教育培训等领域。

对应Demo:

  • 以C#为例,对应SmartEchoCancellation.exe(WIN-EchoCancellation-CSharp-Demo);
  •  Android工程:SmartEchoCancellationV2;
  •  iOS工程:SmartiOSEchoCancellation。

相关博客:

本地FLV播放SDK

大牛直播本地FLV播放SDK,目前覆盖Windows平台。

功能支持:

  1. 视频:H.264;
  2. 音频:AAC;
  3. 支持本地flv文件播放(支持获取flv文件的duration(时长);
  4. 支持显示当前播放位置;
  5. 支持开始播放或播放过程中seek(跳转播放位置),也许是行业内seek最快的flv点播播放器);
  6. 可通过回调本地FLV音视频数据帧,配合RTMP推送模块,实现本地FLV文件的实时RTMP流转发。

视沃科技(大牛直播SDK)RTMP推送-RTSP/RTMP直播SDK

视沃科技-大牛直播SDK daniulive.com

始于2014年,国内外为数不多致力于极致体验的超强全自研跨平台(windows/android/iOS)流媒体内核,通过模块化自由组合,支持实时RTMP推流、RTMP/RTSP直播播放(支持RTSP/RTMP H.265)、实时录像、多路流媒体转发、音视频导播、动态视频合成、音频混音、互动直播、内置轻量级RTSP服务等,比快更快,业界真正靠谱的超低延迟直播SDK(1秒内,低延迟模式下200~400ms)。

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

latest release note

除此之外,大牛直播SDK播放端,支持APICloudReact Native二次封装,并且全平台支持Unity3D平台,也可能是Unity3D平台下首款真正高稳定、超低延迟的rtmp/rtsp直播播放器。

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

windows/android/iOS播放器SDK(V2)Unity3D调用说明(更新于2018/10/31)

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

Unity3D-Windows播放端APP下载(更新于2018/09/04)

Unity3D-Android播放端APK下载(更新于2018/10/24)

Windows端

  •  RTMP直播推流SDK rtmp推送SDK(支持同时推多路url,支持RTMP扩展H.265推送(64位库));
  •  RTMP/RTSP直播播放器SDK 业内首屈一指的rtmp/rtsp超低延迟直播播放器SDK(支持RTMP H.265扩展播放);
  •  Unity3D RTMP/RTSP直播播放器SDK 业内首家Windows支持Unity3D的超低延迟RTMP/RTSP直播播放器SDK,支持快照、录像、实时静音、view旋转、快速切换URL等特性;
  •  RTMP/RTSP多路流媒体转RTMP推送SDK 支持同时多路拉取rtmp/rtsp流/本地flv文件,并分别转发到服务器,支持转发过程中,拉取的rtsp/rtmp或本地flv文件实时内容切换,业内为数不多支持RTSP/RTMP H.265拉流转发的SDK(提供配套RTMP扩展H.265服务器);
  •  轻量级RTSP服务SDK 为满足内网无纸化/电子教室等内网超低延迟需求,避免让用户配置单独的服务器,大牛直播SDK在推送端支持轻量级RTSP服务SDK,推送端SDK支持的功能,内置轻量级RTSP服务SDK后,功能继续支持,windows端64位库支持RTSP H.265视频输出;
  •  内网RTSP网关SDK 内网RTSP网关SDK,系内置轻量级RTSP服务SDK扩展,完成外部RTSP/RTMP数据拉取并注入到轻量级RTSP服务SDK工作,多个内网客户端直接访问内网轻量级RTSP服务获取公网数据,无需部署单独的服务器,支持RTSP/RTMP H.265数据接入;
  •  导播SDK 数据源:1. rtmp/rtsp音视频流;2. 本地屏幕/摄像头/音频数据;3.本地flv文件;多路流合成一路实时导播推送;
  •  录像SDK 支持拉取rtmp/rtsp流实时录像模块/实时快照功能,支持纯音频、纯视频、音视频录制模式,支持音频(PCMU/PCMA,Speex等)转AAC后再录像,业内为数不多的支持RTSP/RTMP H.265录制到MP4文件的录像SDK;
  •  [互动SDK] Windows一对一互动(可windows与windows/android互动);
  •  连麦SDK 以标准协议为基础,完美支持Windows连麦;
  •  [点播播放器SDK] 支持本地flv文件播放(支持获取flv文件的duration(时长);支持显示当前播放位置;支持开始播放或播放过程中seek(跳转播放位置),也许是行业内seek最快的flv点播播放器);
  •  SEI扩展数据发送/接收SDK 支持推送端通过H.264 SEI信息扩展,实时传输文本/二进制数据信息(如实时字幕/时间戳/题目分发/公告广播等),播放端做相应解析和回显;
  •  视频处理SDK 屏幕/多摄像头/水印/遮挡区域多层自由合成模块;
  •  音频处理SDK 多路混音、回音消除、噪音抑制、自动增益、VAD检测模块;

Android端

  •  RTMP直播推流端SDK Android屏幕、摄像头RTMP推流SDK;
  •  RTMP/RTSP直播播放器SDK 业内首屈一指的rtmp/rtsp超低延迟直播播放器SDK(支持RTMP H.265扩展播放);
  •  Unity3D RTMP/RTSP直播播放器SDK 业内首家Android支持Unity3D的超低延迟RTMP/RTSP直播播放器SDK,支持快照、录像、实时静音、view旋转、快速切换URL等特性;
  •  录像SDK 支持拉取rtmp/rtsp流实时录像模块/实时快照功能,支持纯音频、纯视频、音视频录制模式,支持音频(PCMU/PCMA,Speex等)转AAC后再录像,业内为数不多的支持RTSP/RTMP H.265录制到MP4文件的录像SDK;
  •  RTMP/RTSP多路流媒体转RTMP推送SDK 支持实时拉取的rtmp/rtsp流转发到指定rtmp url;
  •  轻量级RTSP服务SDK 为满足内网无纸化/电子教室等内网超低延迟需求,避免让用户配置单独的服务器,大牛直播SDK在推送端支持轻量级RTSP服务SDK,推送端SDK支持的功能,内置轻量级RTSP服务SDK后,功能继续支持;
  •  [互动SDK] Android一对一互动(可android与windows/android/iOS互动);
  •  SEI扩展数据发送/接收SDK 支持推送端通过H.264 SEI信息扩展,实时传输文本/二进制数据信息(如实时字幕/时间戳/题目分发/公告广播等),播放端做相应解析和回显;
  •  视频处理SDKAndroid文字水印、png图片水印;
  •  音频处理SDKAndroid回音消除、噪音抑制、自动增益、VAD检测模块;

iOS端

  •  RTMP直播推流端SDK iOS屏幕(基于ReplayKit)、摄像头RTMP推流SDK;
  •  RTMP/RTSP直播播放器SDK 业内首屈一指的rtmp/rtsp超低延迟直播播放器SDK(支持RTMP H.265扩展播放);
  •  Unity3D RTMP/RTSP直播播放器SDK 业内首家iOS支持Unity3D的超低延迟RTMP/RTSP直播播放器SDK,支持快照、录像、实时静音、view旋转、快速切换URL等特性;
  •  录像SDK 支持拉取rtmp/rtsp流实时录像模块/实时快照功能,支持纯音频、纯视频、音视频录制模式,支持音频(PCMU/PCMA,Speex等)转AAC后再录像,业内为数不多的支持RTSP/RTMP H.265录制到MP4文件的录像SDK;
  •  RTMP/RTSP多路流媒体转RTMP推送SDK 支持实时拉取的rtmp/rtsp流转发到指定rtmp url;
  •  轻量级RTSP服务SDK 为满足内网无纸化/电子教室等内网超低延迟需求,避免让用户配置单独的服务器,大牛直播SDK在推送端支持轻量级RTSP服务SDK,推送端SDK支持的功能,内置轻量级RTSP服务SDK后,功能继续支持;
  •  SEI扩展数据发送/接收SDK 支持推送端通过H.264 SEI信息扩展,实时传输文本/二进制数据信息(如实时字幕/时间戳/题目分发/公告广播等),播放端做相应解析和回显;

本地下载

很多开发者反应,由于项目庞大,github下载整个工程很慢,我们已经把相关demo文件和使用说明,全部上传到QQ群共享:

或者直接从私有服务器下载(Windows提供C#/C++ demo, android提供android studio demo,iOS提供xcode demo):

大牛直播SDK相关demo本地下载

NOTE: Windows平台,以C++ SDK Demo为最新,C# Demo更新速度稍滞于C++ Demo。

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

大牛直播SDK Demo使用说明

上层源码目录

  1. android推流 SmartPublisherV2https://github.com/daniulive/SmarterStreaming/tree/master/SourceCode/AndroidStudio/SmartPublisherV2
  2. android推流 SmartServicePublisherV2(后台service推送屏幕)https://github.com/daniulive/SmarterStreaming/tree/master/SourceCode/AndroidStudio/SmartServicePublisherV2
  3. android推流 SmartServiceCameraPublisherV2(后台service推送摄像头)https://github.com/daniulive/SmarterStreaming/tree/master/SourceCode/AndroidStudio/SmartServiceCameraPublisherV2
  4. android一对一回音消除 SmartEchoCancellationV2https://github.com/daniulive/SmarterStreaming/tree/master/SourceCode/AndroidStudio/SmartEchoCancellationV2
  5. android播放器 SmartPlayerV2:https://github.com/daniulive/SmarterStreaming/tree/master/SourceCode/AndroidStudio/SmartPlayerV2
  6. android转发-录像-播放三合一 SmartRelayDemoV2:https://github.com/daniulive/SmarterStreaming/tree/master/SourceCode/AndroidStudio/SmartRelayDemoV2
  7. iOS推流 SmartiOSPublisherV2:https://github.com/daniulive/SmarterStreaming/tree/master/SourceCode/IOS/SmartiOSPublisherV2
  8. iOS后台推屏 SmartiOSScreenPublisherV2:https://github.com/daniulive/SmarterStreaming/tree/master/SourceCode/IOS/SmartiOSScreenPublisherV2
  9. iOS播放器 SmartiOSPlayerV2:https://github.com/daniulive/SmarterStreaming/tree/master/SourceCode/IOS/SmartiOSPlayerV2
  10. iOS转发-录像-播放三合一 SmartiOSRelayDemoV2:https://github.com/daniulive/SmarterStreaming/tree/master/SourceCode/IOS/SmartiOSRelayDemoV2

功能支持


1. Windows视频采集处理SDK

  1. 支持视频源
  •  支持Windows屏幕采集、屏幕裁剪特定窗口采集、摄像头采集、扩展外部H.264数据对接;
  1. 摄像头和屏幕合成
  •  [摄像头和屏幕实时切换]支持推送过程中,摄像头和屏幕互相切换,单画面显示摄像头或屏幕;
  •  [摄像头叠加到屏幕] 支持摄像头按照设置坐标,叠加到屏幕指定位置,并支持实时关闭叠加层;
  •  [屏幕叠加到摄像头] 支持屏幕按照设定坐标,叠加到摄像头指定位置,并支持实时关闭叠加层;
  1. 水印和透明度遮挡
  •  [实时水印]支持动态水印设置,完美支持文字水印、实时时间水印和图片水印
  •  [透明度]可以设置透明度处理(设置遮盖);
  1. 对应Demo:
  •  测试程序:SmartPublisherDemo.exe;
  •  C++工程:WIN-PublisherSDK-CPP-Demo;
  •  C#工程:WIN-PublisherSDK-CSharp-Demo。

2. Windows音频采集处理SDK

  1. 支持音频源
  •  支持Windows采集麦克风扬声器和外部AAC, Speex WB, PCMA, PCMU数据接口输入;
  1. 音频合成
  •  [音频]支持扬声器和麦克风音频混音输出(同时选择“采集扬声器”和“采集麦克风”);
  1. 音频处理
  •  支持音频“端点检测(VAD)”,自适应码流,音频码流更节省;
  •  支持回音消除功能;
  •  支持噪音抑制功能;
  •  支持自动增益控制。
  1. 对应Demo:
  •  测试程序:SmartPublisherDemo.exe;
  •  C++工程:WIN-PublisherSDK-CPP-Demo;
  •  C#工程:WIN-PublisherSDK-CSharp-Demo。

3. Windows/Android/iOS RTMP直播推流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。

4. Windows/Android/iOS RTMP、RTSP直播播放器SDK

如不单独说明,系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模式硬解和普通模式硬解码;
  •  [硬解码自适应]Android/iOS平台支持硬解码码自适应,如检测到硬解码不支持,自动切换到软解;
  •  [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组合使用,录像相关功能,可参见”8. 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。

5. Windows/Android/iOS内置轻量级RTSP服务SDK

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

  •  [基础功能]支持Windows/Android/iOS平台RTMP直播SDK除推送RTMP外的所有常规功能;
  •  [音频格式]AAC;
  •  [视频格式]H.264、H.265;
  •  [协议类型]RTSP;
  •  [端口设置]支持RTSP端口设置;
  •  [鉴权设置]支持RTSP鉴权用户名、密码设置;
  •  [获取session连接数]支持获取当前RTSP服务会话连接数;
  •  [多服务支持]支持同时创建多个内置RTSP服务;
  •  [H.265支持]Windows内置rtsp server支持发布H.265视频(64位库);
  •  [RTSP url回调]支持设置后的rtsp url通过event回调到上层。

对应Demo:

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

6. Windows内网RTSP网关SDK

内网RTSP网关SDK,系内置轻量级RTSP服务SDK扩展,完成外部RTSP/RTMP数据拉取并注入到轻量级RTSP服务SDK工作,多个内网客户端直接访问内网轻量级RTSP服务获取公网数据,无需部署单独的服务器,支持RTSP/RTMP H.265数据接入。 简单来说:内置轻量级RTSP服务SDK和内置RTSP网关SDK的区别在于数据来源不同,内置轻量级RTSP服务SDK数据来源于终端设备自带摄像头数据/屏幕数据/外部编码前后数据,内置RTSP网关SDK的数据源是RTSP/RTMP流数据。

  •  [音频格式]AAC;
  •  [视频格式]H.264、H.265;
  •  [接入协议]支持内外网RTMP/RTSP流接入;
  •  [输出协议]RTSP,拉取的RTSP/RTMP流,注入轻量级RTSP服务SDK;
  •  [音频转码]支持音频(PCMU/PCMA,Speex等)转AAC后注入;
  •  [端口设置]支持RTSP端口设置;
  •  [鉴权设置]支持RTSP鉴权用户名、密码设置;
  •  [获取session连接数]支持获取当前RTSP服务会话连接数;
  •  [多服务支持]支持同时创建多个内置RTSP服务;
  •  [H.265支持]Windows内置rtsp server支持发布H.265视频(64位库);
  •  [RTSP url回调]支持设置后的rtsp url通过event回调到上层;

对应Demo:

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

7. Windows/Android/iOS RTMP/RTSP多路流媒体转RTMP推送SDK

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

  •  [拉流]支持拉取RTSP流;
  •  [拉流]支持拉取RTMP流;
  •  [预览]支持拉取到的RTMP/RTSP随时本地预览、关闭预览;
  •  [拉流音频调节]支持拉取的RTMP/RTSP流静音;
  •  [音频转码]支持拉取的RTMP/RTSP的PCMA/PCMU/SPEEX音频格式转AAC后再转发到RTMP服务器;
  •  [url切换]支持转发过程中,拉取的RTMP/RTSP或本地FLV文件实时内容切换
  •  [转发]超低延迟转发拉取的rtsp/rtmp流到rtmp server;
  •  [H.265支持]业内首家支持RTSP/RTMP H.265转RTMP推送的SDK(提供配套RTMP扩展H.265服务器);

对应Demo:

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

8. Windows导播SDK

  •  [拉流]支持拉取RTSP流;
  •  [拉流]支持拉取RTMP流;
  •  [混音合成]支持本地采集到屏幕或摄像头数据,和远程拉取得RTSP或RTMP流做合成、混音输出;
  •  [导播]支持导播过程中,随时切断某一路音视频或音频;
  •  [混音]支持音频混音(同时选择“采集麦克风”+“采集扬声器”);
  •  [合成]多路流合成一路流后,推送到RTMP服务器;
  •  [扩展录像快照]多路合成后的流,支持本地录像、快照。

对应Demo:

  •  测试程序:SmartMixStreamDemo.exe;
  •  C++工程:WIN-MixStreamSDK-CPP-Demo;

9. Windows/Android/iOS录像SDK

  •  [拉流]支持拉取RTSP流录像;
  •  [拉流]支持拉取RTMP流录像;
  •  [推流端录像]支持推送端同步录像;
  •  [逻辑分离]大牛直播录像SDK不同于普通录像接口,更智能,和推送、播放、转发、内置轻量级RTSP服务SDK功能完全分离,支持随时录像;
  •  [url切换]在录像过程中,支持切换不同URL,如两个URL配置一致,则可以录制到同一个MP4文件,如不一致,可自动分割到下一个文件;
  •  [参数设置]支持设置单个录像文件大小、录像路径等,并支持纯音频、纯视频、音视频录制模式;
  •  [音频转码]支持音频(PCMU/PCMA,Speex等)转AAC后再录像;
  •  [265支持]支持RTSP/RTMP H.265录制到MP4文件;
  •  [推送端265录像]Windows推送SDK支持H265录像;
  •  [事件回调]从开始录像,到录像结束均有event callback上来,网络堵塞、音视频同步均做了非常友好的处理。

对应Demo:

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

10. Windows/Android/iOS SEI扩展数据发送/接收SDK

  •  [RTSP SEI]支持内置RTSP服务SDK携带SEI扩展信息(H.264);
  •  [RTMP SEI]支持RTMP推送SDK携带SEI扩展信息(H.264);
  •  [自定义数据]持发送自定义用户数据(如自定义utf8字符串);
  •  [二进制数据]支持发送二进制数据;
  •  [播放端解析]RTSP/RTMP直播播放端SDK支持utf8文本、二进制、和原SEI数据解析。

对应Demo:

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

编译注意事项

  • iOS平台支持真机和模拟器编译运行.
  • iOS播放端编译时找不到 libSmartPlayerSDK.a 时,请先到 SmartiOSPlayer/SmartiOSPlayer/libs 目录, 解压libSmartPlayerSDK.zip.
  • iOS推送端编译时找不到 libSmartPublisherSDK.a 时,请先到 SmartiOSPublisher/SmartiOSPublisher/libs 目录, 解压libSmartPublisherSDK.zip.
  • 未授权版本,限制app-name,如果需要集成到自己工程里面调试,可以用以下名字:
Windows推送端:SmartPublisherDemo
Windows播放端:SmartPlayer
Windows转发端:SmartStreamRelayDemo
Windows合流导播端:SmartMixStreamDemo
android推送端:SmartPublisherSDKDemo
android后台Service推送:SmartServicePublisherSDKDemo
android一对一互动:SmartEchoCancellation
android播放器:SmartPlayerSDKDemo
iOS推送端:SmartiOSPublisher
iOS转发端:SmartiOSRelayDemo
iOS播放器:SmartiOSPlayer
  • 集成到自己工程,如何改名字(以推送端为例):
android:strings.xml:
<string name="app_name">SmartPublisherSDKDemo</string>
iOS:Info.plist-->右键Open As-->Source Code,添加或者编辑
<key>CFBundleName</key>	
<string>SmartiOSPublisher</string>

联系我们

点击查看联系方式

QQ交流群:

大牛直播SDK技术交流群1:499687479

大牛直播SDK技术交流群2:294891451

内网RTSP网关SDK

技术特点和优势:

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

内置轻量级RTSP服务模块和内置RTSP网关模块共同点:

内置轻量级RTSP服务模块和内置RTSP网关模块,核心痛点是避免用户或者开发者单独部署RTSP或者RTMP服务,数据汇聚到内置RTSP服务,对外提供可供拉流的RTSP URL,适用于内网环境下,对并发要求不高的场景,支持H.264/H.265,支持RTSP鉴权、单播、组播模式,考虑到单个服务承载能力,我们支持同时创建多个RTSP服务,并支持获取当前RTSP服务会话连接数。

内置轻量级RTSP服务模块和内置RTSP网关模块不同点:数据来源不同

1. 内置轻量级RTSP服务模块,数据源来自摄像头、屏幕、麦克风等编码前数据,或者本地编码后的对接数据;

2. 内置RTSP网关模块,实际上是RTSP/RTMP拉流模块+内置轻量级RTSP服务模块组合出来的。数据源来自RTSP或RTMP网络流,拉流模块完成编码后的音视频数据回调,然后,汇聚到内置轻量级RTSP服务模块。

整体设计方案如下:

功能支持:

  •  [音频格式]AAC;
  •  [视频格式]H.264、H.265;
  •  [接入协议]支持内外网RTMP/RTSP流接入;
  •  [输出协议]RTSP,拉取的RTSP/RTMP流,注入轻量级RTSP服务SDK;
  •  [传输模式]Windows支持单播组播模式,Android/iOS平台支持单播模式;
  •  [音频转码]支持音频(PCMU/PCMA,Speex等)转AAC后注入;
  •  [端口设置]支持RTSP端口设置;
  •  [鉴权设置]支持RTSP鉴权用户名、密码设置;
  •  [获取session连接数]支持获取当前RTSP服务会话连接数;
  •  [多服务支持]支持同时创建多个内置RTSP服务;
  •  [H.265支持]Windows内置rtsp server支持发布H.265视频(64位库);
  •  [RTSP url回调]支持设置后的rtsp url通过event回调到上层;

对应Demo:

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

基本使用步骤(以Windows平台为例):

  1. 点击“配置查看Rtsp服务”按钮,启动rtsp服务;
  2. 输入需要拉流的rtsp或rtmp地址;
  3. 点击拉流,获取rtsp或rtsp流数据;
  4. 点击“发送rtsp流”,即可把数据注入内网rtsp网关sdk;
  5. 发送成功后,会回调可用来播放的内网rtsp url;
  6. 播放端,输入步骤5回调的rtsp地址,完成拉流播放;
  7. 如果查看连接的内网播放session数,点击“配置查看Rtsp服务”,可实时查询每个rtsp service连接的session数;
  8. 如需本地拉取的rtsp或rtmp流,点击“预览”;
  9. 如需停止,点击“停止rtsp流”。

相关博客:

大牛直播SDK Demo展示

大牛直播SDK Demo页面展示:

1. Windows RTMP直播推送SDK:

2. Windows转发SDK:

3.Windows导播SDK:

4. Android RTMP直播推送SDK:

5. iOS RTMP直播推送:

6. Windows RTMP/RTSP直播播放SDK:

7. Android RTMP/RTSP直播播放SDK:

8. iOS RTMP/RTSP直播播放SDK:

9. Android播放、录像、RTMP转发-内置网关SDK(SmartRelayDemoV2)

音频采集处理SDK

Windows音频采集处理SDK

  1. 支持音频源
  •  支持Windows采集麦克风扬声器和外部AAC, Speex WB, PCMA, PCMU数据接口输入;
  1. 音频合成
  •  [音频]支持扬声器和麦克风音频混音输出(同时选择“采集扬声器”和“采集麦克风”);
  1. 音频处理
  •  支持音频“端点检测(VAD)”,自适应码流,音频码流更节省;
  •  支持回音消除功能;
  •  支持噪音抑制功能;
  •  支持自动增益控制。
  1. 对应Demo:
  •  测试程序:SmartPublisherDemo.exe;
  •  C++工程:WIN-PublisherSDK-CPP-Demo;
  •  C#工程:WIN-PublisherSDK-CSharp-Demo。

视频采集处理SDK

Windows视频采集处理SDK

  1. 支持视频源
  •  支持Windows屏幕采集、屏幕裁剪特定窗口采集、摄像头采集、扩展外部H.264数据对接;
  1. 摄像头和屏幕合成
  •  [摄像头和屏幕实时切换]支持推送过程中,摄像头和屏幕互相切换,单画面显示摄像头或屏幕;
  •  [摄像头叠加到屏幕] 支持摄像头按照设置坐标,叠加到屏幕指定位置,并支持实时关闭叠加层;
  •  [屏幕叠加到摄像头] 支持屏幕按照设定坐标,叠加到摄像头指定位置,并支持实时关闭叠加层;
  1. 水印和透明度遮挡
  •  [实时水印]支持动态水印设置,完美支持文字水印、实时时间水印和图片水印
  •  [透明度]可以设置透明度处理(设置遮盖);
  1. 对应Demo:
  •  测试程序:SmartPublisherDemo.exe;
  •  C++工程:WIN-PublisherSDK-CPP-Demo;
  •  C#工程:WIN-PublisherSDK-CSharp-Demo。

大牛直播互动SDK

目前,大牛直播SDK支持Windows/android一对一互动。

其中,windows需要在推送端,开启回音消除功能,移动端,参考 SmartEchoCancellationV2 工程。

互动SDK
功能 功能描述
标准功能 支持推送端常规功能
支持播放端常规功能
回音消除 支持回音消除
降噪 支持环境音、手机干扰等引起的噪音降噪处理、自动增益、VAD检测

大牛直播SEI扩展数据发送/接收SDK

大牛直播SDK支持推送端通过H.264 SEI信息扩展,实时传输文本/二进制数据信息,播放端做相应解析和回显。

适用场景:

1、公告广播:推送将相对/绝对时间戳/时间/公告内容发到播放端,播放端实时接收消息并做相应的逻辑处理。

2、冲顶大会:推流端实时将题目分发到播放端,借助于大牛直播SDK低延迟特性,轻松实现“音-画-题”同步接收;

3、会议教育类直播:推流端将字幕等分发到播放端,播放端实时绘制出相关内容;

4、应急指挥/单兵:推送端将GIS信息/现场采集到的数据实时写入并分发到播放端;

5、在线教育:推流端将激光笔涂鸦操作分发到播放端,播放端实时划圈划线,实现特定特效。

相关博客:

 

 

大牛直播连麦SDK

大牛直播连麦SDK,系一对一互动SDK的扩展,关于一对一互动SDK说明,可点我查看

连麦SDK,目前覆盖Windows平台,如一对一互动SDK提及,基于官方现有RTMP、RTSP推送、或内置RTSP服务、播放SDK,产品稳定度高,行业内首屈一指的超低延迟特性,采用通用的RTMP服务器,如nginx、SRS,更有利于私有部署。

连麦SDK特别适用于教育培训、指挥系统等场景,连麦后的流数据,以RTMP流形式出去,并支持连麦流数据双屏录制、快照等操作。

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

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”,点击开始播放。

iOS端

  1. 打开SmartiOSEchoCancellation工程
  2. [推送]根据需求,选择合适的分辨率和帧率,输入推送地址,如”rtmp://player.daniulive.com:1935/hls/streamios”,点击开始推送;
  3. [播放]输入Windows推送的原始rtmp推送地址,如此次设置,输入 “rtmp://player.daniulive.com:1935/hls/streamorg”,点击开始播放。

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

大牛直播导播SDK

适用场景:

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

技术优势:

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

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

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

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

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

6. 支持导播过程中,随时切断某一路音视频或音频;

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

数据源:

1. rtmp/rtsp音视频流;

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

3.本地flv文件。

输出:

1. 多路流合成一路流后,推送到RTMP服务器;

2. 多路合成后的流,支持本地录像、快照。

支持平台:Windows

对应Demo:

SmartStreamRelayDemo.exe、SmartMixStreamDemo.exe

相关博客:

轻量级RTSP服务SDK

模块定位

大牛直播SDK(SmartMediaKit)轻量级 RTSP 服务 SDK,是推送端 SDK 内置的 RTSP 服务模块。开发者无需单独部署 RTSP/RTMP 服务器,即可将本地采集的音视频数据,如摄像头、麦克风、屏幕采集、外部编码数据等,编码后接入内置 RTSP 服务,并对外生成可直接拉流访问的 RTSP URL。

该模块专为内网低并发、低延迟实时分发场景设计,适用于安防监控、智慧教室、无纸化会议、工业生产、医疗健康、智能物联网等局域网音视频应用。

在典型内网环境下,轻量级 RTSP 服务可实现 100~200ms 量级的端到端低延迟表现,在保证高稳定性和低 CPU 占用的前提下,帮助开发者快速构建无需独立流媒体服务器的本地实时音视频服务能力。

技术架构

大牛直播SDK轻量级 RTSP 服务采用“本地采集 / 外部输入 + 编码处理 + 内置 RTSP 服务 + 局域网拉流访问”的架构设计。

业务侧可通过推送端 SDK 完成音视频采集、编码和参数配置;RTSP 服务模块作为独立能力挂载在推送端内部,将编码后的 H.264/H.265 视频和 AAC 音频接入服务实例,并生成 RTSP URL 供局域网内客户端直接拉流播放。

该架构的核心价值在于:服务能力内置在 SDK 中,开发者无需额外搭建流媒体服务器,即可在终端侧、工控机、移动设备或嵌入式设备上快速输出 RTSP 服务。

平台覆盖

功能说明

基础能力

继承大牛直播SDK推送端的常规能力,包括音视频采集、软硬编码、码率参数配置、帧率控制、分辨率设置、事件回调等。轻量级 RTSP 服务作为独立增强模块提供,不影响原有 RTMP 推送、录像、快照等功能。

音视频格式

音频支持 AAC。

视频支持 H.264、H.265,可满足不同清晰度、码率和带宽环境下的实时传输需求。

协议与传输模式

协议类型支持 RTSP。

传输模式支持单播(Unicast)和组播(Multicast)。单播适合点对点访问,组播适合局域网内一对多分发场景。

服务端口设置

支持自定义 RTSP 服务端口,便于适配不同网络环境、端口规划和业务系统集成需求。

RTSP 鉴权

支持 RTSP 鉴权机制,可配置用户名和密码,避免未授权客户端访问本地音视频流。

会话连接数查询

支持实时获取当前 RTSP 服务的会话连接数,便于上层业务监控服务负载、连接状态和访问情况。

多服务实例

支持同时创建多个独立的内置 RTSP 服务实例,可面向不同数据源、不同端口或不同业务通道分别提供服务。

RTSP URL 回调

RTSP 服务启动后,可通过 Event 回调将可用 RTSP URL 通知上层应用,便于业务侧展示、复制、扫码访问或下发给其他客户端。

技术优势

零服务器依赖,极简部署

传统方案需独立部署并维护 RTSP 或 RTMP 服务器,涉及服务器配置、网络映射、运维管理等一系列工作。轻量级 RTSP 服务 SDK 将服务能力内置于推送端,开发者集成 SDK 即可完成部署,无需任何服务器知识,无需额外硬件投入,显著降低使用门槛和运营成本。

超低延迟,内网实时传输

针对内网环境深度优化,端到端延迟实测稳定在 100~200 毫秒,充分满足智慧教室同屏、无纸化会议、安防实时查看等对时效性敏感的场景需求。

高效编码,带宽友好

支持 H.264 / H.265 编码格式,压缩效率高,在保证画质的同时有效降低带宽占用,即使在低带宽内网环境下也能保障流畅传输

轻量化设计,资源占用极低

SDK 体量轻巧,运行时资源占用少,不会对终端设备造成额外性能负担,适合在各类嵌入式设备、移动终端或性能受限的工控机上稳定运行。

安全可控,多模式灵活适配

支持 RTSP 鉴权机制,有效防止未授权访问;同时支持单播和组播两种传输模式——单播适合点对点精准推送,组播适合一对多高效广播,可按实际场景灵活选用。

多实例并行,服务管理完善

支持同时创建多个 RTSP 服务实例,可面向不同终端或数据源独立提供服务;配合实时会话连接数查询接口,方便开发者对服务状态进行监控与管理。

对应Demo

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

技术对接文档

以Windows平台为例

1. 在选择好需要推送出去的音视频数据类型、调整好码率后(以采集Windows桌面为例,设置好采集帧率,看是否用硬编码,码率如果不想自己配置的话,可以点击按钮“获取视频码率默认值”,如需采集麦克风或扬声器,选择即可),点击“配置查看RTSP服务”,如果需要采集摄像头,选择“采集摄像头”,并选择相应的分辨率和帧率,如果需要采集窗口,选择后,记得设置采集帧率(帧)

2. 根据需求,可以启动一路或者多路服务,每路服务,并可配置用户名密码信息(可选)。启动服务后,点击“确定”退出设置页面;

3. 配置流名称(可自定义),默认是 stream1;

4. 发布RTSP流:

5. 发布后,播放地址列表里面,会显示当前发布的url,拷贝其中一个或多个,用大牛直播直播播放器SDK,分别播放即可;

6.服务器负载查看:再次点击“配置查看RTSP服务”,即可看到每个服务连接的会话数:

7. 如需停止服务,点击页面的“停止RTSP流”即可;

8. 如需启动RTSP服务的同时,还需要把数据推到其他RTMP服务,输入推送的RTMP url,点击“推送”即可。

视频展示

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

Android平台启动轻量级RTSP服务和推送RTMP,Windows平台分别拉取RTSP流和RTMP流播放,毫秒级延迟体验:

相关博客:

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

大牛直播SDK(SmartMediaKit)在 Windows、Android、iOS 原生播放 SDK 的基础上,进一步支持 Unity3D 平台二次封装,覆盖 Unity3D 在 Windows、Linux、Android、iOS 等平台下的 RTMP、RTSP 直播播放场景,延迟低至100~200ms。

作为业内少数真正面向 Unity3D 实时音视频场景深度适配的直播播放器 SDK,大牛直播SDK Unity3D 播放方案具备高稳定性、超低延迟、多实例播放、软硬解码、RTSP/RTMP 协议支持、事件回调、快照、镜像、旋转、低延迟模式、断网重连等完整能力,适合智慧教室、数字孪生、工业仿真、无人机巡检、远程监控、VR/全景实时视频展示等对实时性和稳定性要求较高的应用场景。

除 Unity3D 播放端能力外,大牛直播SDK在 Windows、Android 平台的 RTMP 推送端,也支持 Unity3D 基础对接,开发者可结合实际业务需求,构建从 Unity3D 实时采集、推送到跨平台低延迟播放的完整音视频链路。

Unity3D播放端实现流程

大牛直播SDK Unity3D 播放方案采用“Native 解码 + Unity 纹理渲染”的集成思路,在保证底层播放能力稳定成熟的同时,兼顾 Unity3D 场景下的渲染灵活性。

典型实现流程如下:

  1. Native 层 RTMP/RTSP 直播播放 SDK 完成拉流、解封装、解码,并回调 RGB、YUV420、NV12 等未压缩视频图像数据;
  2. Unity3D 侧根据回调的视频格式创建对应的 RGB、YUV420 或 NV12 Shader;
  3. Unity3D 从各平台 Native 层获取图像数据,填充纹理并完成实时渲染;
  4. 开发者可结合 Unity3D 场景能力,实现多路视频墙、3D 场景贴图、全景球面渲染、VR/AR 画面融合、数字孪生视频接入等扩展应用。

核心功能

协议与播放能力

支持高稳定、超低延迟 RTMP、RTSP 直播播放,具备毫秒级低延迟播放能力,是业内少数在 Unity3D 场景下仍能保持高实时性和稳定性的直播播放器方案。

支持 RTMP、RTSP 直播流播放,适用于公网直播、局域网摄像头、NVR、无人机、编码器、工业相机、车载设备等实时视频接入场景。

多平台 Unity3D 支持

支持 Unity3D 在 Windows、Linux、Android、iOS 平台下进行二次封装和集成,便于开发者在统一 Unity 工程中构建跨平台实时视频应用。

多实例播放

支持多实例播放,可在 Unity3D 中实现多路 RTSP/RTMP 流同时播放,适合多画面监控、视频墙、智慧教室、多设备巡检、工业可视化大屏等场景。

事件回调

支持网络状态、连接状态、缓冲状态、播放状态、分辨率变化、下载速度等事件回调,方便上层业务进行状态展示、异常处理和自动重连控制。

视频格式支持

支持 H.264 视频格式,支持 RTMP 扩展 H.265 视频流播放,满足高清视频、低码率传输和新一代编码格式接入需求。

音频格式支持

支持 AAC、PCMA、PCMU、Speex(RTMP) 音频格式,适配摄像头、编码器、会议终端、语音广播等多种实时音频场景。

H.264/H.265软解码

支持 H.264、H.265 软解码,便于在复杂平台环境下获得更好的兼容性和可控性。

H.264/H.265

硬解码

Windows、Android、iOS 平台支持 H.264/H.265 特定机型硬解码,可在移动端降低 CPU 占用,提高播放性能和续航表现。

RTSP传输模式设置

支持 RTSP TCP、UDP 模式设置,开发者可根据网络环境、设备类型和实时性要求灵活选择传输方式。

RTSP TCP/UDP自动切换

支持 RTSP TCP、UDP 模式自动切换,在复杂网络环境下提升播放成功率和连接稳定性。

RTSP超时设置

支持 RTSP 超时时间设置,单位为秒,方便业务侧根据网络环境调整连接等待策略。

RTSP 401认证处理

支持 RTSP 401 认证事件上报。如播放 URL 中携带鉴权信息,SDK 可自动完成认证处理,便于对接带用户名、密码的摄像头或平台流地址。

缓冲时间设置

支持 buffer time 设置,可根据业务需求在低延迟和播放平滑度之间进行灵活平衡。

首屏秒开

支持首屏秒开模式,优化首帧显示速度,适用于监控预览、快速切流、多路视频轮巡等场景。

低延迟模式

支持超低延迟播放模式,可显著降低端到端播放延迟,适合远程操控、无人机巡检、工业视觉、实时指挥等强实时场景。

复杂网络处理

支持断网重连、网络波动适配等机制,可在弱网、抖动、临时断链等复杂环境下提升播放连续性和稳定性。

快速切换URL

支持播放过程中快速切换其他 URL,适合多通道轮巡、设备切换、监控点位切换和业务场景快速切换。

实时静音

支持播放过程中实时静音和取消静音,便于 Unity3D 应用根据业务状态灵活控制音频播放。

实时快照

支持播放过程中截取当前播放画面,可用于巡检留痕、异常抓拍、课堂记录、远程取证等场景。

渲染角度设置

支持 0°、90°、180°、270° 四种视频画面渲染角度设置,便于适配不同摄像头安装方向和终端显示方向。

渲染镜像设置

支持水平反转、垂直反转模式设置,适用于前置摄像头、镜像预览、特殊安装角度摄像头等场景。

实时下载速度回调

支持当前下载速度实时回调,并支持设置回调时间间隔,方便上层进行网络状态展示和播放质量监测。

音视频自适应

支持播放过程中音视频信息变化后的自适应处理,如分辨率变化、音视频参数变化等,提升复杂流媒体场景下的兼容性。

扩展录像能力

支持与大牛直播SDK录像 SDK 组合使用,可实现 RTMP/RTSP 播放过程中的本地录像能力。支持 RTMP 扩展 H.265 流录制,支持 PCMA、PCMU、Speex 转 AAC 后录制,并支持只录制音频或只录制视频。

录像相关能力可参见:Windows/Linux/Android/iOS 录像 SDK。

典型应用场景

相关资料:

大牛直播SDK(SmartMediaKit)Windows 平台 Unity3D RTSP/RTMP 直播播放 SDK 集成说明

大牛直播SDK(SmartMediaKit)Android平台Unity3D RTSP/RTMP播放器集成实践

视沃科技-大牛直播SDK(V2)Unity3D调用说明1.7

Unity3d RTSP/RTMP直播播放端SDK视频演示

Unity3d Linux平台直播播放视频演示(以Windows平台RTMP直播推送SDK采集秒表计时器推送到RTMP服务器,Unity发布的Linux平台RTSP|RTSP播放demo拉流为例):

 

相关博客:

 

[iOS]大牛直播SDK基于unity3d平台的rtmp/rtsp直播播放端SDK接口说明

2.1 demo说明

  • SmartU3diOSPlayer: 大牛直播SDK Unity3D iOS RTMP/RTSP直播播放端工程。

2.2 功能说明

标准接口:

  • 音频:AAC/PCMA/PCMU/SPEEX(RTMP);
  • 视频:H.264/H.265(RTSP);
  • 播放协议:RTMP/RTSP;
  • 支持RTSP TCP/UDP模式切换;
  • 支持RTSP timeout设置;
  • 支持RTSP TCP/UDP模式自动切换;
  • 支持纯音频、纯视频、音视频播放;
  • 支持秒开模式;
  • 音视频多种render机制;
  • 支持buffer设置;
  • 真正靠谱的超低延迟;
  • 支持多实例播放;
  • 支持播放url快速切换;
  • 断网自动重连,支持视频追赶;
  • 支持视频video实时旋转、水平反转、垂直反转。

增值接口:

  • 同时支持rtsp、rtmp播放;
  • 播放过程中,实时静音、取消静音;
  • 播放端回调YUV,供unity3d调用完成绘制;
  • 实时快照;
  • 实时录像。

2.3 集成说明

拷贝以下文件,到Assets–>Plugins–>iOS目录:

相关头文件和调用说明,参见:SmartPlayeriOSMono.cs

Unity3D工程下,File–>Build Settings,Platform选择iOS,然后点击build,设置目录,生成xcode工程:

生成后的xcode工程,添加以下依赖库:

  • 相关库:libSmartPlayerSDK.a
  • 引入以下依赖framework
    • libz.tbd
    • libbz2.tbd
    • libiconv.tbd
    • libstdc++.tbd
    • libc++.tbd
    • Accelerate.framework
    • AssetsLibrary.framework
    • AudioToolBox.framework
    • AVFoundation.framework
    • CoreMedia.framework
    • Foundation.framework
    • GLKit.framework
    • OpenGLES.framework
    • UIKit.framework
    • VideoToolBox.framework
  • 如需集成到自己系统测试,请用大牛直播的app name:

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

添加或者编辑

<key>CFBundleName</key>

<string>SmartiOSPlayer</string>

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

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

添加

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

  • 导出后的xcode工程,如编译不过,参考以下设置: Library Search Paths:$(SRCROOT)/Libraries

2.4 调用时序(V2)

  1. 【最先调用】NT_U3D_Init:player初始化,目前预留;
  2. 【获得player句柄】NT_U3D_Open,设置上下文信息,返回player句柄;
  3. 【设置GameObject】NT_U3D_Set_Game_Object,注册Game Object,用于消息传递;
  4. 【设置硬解码】NT_U3D_SetVideoDecoderMode,设置是否用硬解码播放,如硬解码不支持,自动适配到软解码;
  5. 【缓冲设置】NT_U3D_SetBuffer,设置播放端缓存数据buffer,以毫秒(ms)为单位,如超低延迟模式下,不需buffer数据,设置为0;
  6. 【RTSP TCP/UDP设置】NT_U3D_SetRTSPTcpMode,设置TCP/UDP播放模式,注意:此接口仅用于RTSP;
  7. 【实时静音-可实时调用】NT_U3D_SetMute,设置播放过程中,实时静音/取消静音;
  8. 【快速启动】NT_U3D_SetFastStartup,Set fast startup(快速启动),设置快速启动后,如果CDN缓存GOP,daniulive player可快速出帧;
  9. 【低延迟模式】NT_U3D_SetPlayerLowLatencyMode,针对类似于直播娃娃机等期待超低延迟的使用场景,超低延迟播放模式下,延迟甚至可达到200~400ms;
  10. 【视频显示角度设置-可实时调用】NT_U3D_SetRotation,针对类似于安防摄像头或其他设备出来的图像倒置现象,支持视频播放view顺时针旋转, 当前支持 0度,90度, 180度, 270度 旋转,注意除了0度之外, 其他角度都会额外消耗性能;
  11. 【下载速度回调设置】NT_U3D_SetReportDownloadSpeed,设置下载速度上报, 默认不上报下载速度;
  12. 【快照设置】NT_U3D_SetSaveImageFlag(),设置是否需要在播放或录像过程中快照;
  13. 【快照-录像或播放后,可随时调用】NT_U3D_SaveCurImage,播放过程中,根据设置路径和文件名,实时快照;
  14. 【快速切换url-可实时调用】NT_U3D_SwitchPlaybackUrl,快速切换播放url,快速切换时,只换播放source部分,适用于不同数据流之间,快速切换(如娃娃机双摄像头切换或高低分辨率流切换);
  15. 【录像设置】NT_U3D_CreateFileDirectory,创建文件路径,注意:iOS只提供接口,未提供具体实现;
  16. 【录像设置】NT_U3D_SetRecorderDirectory,设置文件路径;
  17. 【录像设置】NT_U3D_SetRecorderFileMaxSize,设置每个录像文件最大size,以兆(M)为单位,范围(5M~500M);
  18. 【设置播放或录像URL】NT_U3D_SetUrl,设置播放/录像url;
  19. 【播放】NT_U3D_StartPlay,开始播放;
  20. 【播放】NT_U3D_GetVideoFrame,获取底层回调的YUV数据;
  21. 【播放】NT_U3D_StopPlay,停止播放;
  22. 【录像】NT_U3D_StartRecorder,开始录像;
  23. 【录像】NT_U3D_StopRecorder,停止录像;
  24. 【关闭】NT_U3D_Close, 关闭播放器实例;
  25. 【最后调用】NT_U3D_UnInit,UnInit Player,最后调用。

2.5 Event回调

/// <summary>

/// android 传递过来 code

/// </summary>

/// <param name=”code”></param>

public void onNTSmartEvent(string param)

{

if (!param.Contains(“,”))

{

Debug.Log(“[onNTSmartEvent] android传递参数错误”);

return;

}

string[] strs = param.Split(‘,’);

string player_handle =strs[0];

string code = strs[1];

string param1 = strs[2];

string param2 = strs[3];

string param3 = strs[4];

string param4 = strs[5];

Debug.Log(“[onNTSmartEvent] code: 0x” + Convert.ToString(Convert.ToInt32(code), 16));

switch (Convert.ToInt32(code))

{

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_STARTED:

Debug.Log(“开始。。”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_CONNECTING:

Debug.Log(“连接中。。”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_CONNECTION_FAILED:

Debug.Log(“连接失败。。”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_CONNECTED:

Debug.Log(“连接成功。。”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_DISCONNECTED:

Debug.Log(“连接断开。。”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_STOP:

Debug.Log(“停止播放。。”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_RESOLUTION_INFO:

Debug.Log(“分辨率信息: width: ” + Convert.ToInt32(param1) + “, height: ” + Convert.ToInt32(param2));

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_NO_MEDIADATA_RECEIVED:

Debug.Log(“收不到媒体数据,可能是url错误。。”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_SWITCH_URL:

Debug.Log(“切换播放URL。。”);

break;

 

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_CAPTURE_IMAGE:

Debug.Log(“快照: ” + param1 + ” 路径:” + param3);

 

if (Convert.ToInt32(param1) == 0)

{

Debug.Log(“截取快照成功。.”);

}

else

{

Debug.Log(“截取快照失败。.”);

}

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_RECORDER_START_NEW_FILE:

Debug.Log(“[record]开始一个新的录像文件 : ” + param3);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_ONE_RECORDER_FILE_FINISHED:

Debug.Log(“[record]已生成一个录像文件 : ” + param3);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_START_BUFFERING:

Debug.Log(“Start_Buffering”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_BUFFERING:

Debug.Log(“Buffering: ” + Convert.ToInt32(param1));

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_STOP_BUFFERING:

Debug.Log(“Stop_Buffering”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_DOWNLOAD_SPEED:

Debug.Log(“download_speed:” + param1 + “Byte/s” + “, ”

+ (Convert.ToInt32(param1) * 8 / 1000) + “kbps” + “, ” + (Convert.ToInt32(param1) / 1024)

+ “KB/s”);

break;

}

}

更多资料,可以访问 https://github.com/daniulive/SmarterStreaming or http://www.daniulive.com/

[Android]大牛直播SDK基于unity3d平台的rtmp/rtsp直播播放端SDK接口说明

1.1 demo说明

  • SmartU3dAndroidPlayer: 大牛直播SDK Unity3D Android RTMP/RTSP直播播放端工程。

1.2 功能说明

标准接口:

  • 音频:AAC/G.711/speex;
  • 视频:264;
  • 播放协议:RTMP/RTSP;
  • 支持RTSP TCP/UDP模式切换;
  • 支持纯音频、纯视频、音视频播放;
  • 支持秒开模式;
  • 音视频多种render机制;
  • 支持buffer设置;
  • 真正靠谱的超低延迟;
  • 支持多实例播放;
  • 支持播放url快速切换;
  • 断网自动重连,支持视频追赶;
  • 支持视频video实时旋转。

增值接口:

  • 同时支持rtsp、rtmp播放;
  • 播放过程中,实时静音、取消静音;
  • 播放端回调YUV,供unity3d调用完成绘制;
  • 实时快照;
  • 实时录像。

1.3集成说明

  • Unity3D接口和调用demo,参见:SmartPlayerAndroidMono.cs
  • SmartU3dAndroidPlayer\Assets\Plugins\Android\libs下相关库到工程:
  • Smartavengine.jar加入到工程;
  • smartplayerunity3d.jar加入工程;
  • libs\arm64-v8a 和 SmartPlayer\libs\armeabi 下 libSmartPlayer.so。
  • 在SmartU3dAndroidPlayer\Assets\Plugins\Android\AndroidManifest.xml配置相关权限:

<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” > </uses-permission>

<uses-permission android:name=”android.permission.INTERNET” ></uses-permission>

<uses-permission android:name=”android.permission.MOUNT_UNMOUNT_FILESYSTEMS” />

<uses-permission android:name=”android.permission.MODIFY_AUDIO_SETTINGS” />

  • 如需集成到自己系统测试,请用大牛直播SDK的app name(不然集成提示license failed),正式授权版按照授权app name正常使用即可:
  • 如何改app-name:
  • Unity3D模式下:File–>Build Settings–>Android–>Player Settings,设置Product Name。

1.4 调用时序(V2)

  1. 【最先调用】NT_U3D_Init:player初始化,目前预留;
  2. 【获得player句柄】NT_U3D_Open,设置上下文信息,返回player句柄;
  3. 【设置GameObject】NT_U3D_Set_Game_Object,注册Game Object,用于消息传递;
  4. 【设置硬解码】NT_U3D_SetVideoDecoderMode,设置是否用硬解码播放,如硬解码不支持,自动适配到软解码;
  5. 【audio输出类型】NT_U3D_SetAudioOutputType(),如果use_audiotrack设置为0,将会自动选择输出设备,如果设置为1,使用audiotrack模式;
  6. 【缓冲设置】NT_U3D_SetBuffer,设置播放端缓存数据buffer,以毫秒(ms)为单位,如超低延迟模式下,不需buffer数据,设置为0;
  7. 【RTSP TCP/UDP设置】NT_U3D_SetRTSPTcpMode,设置TCP/UDP播放模式,注意:此接口仅用于RTSP;
  8. 【实时静音-可实时调用】NT_U3D_SetMute,设置播放过程中,实时静音/取消静音;
  9. 【快速启动】NT_U3D_SetFastStartup,Set fast startup(快速启动),设置快速启动后,如果CDN缓存GOP,daniulive player可快速出帧;
  10. 【低延迟模式】NT_U3D_SetPlayerLowLatencyMode,针对类似于直播娃娃机等期待超低延迟的使用场景,超低延迟播放模式下,延迟甚至可达到200~400ms;
  11. 【视频显示角度设置-可实时调用】NT_U3D_SetRotation,针对类似于安防摄像头或其他设备出来的图像倒置现象,支持视频播放view顺时针旋转, 当前支持 0度,90度, 180度, 270度 旋转,注意除了0度之外, 其他角度都会额外消耗性能;
  12. 【下载速度回调设置】NT_U3D_SetReportDownloadSpeed,设置下载速度上报, 默认不上报下载速度;
  13. 【快照设置】NT_U3D_SetSaveImageFlag(),设置是否需要在播放或录像过程中快照;
  14. 【快照-录像或播放后,可随时调用】NT_U3D_SaveCurImage,播放过程中,根据设置路径和文件名,实时快照;
  15. 【快速切换url-可实时调用】NT_U3D_SwitchPlaybackUrl,快速切换播放url,快速切换时,只换播放source部分,适用于不同数据流之间,快速切换(如娃娃机双摄像头切换或高低分辨率流切换);
  16. 【录像设置】NT_U3D_CreateFileDirectory,创建文件路径;
  17. 【录像设置】NT_U3D_SetRecorderDirectory,设置文件路径;
  18. 【录像设置】NT_U3D_SetRecorderFileMaxSize,设置每个录像文件最大size,以兆(M)为单位,范围(5M~500M);
  19. 【设置播放或录像URL】NT_U3D_SetUrl,设置播放/录像url;
  20. 【播放】NT_U3D_StartPlay,开始播放;
  21. 【播放】NT_U3D_GetVideoFrame,获取底层回调的YUV数据;
  22. 【播放】NT_U3D_StopPlay,停止播放;
  23. 【录像】NT_U3D_StartRecorder,开始录像;
  24. 【录像】NT_U3D_StopRecorder,停止录像;
  25. 【关闭】NT_U3D_Close, 关闭播放器实例;
  26. 【最后调用】NT_U3D_UnInit,UnInit Player,最后调用。

1.5 Event回调

/// <summary>

/// android 传递过来 code

/// </summary>

/// <param name=”code”></param>

public void onNTSmartEvent(string param)

{

if (!param.Contains(“,”))

{

Debug.Log(“[onNTSmartEvent] android传递参数错误”);

return;

}

string[] strs = param.Split(‘,’);

string player_handle =strs[0];

string code = strs[1];

string param1 = strs[2];

string param2 = strs[3];

string param3 = strs[4];

string param4 = strs[5];

Debug.Log(“[onNTSmartEvent] code: 0x” + Convert.ToString(Convert.ToInt32(code), 16));

switch (Convert.ToInt32(code))

{

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_STARTED:

Debug.Log(“开始。。”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_CONNECTING:

Debug.Log(“连接中。。”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_CONNECTION_FAILED:

Debug.Log(“连接失败。。”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_CONNECTED:

Debug.Log(“连接成功。。”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_DISCONNECTED:

Debug.Log(“连接断开。。”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_STOP:

Debug.Log(“停止播放。。”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_RESOLUTION_INFO:

Debug.Log(“分辨率信息: width: ” + Convert.ToInt32(param1) + “, height: ” + Convert.ToInt32(param2));

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_NO_MEDIADATA_RECEIVED:

Debug.Log(“收不到媒体数据,可能是url错误。。”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_SWITCH_URL:

Debug.Log(“切换播放URL。。”);

break;

 

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_CAPTURE_IMAGE:

Debug.Log(“快照: ” + param1 + ” 路径:” + param3);

 

if (Convert.ToInt32(param1) == 0)

{

Debug.Log(“截取快照成功。.”);

}

else

{

Debug.Log(“截取快照失败。.”);

}

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_RECORDER_START_NEW_FILE:

Debug.Log(“[record]开始一个新的录像文件 : ” + param3);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_ONE_RECORDER_FILE_FINISHED:

Debug.Log(“[record]已生成一个录像文件 : ” + param3);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_START_BUFFERING:

Debug.Log(“Start_Buffering”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_BUFFERING:

Debug.Log(“Buffering: ” + Convert.ToInt32(param1));

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_STOP_BUFFERING:

Debug.Log(“Stop_Buffering”);

break;

case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_DOWNLOAD_SPEED:

Debug.Log(“download_speed:” + param1 + “Byte/s” + “, ”

+ (Convert.ToInt32(param1) * 8 / 1000) + “kbps” + “, ” + (Convert.ToInt32(param1) / 1024)

+ “KB/s”);

break;

}

}

经测试,Android、iOS端效果如下,播放端延迟低于1秒,也可能是unity3d平台下最快最稳定的rtmp播放器/rtsp播放器:

视频效果图:

更多资料,可以访问 https://github.com/daniulive/SmarterStreaming or http://www.daniulive.com/

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

大牛直播播放器SDK相对推送SDK来说,接口没有那么多,不过客户95%以上的常规需求均已覆盖,目前支持RTMP和RTSP直播播放(涵盖H.265),还有本地flv文件回放。

大牛直播SDK播放端提供C++/C#两套接口,并支持IE浏览器OCX控件调用,对外提供32/64位debug/release库。

对应Demo:

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

如何使用

RTMP/RTSP/本地FLV播放

根据提示,在RTMP/RTSP URL或FLV文件处,输入需要播放的url,如“rtmp://live.hkstv.hk.lxdns.com/live/hks1”;

设置缓冲(buffer time)

播放RTMP/RTSP流之前,可以设置缓冲时间(单位:毫秒),SDK支持0~10000ms区间设置;

RTMP秒开

如果给出的rtmp url服务器缓存GOP,选中秒开模式,大牛直播SDK可以快速播放rtmp,实现秒开效果;

RTSP相关设置

点击页面“Rtsp设置”按钮,可以设置RTSP timeout时间、默认TCP还是UDP模式、是否TCP-UDP模式自动切换。

RTMP解密播放

SetUrl之前,设置解密的Key和IV解密向量即可。

FLV本地文件播放

根据提示,在RTMP/RTSP URL或FLV文件处,输入整体的flv文件全路径,如“E:\daniulivetestflv.flv”,SDK会获取到FLV文件的时长(Duration)和当前播放位置。

FLV文件seek

在“设置位置(秒)”处输入需要跳转的秒数,设置后,可直接跳转到指定位置,并从flv制定位置开始播放;

FLV文件暂停

点击“暂停”按钮,即可暂停播放本地flv文件,如需回复播放,点击“恢复”按钮即可;

RTMP/RTSP/FLV文件播放实时静音

播放过程中,可选择实时静音/取消静音;

RTMP/RTSP/FLV文件播放实时快照

点击“设置截图路径”,播放过程中,点击“截图”按钮,即可完成快照保存;

RTMP/RTSP/FLV文件实时录像

点击“录像配置”,设置录像路径,播放或非播放状态下,点击“录像”,可拉取rtmp或rtsp流录制本地文件,如需截取flv文件一部分,亦可通过开始录像/停止录像重新录制mp4文件。

RTMP/RTSP/FLV文件切换地址

在url输入框输入新的播放地址,点击“切换地址”按钮,SDK快速跳转到指定地址,此功能如android/iOS播放端,用于快速切换URL,适用于多路URL轮询;

RTMP/RTSP/FLV文件播放过程中旋转view

不是所有的url播放角度都朝观众预期的方向,如需view旋转,用户可点击旋转按钮,我们的SDK将会对view进行 0° 90° 180° 270°旋转、除此之外,还可以进行水平反转、垂直反转;

播放过程中全屏

Windows C++ Demo双击播放画面或点击“全屏”按钮,进入全屏模式,再次双击,退出全屏。

IE浏览器OCX控件调用说明

点我查看OCX控件使用说明和SDK集成文档

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

由于大牛直播SDK Demo主要侧重于SDK接口展示,不必说自研,哪怕demo使用,庞大的功能让好多开发者望而却步,以下是Windows推送端SDK简单的介绍:

大牛直播SDK推送端提供C++/C#两套接口,对外提供32/64位debug/release库。

对应Demo:

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

使用说明:

1视频采集设置

说明:

1. 屏幕和摄像头相互切换:用于在线教育或者无纸化等场景,推送或录像过程中,随时切换屏幕或摄像头数据(切换数据源),如需实时切换,点击页面“切换到摄像头”按钮即可;

2. 设置遮盖层,用于设定一个长方形或正方形区域(可自指定区域大小),遮盖不想给用户展示的部分;

3. 水印:添加PNG水印,支持推送或录像过程中,随时添加、取消水印;

4. 摄像头叠加到屏幕:意在用于同屏过程中,主讲人摄像头悬浮于屏幕之上(可指定叠加坐标),实现双画面展示,推送或录像过程中,可以随时取消摄像头叠加;

5. 屏幕叠加到摄像头:同4,效果展示,实际根据需求实现;

6. 采集桌面:可以通过点击“选择屏幕区域”获取采集区域,并可在采集过程中,随时切换区域位置,如不设定,默认全屏采集;

7. 使用DXGI采集屏幕,采集时停用Aero;

8. 采集窗口:可设定需要采集的窗口,窗口放大或缩小,推送端会自适应码率和分辨率;

9. 采集帧率(帧/秒):默认屏幕采集5帧,可根据实际场景需求设定到10-25帧;

10. 缩放屏幕大小缩放比:用于高清或超高清屏,通过设定一定的比例因子,缩放屏幕采集分辨率;

11. 采集摄像头:可选择需要采集的摄像头、采集分辨率、帧率、是否需要水平或者垂直反转、是否需要旋转;

追加提问:

问题[确认数据源]:采集桌面还是摄像头?如果桌面,全屏还是部分区域?

回答:

  • 如果是摄像头:可以选择摄像头列表,然后分辨率、帧率。
  • 如果是屏幕:默认帧率是5帧,可以根据实际场景调整,选取屏幕区域,可以实时拉取选择需要采集或录像区域;
  • 如果是叠加模式:可选择摄像头叠加到屏幕,还是屏幕叠加到摄像头;
  • 更高需求的用户,可以设置水印或应用层遮盖。

问题:如果是摄像头,采集到的摄像头角度不对怎么办?

回答:我们支持摄像头镜像和翻转设置,摄像头可通过SDK接口轻松实现水平/垂直翻转、镜像效果。

视频码率控制

我选可变码率还是平均码率?

回答:可变码率的优势在于,如果屏幕或摄像头变化不大,码率超低,特别是H.265编码,平均码率,码率比较均匀,需设置平均码率+最大码率,一般摄像头采集建议选择可变码率,屏幕采集选择平均码率,如需采用可变码率,请取消“使用平均码率”选项。

265编码还是H.264编码?

回答:Windows 64位库支持H.265编码,如果推RTMP流,需要服务器支持RTMP H.265扩展,播放器SDK,也需要同步支持RTMP H.265扩展播放。

如果是轻量级RTSP服务SDK对接的话,只需要播放器支持RTSP H.265即可。

如果推摄像头数据,建议采用可变码率+H.265编码。

如何设置码率参数更合理?

回答:

关键帧间隔:一般来说,设置到帧率的2-4倍,比如帧率20,关键帧间隔可以设置到40-80;

平均码率:可以点击“获取视频码率默认值”,最大码率是平均码率的2倍;

视频质量:如果使用可变码率,建议采用大牛直播SDK默认推荐视频质量值;

编码速度:如高分辨率,建议1-3,值越小,编码速度越快;

H.264 Profile:默认baseline profile,可根据需要,酌情设置High profile;

NOTE:点击“推送”或“录像”或启动内置RTSP服务SDK之前,请务必设置视频码率,如不想手动设置,请点击“获取视频码率默认值”!!!

音频采集设置

问答式:采集音频吗?如果采集,采集麦克风还是扬声器的,亦或混音?

回答:

  • 如果想采集电脑输出的音频(比如音乐之类),可以选择“采集扬声器”;
  • 如果想采集麦克风音频,可以选择“采集麦克风”,并选择相关设备;
  • 如果两个都想采集,可以两个都选择,混音输出。

音频编码

问题:是AAC还是SPEEX?

回答:我们默认是AAC编码模式,如果需要码率更低,可以选择SPEEX编码模式,当然我们的AAC编码码率也不高。

音频处理

问题:我想过滤背景噪音怎么办?

回答:选中“噪音抑制”,“噪音抑制“请和“自动增益控制”组合使用,“端点检测(VAD)”可选设置

问题:我想做一对一互动怎么办?

回答:选中“回音消除”,可以和“噪音抑制”、“自动增益控制”组合使用。

问题:我推送或者录像过程中,随时静音怎么办?

回答:推送过程中,随时选择或取消选择“静音”功能。

6多路推送

问题:我想同时推送到多个url怎么办(比如一个内网服务器,一个外网服务器)?

回答:同时填写多个url,然后点推送即可。

截图(快照)

问题:我想推送或者录像过程中,截取当前图像怎么办?

回答:那就设置好截图路径,推送或录像过程中,随时点击“截图”。

录像

问题:我还想录像,怎么办?

回答:设置录像文件存放目录,文件前缀、单个文件大小,是否加日期、时间,随时录制即可。

9 实时预览

问题:我还想看看视频特别是合成后的效果,怎么办?

回答:点击页面的“预览”按钮,就可以看到。

我是外行,我想快速测试推屏怎么办?

回答:

1. 推屏幕:

2. 推摄像头:

相关资料和测试程序下载:

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

官网:https://www.daniulive.com