一、背景 为满足内网无纸化/电子教室等内网超低延迟需求,避免让用户配置单独的服务器,我们研发了轻量级RTSP服务开发包。 单播不再赘述,这里重点介绍下我们的组播技术方案: 组播解决的主要痛点是服务器部署和带宽占用问题,一般来说,内网电子教室/无纸化/实时同屏场景用RTMP推送+RTMP服务器,然后其他端从服务器拉取RTMP 通过组播技术方案,只要网络设备支持组播组网,轻松实现多并发的同屏/摄像头直播场景。 经长时间测试,毫秒级延迟,完全满足内网同屏技术指标。 教师和学生互动:学生端如需作为示范案例,屏幕数据共享给其他同学,只需请求同屏,数据反推到RTMP服务器,其他学生查看即可。 6.
智慧教室无纸化方案技术背景智慧教室无纸化方案是一种基于现代信息技术,旨在通过数字化手段实现教学过程的无纸化、智能化和高效化的解决方案。 如果需要,学生端也可以作为示范案例,将屏幕数据共享给其他同学,只需请求同屏,数据反推到RTMP服务器,其他学生即可查看。4. 智慧教室方案选型本文以大牛直播SDK的Android的SmartServicePublisherV2的同屏demo为例,Android采集计时器,编码打包分别启动RTMP推送和轻量级RTSP服务,Windows ;支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;支持RTMP推送 live|record模式设置;支持前置摄像头镜像设置;支持软编码、特定机型硬编码;支持横屏、竖屏推送;支持Android 智慧教室RTMP技术方案通过利用RTMP协议的实时性和低延迟特性,结合适当的组网、服务器部署、编码转码、横竖屏适配、补帧策略以及网络稳定性保障措施,为智慧教室场景下的实时授课、屏幕共享、互动教学等功能提供了强有力的技术支持
背景 本文主要讲的是基于Android平台实现RTMP的技术方案设计,基础架构图如下: 组网注意事项 1. 教师端:如教师有移动的PAD,可以直接推到RTMP服务器,然后共享出去; 4. 学生端:直接拉取服务端的RTMP流播放即可; 5. 教师和学生互动:学生端如需作为示范案例,屏幕数据共享给其他同学,只需请求同屏,数据反推到RTMP服务器,其他学生查看即可。 6. 横竖屏状态下,采集的屏幕宽高不一样,如果横竖屏切换,这个时候,需要考虑到横竖屏适配问题,确保比如竖屏状态下,切换到横屏时,推拉流两端可以自动适配,横竖屏自动适配,编码器需要重启,拉流端,需要能自动适配宽高变化 width, int height, int clipedLeft, int clipedTop, int clipedWidth, int clipedHeight); 文字、图片水印 好多场景下,同屏者会把公司
技术背景在写这篇文章之前,实际上几年之前,我们就有非常稳定的无纸化同屏的模块,本文借demo更新,算是做个新的总结,废话不多说,先看图,本文以Android平台屏幕实时采集推送,Windows播放为例 技术考量指标本文以大牛直播SDK前些年实现的Android同屏采集推送为例,大概介绍下一些技术考量指标。1. 轻量级RTSP服务还是RTMP? 我们在做无纸化同屏的时候,问的最多的是,能不能不要自建服务,直接主讲人或教师端,直接启动轻量级RTSP服务,其他终端拉流,如果是小并发,比如5人内的小范围的同屏,Windows平台走轻量级RTSP无可厚非 ,如果是30-60甚至100人的会议室,建议走RTMP。 总结其实一个好的无纸化同屏系统,需要考虑的有整体组网、分辨率、码率、实时延迟、音视频同步和连续性等各个指标,做容易,做好难,上述抛砖引玉,未能面面俱到,感兴趣的开发者,可以跟我单独交流。
技术背景我们在做无纸化同屏的时候,好多开发者采集到屏幕、麦克风|扬声器数据,除了需要推RTMP出去,或者启动个轻量级RTSP服务,对外提供个拉流的RTSP URL,别的终端过来拉流(小并发场景),还有个技术需求 技术实现实际上,Android同屏,需要录像的话,和采集摄像头数据录像一样,只是数据源不同而已,鉴于不管什么格式的video数据,我们都是投递到模块底层做转换编码,所以本质上没啥差别。 StopRecorder();stream_publisher_.try_release();test_and_disable_post_audio();}};post_or_execute(r);}总结Android平台无纸化同屏 ,如果需要本地录像的话,实现难度不大,只要复用之前开发的录像模块的就可以,对我们来说,同屏采集这块,只是数据源不同而已,如果是自采集的其他数据,我们一样可以编码录像。 以上是Android同屏录像设计,感兴趣的开发者,可以跟我单独沟通交流。
基于智慧教室或是会议的技术方案,一般主要是涉及到屏幕采集和推送,整体技术方案这块,一般建议走RTMP,说到这里,好人开发者提到,市面上也有RTSP的技术方案,甚至RTSP组播方案,这块,大牛直播SDK Github 也做过相关对比,总的来说60人智慧教室或类似同屏场景下,最可靠的还是RTMP的解决方案(不赘述,具体可自行测试对比)。 教师端:如教师有移动的PAD,可以直接推到RTMP服务器,然后共享出去; 4. 学生端:直接拉取RTMP流播放即可; 5. 教师和学生互动:学生端如需作为示范案例,屏幕数据共享给其他同学,只需请求同屏,数据反推到RTMP服务器,其他学生查看即可。 6. 横竖屏切换,上层无需过问,底层会自动切。
背景分析 互联网同屏直播越来越火热,我们知道很多游戏主播都采用同屏的方式给观众直播,同屏直播组件层出不穷,SkeyeLive就是OpenSKEYE视开视频云团队研发的一款简单、高效、稳定的集采集,编码 SkeyeLive同屏解决方案 从早期的简单拉rtsp、rtmp流再转推rtmp或者rtsp分发,到现在形成完善的音视频采集,到超低延迟,高并发的流媒体综合功能组件软件,SkeyeLive已经经过了5年的开发迭代历史 ; 其早期的版本采用live555和rtmp推流的方式,到现在创新性地采用可靠高效udp传输协议kcp进行流媒体传输的时代的终极同屏组件,skeyelive经过了长期的用户反馈和稳定性测试,现已形成了一套完善的同屏技术体系 8432) 即可同步拉取skeyelive服务端的流,SkeyeLive提供了Skeyeliveplayer同屏客户端SDK组件和播放器源码,通过几个非常简单的API接口即可实现同屏客户端的同屏播放。 EasyScreenLive进行简单的配置即可进入现场直播,用户可以在多终端收看网络游戏直播; * 无纸化会议同屏: 随着科技的发展,无纸化会议服务有效的实现了单位与单位、单位与合作商之间的对接,同屏服务能更好的解决客户的实际需求
背景分析互联网同屏直播越来越火热,我们知道很多游戏主播都采用同屏的方式给观众直播,同屏直播组件层出不穷,SkeyeLive就是OpenSKEYE视开视频云团队研发的一款简单、高效、稳定的集采集,编码,推流和流媒体 SkeyeLive同屏解决方案从早期的简单拉rtsp、rtmp流再转推rtmp或者rtsp分发,到现在形成完善的音视频采集,到超低延迟,高并发的流媒体综合功能组件软件,SkeyeLive已经经过了5年的开发迭代历史 ;其早期的版本采用live555和rtmp推流的方式,到现在创新性地采用可靠高效udp传输协议kcp进行流媒体传输的时代的终极同屏组件,skeyelive经过了长期的用户反馈和稳定性测试,现已形成了一套完善的同屏技术体系 8432)即可同步拉取skeyelive服务端的流,SkeyeLive提供了Skeyeliveplayer同屏客户端SDK组件和播放器源码,通过几个非常简单的API接口即可实现同屏客户端的同屏播放。 进行简单的配置即可进入现场直播,用户可以在多终端收看网络游戏直播;* 无纸化会议同屏: 随着科技的发展,无纸化会议服务有效的实现了单位与单位、单位与合作商之间的对接,同屏服务能更好的解决客户的实际需求。
✳️ 引言:让每一块屏幕“同频”的核心技术无纸化会议与智慧教室,正在从“辅助工具”走向“核心基础设施”,成为政企数字化与教育信息化建设的标配。 大牛直播SDK推出的跨平台 RTMP 推流 SDK,正是这个场景下的“底层引擎”——它像一条高速、稳定、可控的数字通道,将任意终端的画面与音频高效推送到分发节点,再由各类终端实现毫秒级同步播放,让“同屏 技术架构:跨平台 RTMP 推流 + 播放的同屏闭环针对无纸化会议与智慧教室的核心诉求,我们基于大牛直播SDK的跨平台 RTMP 推流 SDK,构建了一套**“推流端 → 分发端 → 播放端”**的完整闭环架构 关键技术细节在无纸化会议与智慧教室的场景中,低延迟、稳定性、跨平台支持是三大技术核心。 落地案例在无纸化会议与智慧教室领域,大牛直播SDK的跨平台 RTMP 推流 SDK 已在多个政企与教育项目中稳定运行,覆盖了从小型教学教室到跨省多会场的全链路部署。以下是几个具有代表性的案例:1.
EasyScreenLive是一款简单、高效、稳定的集采集,编码,组播,推流和流媒体RTSP服务于一身的同屏功能组件,在大屏显示投屏,无纸化会议同屏演示,课堂同屏等,可以配合全屏显示,在很多项目中都能够实现项目推流的需求 上一篇文中我们讲了EasyScreenLive推RTSP流到EasyDarwin(EasyScreenLive推流组件推RTSP流到EasyDarwin),本文以EasyDSS为主,带着大家演示一遍看下推RTMP 1、推RTMP流到EasyDSS DEMO示例中选择屏幕采集,然后Capture,接着添加EasyDSS的信息,RTMPush IP为部署EasyDSS服务的IP地址,本案例中,直接用的青犀团队在线演示的地址
几年来,我们在做无纸化同屏或在线教育相关场景的时候,总是被一件事情困扰:如何实现Android平台的系统内录,并推送到其他播放端,常用的场景比如做无纸化会议或教育的时候,主讲人或老师需要放一个视频, 这里我们分析三种可行的技术方案:方案1:解析视频文件推送Android终端的话,先利用MediaExtractor,把mp4文件的音视频数据分离,然后调用我们publisher模块,实现编码后的数据对接到RTMP 一般来说,做无纸化会议或教育同屏的公司,如果硬件是厂商定制的,可以跟厂商提出来,修改ROM,得到内录audio权限和数据。为此,我们专门设计了个接口,便于有这个权限的厂商使用。 我们考虑到,在做无纸化同屏或者教育投屏的时候,一般来说,主要还是采集麦克风音频为主,中间如果有视频播放或者类似需求的时候,我们把内录audio的打开即可(也可以做混音模式,或者推送过程中,实时静音麦克风或扬声器数据源 推送端或者轻量级RTSP服务测,采集到屏幕画面和扬声器声音,打包传输,RTMP或RTSP播放端录制下来的同屏画面视频如下:视频内容总结低版本的Android系统,方案1应该是相对可行但局限很大的选择,方案
可以将桌面、摄像头、程序窗口通过rtmp推送到流媒体服务器上。 推流SDK,跨平台,支持Windows、Android、iOS平台,特别针对如在线教育、会议同屏等传统场景开发,以SDK开发包的形式提供,功能强大,可扩展性强,如可支持录像、快照、外部原始YUV/RGB ,Android/iOS平台支持H.265硬编码; [横竖屏推流]Android/iOS平台支持支持横屏、竖屏推流; [多分辨率支持]支持摄像头或屏幕多种分辨率设置; [Windows推屏]Windows 平台支持屏幕裁剪、窗口采集、屏幕/摄像头数据合成等多种模式推送; [移动端推屏]Android平台支持后台service推送屏幕(推送屏幕需要5.0+版本); [移动端推屏]iOS平台支持后台推送屏幕 如果是传统行业,比如智慧教室、无纸化会议同屏等,需要结合自己的业务,进行二次开发,而且对延迟、稳定性、还有可扩展性要求很高的话,可以考虑用SmartPublisher这种基于接口定制的SDK降低开发周期
display this help and exit [root@56-201 ~]# 这里不准备演示 scriptreplay 的使用方法,其实也很简单 这里接合重定向实现文本终端的同屏 qlen 1000 link/ether 52:54:00:16:5e:11 brd ff:ff:ff:ff:ff:ff [root@56-201 ~]# ---- 目标 通过重定向实现文本终端同屏 通过跟踪日志实现文本终端同屏 ---- 创建日志 [root@56-201 jail]# ll total 0 drwxr-xr-x. 2 root root 30 7月 30 19:04 bin bin lib64 [root@56-201 jail]# 之后从客户端 terminal 中看到的就是服务端中的内容,这个方法客户端登录后要主动使用 tail 命令,服务端不用做什么别的操作 两种同屏效果
技术背景好多开发者,希望我们能系统的介绍下无纸化同屏的原理和集成步骤,以Android平台为例,无纸化同屏将Android设备上的屏幕内容实时投射到另一个显示设备(如Windows终端、国产化操作系统或另一台 技术考量指标本文以大牛直播SDK Android同屏采集推送为例,介绍下我们前些年做Android同屏采集推送的时候,一些注意点:声明所需权限:在Android应用的AndroidManifest.xml 如H.264、H.265等,以及设置合适的分辨率、帧率、码率,以适应不同的网络环境和接收设备的性能;流媒体协议:为了将编码后的视频流实时传输到接收端,Android无纸化同屏技术通常采用RTMP推流模式或轻量级 技术实现本文以大牛直播SDK的Android的SmartServicePublisherV2的同屏demo为例,Android采集计时器,编码打包分别启动RTMP推送和轻量级RTSP服务,Windows 总结以上是Android平台屏幕采集、音频播放声音采集、麦克风采集编码打包推送到RTMP和轻量级RTSP服务的相关技术实现,做成高稳定低延迟的同屏系统,还需要有配套好的RTMP、RTSP直播播放器,整体部署
技术背景我们在做Android端同屏的时候,开发者希望可以高版本的Android系统上,在设备支持的前提下,可以采集到扬声器输出的audio,并支持和麦克风采集的audio相互切换,实现无纸化|智慧教室同屏不同 = null) {old.close();Log.i(TAG, "stop_audio_playback_capture capture.close.");}}启动RTMP推送或轻量级RTSP服务过程中 type;return this;}}.set(type);post_or_execute(r);return true;}播放效果如下(Android采集屏幕和麦克风|扬声器audio,然后推送到RTMP 服务和轻量级RTSP服务),扬声器audio采集,特别是视频播放模式下,比如无纸化同屏过程中,需要放个宣传片,或者一些视频材料,非常方便:总结Android平台扬声器播放声音的采集,在无纸化同屏等场景下
互联网同屏直播越来越火热,我们知道很多游戏主播都采用同屏的方式给观众直播,同屏直播组件层出不穷,EasyScreenLive就是TSINGSEE青犀视频团队研发的一款简单、高效、稳定的集采集,编码,组播 ,推流和流媒体RTSP服务于一身的同屏功能组件,具有低延时, 高效能,低丢包等特点。 EasyScreenLive无法正常启动 用户测试EasyScreenLive同屏功能,启动时发现程序报错缺少mfc100d.dll文件,所以不能启动: ? 关于EasyScreenLive同屏组件 课堂同屏直播: 可以通过PC、手机、平板电脑等多种设备的摄像头为视频源,进行对外的课堂同屏直播服务输出; 网络游戏直播: 游戏直播人只要有一台接入网络的电脑,下载并使用 EasyScreenLive进行简单的配置即可进入现场直播,用户可以在多终端收看网络游戏直播; 无纸化会议同屏: 随着科技的发展,无纸化会议服务有效的实现了单位与单位、单位与合作商之间的对接,同屏服务能更好的解决客户的实际需求
投屏技术已经被大量用在身边的产品,比如电视投屏,投影仪,视频会议产品中。 在iOS平台外的其他平台中都已经有非常成熟的标准和实现。 这样可以将小屏映射到大屏,可以无线音乐,可以图片分享等等. 但是Airplay属于苹果私有协议方案,设备间的协商与传输过程都进行了加密处理,并不能用于其他平台中。 这样可以方便实现跨平台的多屏共享。 这中投屏方案使用了iOS原生的投屏能力,并且是完全的软件方案,非常方便进行集成和使用。 Airplay Mirroring客户端的同屏交互过程,分为三个主要步骤: 设备广播与发现 信息交互与能力协商 音视频数据接收与解扰 设备广播与发现 Airplay设备间的广播与发现通过Bonjour协议进行
投屏技术已经被大量用在身边的产品, 比如电视投屏, 投影仪, 视频会议产品中. 在iOS平台外的其他平台中都已经有非常成熟的标准和实现. 这样可以将小屏映射到大屏,可以无线音乐,可以图片分享等等. 但是Airplay属于苹果私有协议方案,设备间的协商与传输过程都进行了加密处理,并不能用于其他平台中。 这样可以方便实现跨平台的多屏共享。 这中投屏方案使用了iOS原生的投屏能力,并且是完全的软件方案,非常方便进行集成和使用。 下面将介绍Airplay Mirroring接收端的实现原理,并揭示相关协议交互过程。 Airplay Mirroring客户端的同屏交互过程,分为三个主要步骤: 1, 设备广播与发现 2, 信息交互与能力协商 3, 音视频数据接收与解扰 设备广播与发现: Airplay设备间的广播与发现通过
适用于在线教育、智慧教室|无纸化推屏|会议、运营商视频云平台、远程医疗、金融双录、智能可视门禁对讲、智慧安防、智能家居、物联网、智能车载、传统硬件领域、媒体移动直播、应急指挥调度(针对保险、城管、交警、 多路流媒体转RTMP推送SDK 支持实时拉取的rtmp/rtsp流转发到指定rtmp url; 轻量级RTSP服务SDK 为满足内网无纸化/电子教室等内网超低延迟需求,避免让用户配置单独的服务器 : 智慧教室|无纸化会议等屏幕采集(推屏) 、RTMP直播推送demo; SmartRelayDemoV2: RTMP|RTSP直播播放SDK、RTMP|RTSP转RTMP推送SDK、RTMP| : 基于ReplayKit采集的智慧教室|无纸化会议等屏幕采集(推屏) 、RTMP直播推送demo,本地下载; SmartiOSRelayDemoV2: RTMP|RTSP直播播放SDK、RTMP ,Android/iOS平台支持H.265硬编码; [横竖屏推流]Android/iOS平台支持支持横屏、竖屏推流; [多分辨率支持]支持摄像头或屏幕多种分辨率设置; [Windows推屏]Windows
很多开发者在做Android平台RTMP推流或轻量级RTSP服务(摄像头或同屏)时,总感觉接口不够用,以大牛直播SDK为例 (Github) 我们来总结下,我们常规需要支持的编码前音视频数据有哪些类型: CAMERA_FACING_BACK with 0, CAMERA_FACING_FRONT with 1 * * @param curOrg: * PORTRAIT = 1; //竖屏 * LANDSCAPE = 2; //横屏 home键在右边的情况 * LANDSCAPE_LEFT_HOME_KEY = 3; //横屏 home键在左边的情况 支持RGBA数据接入(支持裁剪后数据接入,主要用于同屏场景): /** * Set live video data(no encoded data). 支持RGB565数据接入(主要用于同屏场景): /** * Set live video data(no encoded data).