前言 在 linux 系统中,有一个神器 script 命令,可以用来记录所有 CLI 终端的交互记录 script makes a typescript of everything printed on 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 命令,服务端不用做什么别的操作 两种同屏效果
这中投屏方案使用了iOS原生的投屏能力,并且是完全的软件方案,非常方便进行集成和使用。 Airplay Mirroring客户端的同屏交互过程,分为三个主要步骤: 设备广播与发现 信息交互与能力协商 音视频数据接收与解扰 设备广播与发现 Airplay设备间的广播与发现通过Bonjour协议进行 我们对Airplay相关协议的逆向工程已经封装成了跨平台的类库和框架, 支持windows/Mac/Android/iOS/linux, 在自己内部产品中使用已经非常稳定, 如果有需要可以联系我们. target=https%3A//github.com/AirCastLab Airplay Protocol:http://link.zhihu.com/? target=https%3A//nto.github.io/AirPlay.html AirCast website:https://aircast.cc/
投屏技术已经被大量用在身边的产品, 比如电视投屏, 投影仪, 视频会议产品中. 在iOS平台外的其他平台中都已经有非常成熟的标准和实现. 这样可以方便实现跨平台的多屏共享。 Airplay Mirroring客户端的同屏交互过程,分为三个主要步骤: 1, 设备广播与发现 2, 信息交互与能力协商 3, 音视频数据接收与解扰 设备广播与发现: Airplay设备间的广播与发现通过 我们对Airplay相关协议的逆向工程已经封装成了跨平台的类库和框架, 支持windows/Mac/Android/iOS/linux, 在自己内部产品中使用已经非常稳定, 如果有需要可以联系我们. 我的邮箱leeoxiang#http://gmail.com 相关链接: 1)AirCast 2)Airplay Protocol 3)AirCast website
对于高分屏设备,建议适当缩放视频分辨率以减轻编码和上行压力,如将宽高缩放至2/3,并保持等比例缩放,缩放宽高建议做好字节对齐。3. 如果需要,学生端也可以作为示范案例,将屏幕数据共享给其他同学,只需请求同屏,数据反推到RTMP服务器,其他学生即可查看。4. 横竖屏适配在Android设备上,横竖屏切换时需要考虑屏幕宽高的变化,确保推拉流两端可以自动适配。编码器需要重启以适应新的分辨率设置,拉流端也需要能够自动播放适应变化后的视频流。3. 智慧教室方案选型本文以大牛直播SDK的Android的SmartServicePublisherV2的同屏demo为例,Android采集计时器,编码打包分别启动RTMP推送和轻量级RTSP服务,Windows 下面从代码逻辑实现角度,介绍下同屏的具体流程:启动媒体服务,进入系统后,我们会自动启动媒体服务,对应的实现逻辑如下:/* * MainActivity.java * Created by daniusdk.com
使用无线投屏技术原理:无线投屏技术允许设备通过Wi-Fi网络或其他无线连接方式,将屏幕内容实时投射到另一台设备上。 在需要投影的设备上打开“设置”或“投影”选项,选择“无线投屏”或“屏幕镜像”等类似功能。在手机上搜索并连接另一台设备,即可实现屏幕内容的实时共享。 3. 使用即时通讯软件的屏幕共享功能原理:许多即时通讯软件(如微信、QQ、钉钉、腾讯会议等)都支持屏幕共享功能,用户可以在聊天或会议过程中实时共享屏幕内容。 大牛直播SDK跨平台RTMP直播推送模块,始于2015年,支持Windows、Linux(x64_64架构|aarch64)、Android、iOS平台,支持采集推送摄像头、屏幕、麦克风、扬声器、编码前 无论是无线投屏、第三方应用、HDMI线连接还是即时通讯软件的屏幕共享功能,都能轻松实现屏幕内容的实时共享。
EasyDSS能支持多屏播放,可兼容Windows、Android、iOS、Mac等操作系统,还能支持CDN转推,具备较强的可拓展性与灵活性。 OBS Studio是免费开源的视频录制与直播流软件,支持Windows、macOS、Linux操作系统,在视频直播功能上,也深受用户的欢迎。 今天和大家分享一个技术干货,如何使用OBS推流到EasyDSS平台实现同屏播放。 操作步骤如下:1)首先,打开OBS:2)打开设置,选择推流:3)按照rtmp://{ip}:{port}/{application}/id这个规则,配置相关参数后,即可推送流成功,实现视频直播同屏的效果 ,如图:我们在此前的文章也分享过如何使用OBS进行推流录屏与直播,感兴趣的用户可以翻阅我们往期的文章进行了解。
技术背景我们在做无纸化同屏的时候,好多开发者采集到屏幕、麦克风|扬声器数据,除了需要推RTMP出去,或者启动个轻量级RTSP服务,对外提供个拉流的RTSP URL,别的终端过来拉流(小并发场景),还有个技术需求 技术实现实际上,Android同屏,需要录像的话,和采集摄像头数据录像一样,只是数据源不同而已,鉴于不管什么格式的video数据,我们都是投递到模块底层做转换编码,所以本质上没啥差别。 ;stream_publisher_.try_release();test_and_disable_post_audio();}};post_or_execute(r);}总结Android平台无纸化同屏 ,如果需要本地录像的话,实现难度不大,只要复用之前开发的录像模块的就可以,对我们来说,同屏采集这块,只是数据源不同而已,如果是自采集的其他数据,我们一样可以编码录像。 以上是Android同屏录像设计,感兴趣的开发者,可以跟我单独沟通交流。
RK3588 芯片内置了 VOP 控制器,支持四路视频同显或异显,可有效提高行业定制的拓展性。 1.1 Android 多屏同显iTOP-RK3588 开发板支持以下屏幕迅为 MIPI 7 寸屏幕标准 HDMI 屏幕(通过 HDMI 线连接)迅为 LVDS 7 寸屏幕迅为 LVDS 10.1 寸 默认打开对应的宏定义为多屏同显。RK3588 VP 和各显示接口的连接关系如下图所示。 查看当前的屏幕显示状态输入以下命令cat /sys/kernel/debug/dri/0/summary如果双屏或者多屏的显示器分辨率比例不同,比如说主屏是 16:9,副屏是 4:3,那么副 屏显示的画面会拉伸或者缩小 如果同样的屏幕情况下,应用支持异显,那么副屏会显示实际正常的分辨率。所以如果要支持双屏或者多屏同显并要求显示正常,双屏或者多屏的屏幕的分辨率比要一致。
迅为RK3588S开发板多屏同显多屏异显多屏异触迅为电子RK3588 S开发板最多可以支持 7 个屏幕显示,这主要取决于 RK3588 芯片内置了 VOP 控制器, 支持四路视频同显或异显,可有效提高行业定制的拓展性 1.1 Android 多屏同显 iTOP-RK3588S 开发板支持以下屏幕 迅为 MIPI 7 寸屏幕 标准 HDMI 屏幕(通过 HDMI 线连接) 迅为 LVDS 7 寸屏幕 迅为 LVDS 10.1 默认打开对应的宏定义为多屏同显。 查看当前的屏幕显示状态输入以下命令 cat /sys/kernel/debug/dri/0/summary 如果双屏或者多屏的显示器分辨率比例不同,比如说主屏是 16:9,副屏是 4:3,那么副 屏显示的画面会拉伸或者缩小 如果同样的屏幕情况下,应用支持异显,那么副屏会显示实际正常的分辨率。 所以如果要支持双屏或者多屏同显并要求显示正常,双屏或者多屏的屏幕的分辨率比要一致。
服务器部署:SRS或NGINX,服务器可以和Windows平台的教师机部署在一台机器; 3. 教师端:如教师有移动的PAD,可以直接推到RTMP服务器,然后共享出去; 4. 教师和学生互动:学生端如需作为示范案例,屏幕数据共享给其他同学,只需请求同屏,数据反推到RTMP服务器,其他学生查看即可。 6. Android设备,特别是高分屏,拿到的视频原始宽高非常大,如果推原始分辨率,编码和上行压力大,所以,一般建议,适当缩放,比如宽高缩放至2/3,缩放一般建议等比例缩放,缩放宽高建议16字节对齐。 横竖屏状态下,采集的屏幕宽高不一样,如果横竖屏切换,这个时候,需要考虑到横竖屏适配问题,确保比如竖屏状态下,切换到横屏时,推拉流两端可以自动适配,横竖屏自动适配,编码器需要重启,拉流端,需要能自动适配宽高变化 width, int height, int clipedLeft, int clipedTop, int clipedWidth, int clipedHeight); 文字、图片水印 好多场景下,同屏者会把公司
下面将用3个例子来说明如何进行操作。 2d-roguelike-tutorial https://github.com/surparallel/unity_example_of_pelagia/tree/master/Roguelike 这个示例在性能方面有3个问题 3,碰撞检测会失败,导致npc的重叠。 所以针对上述3个问题我制作了Big Roguelike。 你可以在下面的链接找到它。 big_rouelike3.png 当你完成了第一个挑战之后,会发现再多的软件优化也无法大幅提升性能。 这时就要考虑更为激进的优化方案。 普通的技术水平是远远不能满足沙盒游戏的。 ultimage_rouelike3.png 将游戏分解到不同的线程,看着似乎非常简单。 但99%的游戏厂商都做不到。所以被玩家讥讽为单核游戏。 游戏设计者需要的是简单的技术就可以使游戏丰富多彩。
/errno.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/slab.h> #include <linux /input.h> #include <linux/init.h> #include <linux/serio.h> #include <linux/delay.h> #include <linux/platform_device.h } } static struct timer_list touch_timer = TIMER_INITIALIZER(touch_timer_fire, 0, 0); /* 当触摸屏按下后 * 比如: 内存ioremap, 中断资源获取, 配置ADCCCON等寄存器 * * 当中断注册好后,当我们按下触摸屏后,就会触发tc中断 */ static int __init s3c_ts_probe BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); ts->dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); /*设置触摸屏的
其中EasyScreenLive就是我们研发的一款简单、高效、稳定的同屏功能组件。 image.png EasyScreenLive同屏组件支持自定义OSD添加,本实例只针对拉RTSP和RTMP流设置OSD,采集屏幕和本机摄像头目前不支持。 0x4d,0x4d) 全为0背景透明 RECT rect; //OSD基于图像右上角显示区域 int size; //just D3D
3、动画教学,贴近孩子的喜好和理解力精心打磨的30节视频大课,用孩子最容易接受的动画形式授课,学起来毫无压力。
Error: WINDOWID environment variable was empty. 解决办法
的数据采集线程中需要进行编码前的格式转换(YUY2->I420),如果格式不统一,这里将要重写转换函数; (2) 本地音频采样率默认为16000,这个设置在SkeyePusher中表现最佳,其他采样率还有待测试; (3) ----------3、直播模块直播在采集模块中采集网络流时提到过,也是直接调用类Class SkeyeLiveManager接口实现://开始播放int CSourceManager::StartPlay m_netStreamPlayer.Start(szURL, hShowWnd, DISPLAY_FORMAT_RGB24_GDI, 0x01, "", "");m_netStreamPlayer.Config(3,
放置要录的区域,选择录制,出现倒计时 在倒计时这几秒内,右键peek顶部,取消Alway on top 在桌面的菜单栏,选择软件,这时,这个软件处于最前端,然后就可以点击软件了 点击停止,结束录屏 3.
/RTP/RTCP服务流程,只需要调用SkeyeLive的几个API接口,就能轻松、稳定地把流媒体音视频数据推送给SkeyeSMS服务器以及发布RTSP服务,RTSP服务支持组播和单播两种模式,可用于同屏直播 SOURCE_RTSP_STREAM=3,//RTSP流SOURCE_RTMP_STREAM=4,//RTMP流// Any other Source to push}SOURCE_TYPE;nCamId )创建的实例句柄libSkeyeLive库调用流程:1) 通过SkeyeLive_Create()创建一个实例,这个实例在其他的所有接口调用时都需要用到;2} 功能模块调用,如采集,推流,服务发布等;3)
单播不再赘述,这里重点介绍下我们的组播技术方案: 组播解决的主要痛点是服务器部署和带宽占用问题,一般来说,内网电子教室/无纸化/实时同屏场景用RTMP推送+RTMP服务器,然后其他端从服务器拉取RTMP 通过组播技术方案,只要网络设备支持组播组网,轻松实现多并发的同屏/摄像头直播场景。 经长时间测试,毫秒级延迟,完全满足内网同屏技术指标。 服务器部署:如果Windows平台,可以考虑NGINX,如果是Linux,可以考虑SRS或NGINX,服务器可以和Windows平台的教师机部署在一台机器; 3. 教师和学生互动:学生端如需作为示范案例,屏幕数据共享给其他同学,只需请求同屏,数据反推到RTMP服务器,其他学生查看即可。 6.
实验:FPGA计算3行同列数据之和 实验要求:PC机通过串口发送3行数据(一行有56个数据,3行共有56*3=168个数据)给FPGA,FPGA计算3行同一列数据的和,并将结果通过串口返回给上位机。 我们将3行数据同时读出,进行求和,然后用串口发送到上位机,这里要注意的是三个数据必须对齐,要不然是最终结果是不正确的。我这里为了验证方便,只生成了一行16个数据。 ? ? 本设计是为了基于FPGA的Sobel边缘检测做基础,使用2/3个FIFO将图片数据缓存成3x3矩阵,不过偶然发现Xilinx也有shift_ram IP Core,这个IP简直是为生成3x3矩阵而生的, 1 //串口接收模块波特率查找表 2 always @(posedge mclk or negedge rst_n) begin 3 if(! 最后下载板子进行功能验证,发送3组00-0f的数据,最后由串口返回上位机的数据查看,三行数据一列求和的结果是完全正确的。至此实验结束,下面要进入基于FPGA的Sobel边缘检测实验了。