首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏RTSP/RTMP直播相关

    Linux|麒麟操作系统下实现屏幕|摄像头|声音采集

    背景随着国产操作系统的推进,传统行业对Linux平台的呼声和需求越来越大,之前几年,我们发布了Linux平台运营商级的RTSP转RTMP推送模块、RTMP推送模块和RTSP、RTMP播放模块,前段时间, 有开发者问我们,是不是可以在Linux平台实现轻量级RTSP服务,通过采集摄像头或者屏幕,在Linux平台实现类似于IPC的功能,便于第三方系统对接。 ImageLayerConfigWrapper>(index++, true, 650, 120, 324, 300); strcpy(image_layer1->conf_.file_name_utf8_ ImageLayerConfigWrapper>(index++, true, 120, 380, 182, 138); strcpy(image_layer2->conf_.file_name_utf8_ NT_PB_E_VIDEO_OPTION{ NT_PB_E_VIDEO_OPTION_NO_VIDEO = 0x0, NT_PB_E_VIDEO_OPTION_SCREEN = 0x1, // 采集屏幕

    3K20编辑于 2023-02-13
  • 来自专栏RTSP/RTMP直播相关

    基于RTMP实现Linux|麒麟操作系统下屏幕|系统声音采集推送

    其实基于开源软件Linux二次开发的操作系统,近年来的发展趋势非常迅猛。 Linux已经有20年历史,尤其近十年经过突飞猛进的发展,Linux桌面操作系统已经远远摆脱了“具备与主流桌面操作系统的可比性”阶段,基于拥有众多优秀的开源应用软件的基础,在软件多样性、硬件兼容性、用户体验等各方面做了大量的改进 在欧美,我们不时听到一些政府部门将采用Linux桌面办公:慕尼黑市政府用十年的时间,成功的“赶走”了微软;伯明翰市政府、法国国会、瑞士、挪威和南非政府部门也都采用了Linux桌面办公。 国产操作系统|Linux下RTMP同屏推送 在发布国产操作系统|Linux平台的RTMP直播推送SDK之前,大牛直播SDK(官方)的RTMP推送模块已稳定运行在Windows、Android和iOS平台几年了 相对Windows、Android和iOS平台,Linux在桌面采集等方面,资料非常少,数据采集可以采用调用XLib相关接口实现,本Demo实现的是Linux上实现桌面和系统声音采集,然后使用RTMP协议推出去的一个

    1.6K40发布于 2021-07-22
  • 来自专栏RTMP推送

    Linux(含麒麟操作系统)如何实现多显示器屏幕采集录制

    在这样的背景下,我们实现了Linux平台下的以屏幕采集、摄像头采集、麦克风扬声器采集为数据源的RTMP推送模块、轻量级RTSP服务模块,和RTMP播放器和RTSP播放器模块,并同时覆盖了x86-64架构和 技术实现xrandr本文我们要讨论的是,如何在Linux平台实现多显示器的屏幕采集录制。我们知道,Linux下,X Window Sysem支持多显示器的配置和显示器列表获取。 XRRMonitor id, 采集X屏幕时使用* xrr_monitor_id: -1:采集所有屏幕, SDK默认为-1. NT_PB_SetCaptureXRRMonitor()设置要采集的XRRMonitor id, 采集X屏幕时使用。 /纯视频/音视频推送;支持X11屏幕采集;支持部分V4L2摄像头设备采集;[屏幕/V4L2摄像头]支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;[V4L2摄像头]支持V4L2摄像头设备选择

    1K10编辑于 2024-09-26
  • 来自专栏RTMP推送

    Android平台实现屏幕录制(屏幕投影)|音频播放采集|麦克风采集并推送RTMP或轻量级RTSP服务

    VirtualDisplay,这个VirtualDisplay会捕获屏幕内容并将其发送到指定的Surface;资源释放:当屏幕捕获不再需要时,确保释放MediaProjection和VirtualDisplay 如果音频播放采集采集麦克风都打开,可以通过右侧下拉框,推送过程中,音频播放采集和麦克风采集实时切换。 需要注意的是,Android采集音频播放的audio,音频播放采集是依赖屏幕投影的,屏幕投影关闭后,音频播放也就采不到了。 支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;支持RTMP推送 live|record模式设置;支持前置摄像头镜像设置;支持软编码、特定机型硬编码;支持横屏、竖屏推送;支持Android屏幕采集推送 总结以上是Android平台屏幕采集、音频播放声音采集、麦克风采集编码打包推送到RTMP和轻量级RTSP服务的相关技术实现,做成高稳定低延迟的同屏系统,还需要有配套好的RTMP、RTSP直播播放器,整体部署

    88510编辑于 2024-08-16
  • 来自专栏进击的多媒体开发

    深入浅出,Andorid 端屏幕采集技术实践

    屏幕采集则是实现实时屏幕共享流程中的第一步,本篇技术分享就来跟大家讲讲拍乐云在 Andorid 端屏幕采集的经验实践。 鉴于目前市面上5.0以下的 Android 手机占比很低且屏幕采集需要 root 权限实现复杂,接下来我们主要介绍 Android5.0 及以上版本的屏幕采集原理。 屏幕采集流程 介绍完以上关键角色,我们大致可以画出一套屏幕采集流程图: ? 下面逐步介绍代码实现。 屏幕采集帧率的上限取决以 Android 设备的屏幕刷新率,下限是0,即丢弃所有返回数据不处理。采集帧率并不是越高越好,够用就行。 比如在低端机上,就算以较高帧率采集屏幕数据,但受限于机器编解码能力,实际上屏幕传输的帧率达不到采集帧率,反而会消耗过多系统资源导致发热、卡顿等现象。这时候就需要适当降低采集帧率。

    2.5K20发布于 2021-06-09
  • 来自专栏RTSP/RTMP直播相关

    Linux平台屏幕|摄像头采集并实现RTMP推送两种技术方案探究

    ​ 技术背景随着国产化操作系统的推进,市场对国产化操作系统下的生态构建,需求越来越迫切,特别是音视频这块,今天我们讨论的是如何在linux平台实现屏幕|摄像头采集,并推送至RTMP服务。 我们知道,Linux平台,如果需要采集摄像头,可使用V4L2相关接口,屏幕采集用X相关接口实现,如果是Wayland协议, 用PipeWire相关接口实现采集就好。 FFmpeg VS SmartPublisher今天我们探讨的是,两种技术选型下的linux平台同屏摄像头RTMP推送实现:FFmpeg技术方案在Linux平台上采集屏幕和摄像头内容,并将其推送到RTMP X11屏幕采集;支持部分V4L2摄像头设备采集;[屏幕/V4L2摄像头]支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;[V4L2摄像头]支持V4L2摄像头设备选择(设备文件名范围:[/dev ]支持基于libpulse接口采集本机PulseAudio服务音频;[预览]支持推送端实时预览;[对接服务器]支持自建标准RTMP服务器或CDN;支持断网自动重连、网络状态回调;屏幕和摄像头合成/多层合成

    64510编辑于 2024-09-06
  • 来自专栏用户9239674的专栏

    一行代码实现安卓屏幕采集编码

    image.png 越来越多的App需要共享手机屏幕给他人观看,特别是在线教育行业。 本库对屏幕采集编码进行了封装,简单的调用即可实现MediaProjection权限申请,H264硬编码,错误处理等功能。 ScreenShareKit.init(this) .onH264{ buffer, isKeyFrame, ts -> }.start() Github 源码地址 实现 1 请求用户授权屏幕采集 其实,可以结合一些第三方的音视频SDK,直接将编码后的屏幕流数据通过第三方SDK推流,就能实现屏幕共享功能。 Resources.getSystem().displayMetrics.widthPixels }) }.start() 几行代码就可以实现屏幕采集编码传输

    1.5K00编辑于 2021-12-04
  • 来自专栏蓝天

    Mac Pro Windows 8屏幕偏暗原因

    实际使用过程中会发现,刚进入Windows时,屏幕很亮,但一会儿就暗下来了,之后怎么调节也亮不起来,调到最亮也偏暗。这说明Mac Pro本身还是可以很亮的,应当是某程序在控制。 事实却是如此,名叫“Sensor”的Windows服务程序在根据光感应的结果在动态调整屏幕亮度,这点和手机“自动亮度”类似。将服务“Sensor”停止,发现亮度立马上来了^_^。

    1.1K20发布于 2018-08-10
  • 来自专栏四月天的专栏

    Linux桌面系统屏幕信息获取

    Linux桌面系统屏幕信息获取(Qt、X11、Xrandr、Xinerma) ​ 最近在项目测试中,发现了关于Qt - UI分辨率自适应的问题。从大小屏幕互相切换的问题。也引发了关于屏幕检测的问题。 并不是预想中,小屏幕与大屏幕的DPI值是按照正比例来进行缩放的。不同品牌,不同年代的DPI也可能会发生,小屏幕的DPI大于大屏幕的DPI,所以字体没有如预期一样变小,反而变大了。 Windows下的获取调用WindowsAPI进行设置,网上大多也给出了解决方案,但是linux在怎么获取,大多都没有提到,所以在这进行讨论。 //获取当前屏幕的相关信息,首先获取App所在屏幕索引,然后根据索引或者当前屏幕的指针。 以后劲量避免使用Qt接口来设置屏幕相关属性了。 Xrandr 笔者目前使用的获取屏幕信息方法,xrandr。

    15.6K70编辑于 2023-03-10
  • 来自专栏RTSP/RTMP直播相关

    Windows平台实现Unity下窗体|摄像头|屏幕采集推送

    本文以Windows平台为例,数据源分别为Unity的窗口、摄像头或整个屏幕,编码传输模块,还是调用大牛直播SDK(官方)的原生接口,简单界面先睹为快: win_publisher_unity2.png 初始化参数配置 这里需要注意下,如果要采集unity窗口,需要设置图层模式,先填充一层RGBA黑色背景,然后再添加一层,用于叠加外部数据。 数据采集 摄像头和屏幕的数据采集,还是调用原生的SDK接口,本文不再赘述,如果需要采集Unity窗体的数据,可以用参考以下代码: if ( texture_ == null || video_width = null) OnLogEventMsg.Invoke(event_id, event_log); } 8. ; publisher_handle_ = IntPtr.Zero; } } 总结 经测试,Unity环境下,通过高效率的数据采集

    1.4K30发布于 2021-06-10
  • 来自专栏geekfly

    Java数据采集-8.模拟登录

    = null) { result = EntityUtils.toString(entity, "utf-8"); } }catch =geekfly; Domain=.csdn.net; Path=/;AU=2DB; Domain=.csdn.net; Path=/;UD=%E5%94%AF%E6%9C%89%E5%89%B2%E8% 88%8D%EF%BC%8C%E6%89%8D%E8%83%BD%E4%B8%93%E6%B3%A8%E3%80%82%E5%94%AF%E6%9C%89%E6%94%BE%E5%BC%83%EF%BC %8C%E6%89%8D%E8%83%BD%E8%BF%BD%E6%B1%82%E3%80%82; Domain=.csdn.net; Path=/;UN=TMaskBoy; Domain=.csdn.net /;BT=1508058570894; Domain=.csdn.net; Expires=Mon, 15-Oct-2018 09:09:30 GMT; Path=/;access-token=65d8afcc-f6ee

    87820编辑于 2022-05-06
  • 来自专栏RTSP/RTMP直播相关

    Android平台实现屏幕数据采集并推送至RTMP服务器

    智慧教室等场景的普及,好多企业或者开发者开始寻求更高效稳定低延迟的RTMP同屏方案,本文以大牛直播SDK(Github)的同屏demo(对应工程:SmartServicePublisherV2)为例,介绍下如何采集编码推送 libPublisher = new SmartPublisherJniV2(); private void InitAndSetConfig() { //开始要不要采集音频或视频 libPublisher.SmartPublisherSetAudioCodecType(publisherHandle, 2); libPublisher.SmartPublisherSetSpeexEncoderQuality(publisherHandle, 8) last_image.close(); last_image = null; } } } 关闭采集推送 } libPublisher.UnInitRtspServer(); super.onDestroy(); } 以上就是Android平台数据采集

    1.4K00发布于 2020-06-14
  • 来自专栏Linux内核深入分析

    Linux音频驱动-声音采集过程

    辨别阀用来表示听觉器官辨别声音某种特性最小差异的能力 声音的采集是在一段连续的信号中, 采取离散的信号, 采集密度用采样率来表示。香浓采样定理表明,采样频率必须大于被采样信号带宽的两倍。 在数字领域中,经常采用的采样率: 8,000 Hz - 电话所用采样率, 对于人的说话已经足够 11,025 Hz 22,050 Hz - 无线电广播所用采样率 32,000 Hz - miniDV 如果采样率越高,单位信号的采集的样本信号就越多,信号还原度也就越高。 从上面的不同的采样率可以看到, 采样率越高的信号清晰度就越高,当然也要求更多的存储空间。 除了采集率, 采样位数也是一个重要的采样指标, 它是对一个采样精确度的表示。 它和采样率共同影响信号的采集的质量。 采样位数是用来表示一个采样信号的长度。 因此我们可以计算出一张60分钟的2声道立体声音乐CD的大小,3600*44100*(16*8)*2 bit ~= 604MB; 比特率也用来表示但是时间播放连续数字媒体的比特数量, 单位bit/s

    2.9K11发布于 2020-03-24
  • 来自专栏韦东山嵌入式

    LCD屏幕操作原理_嵌入式Linux

    5.1 LCD 操作原理 在 Linux 系统中通过 Framebuffer 驱动程序来控制 LCD。 Framebuffer 中保存着一帧图像的每一个像素颜色值,假设 LCD 的分辨率是 1024x768,每一个像素的颜色用 32 位来表示,那么 Framebuffer 的大小就是: 1024x768x32/8= 后得到的 Framebuffer 地址,如下图所示: 可以用以下公式算出(x,y)坐标处像素对应的 Framebuffer 地址: (x,y)像素起始地址=fb_base+(xres*bpp/8) y + xbpp/8 最后一个要解决的问题就是像素的颜色怎么表示? 它是用 RGB 三原色(红、绿、蓝)来表示的,在不同的BPP 格式中,用不同的位来分别表示 R、G、B,如下图所示: 对于 32BPP,一般只设置其中的低 24 位,高 8 位表示透明度,一般的

    2.8K10编辑于 2022-05-05
  • 来自专栏咖啡走糖

    linux桌面自动登录及屏幕相关操作

    2配置屏幕选择方向以及关闭息屏模式 在/etc/X11修改xorg.conf文件,如果没有,自行创建; 修改完后可使用xset -q查看设置和当前配置。 Section "Monitor" Identifier "DSI-1" Option "Rotate" "left" #left为屏幕向左旋转

    6.7K20编辑于 2022-11-05
  • 来自专栏devops_k8s

    k8s 日志采集最佳实践

    日志作为应用系统的一部分,主要用作程序 Debug,通常结合 grep 等 Linux 常见的文本命令进行分析; 2 . 在 K8s 中,应用都以 yaml 的方式部署,而日志采集还是以手工的配置文件形式为主,如何能够让日志采集以 K8s 的方式进行部署? 5 采集方式: 主动 or 被动 日志的采集方式分为被动采集和主动推送两种,在 K8s 中,被动采集一般分为 Sidecar 和 DaemonSet 两种方式,主动推送有 DockerEngine 7 日志采集方案 image.png 早在 Kubernetes 出现之前,我们就开始为容器环境开发日志采集方案,随着 K8s 的逐渐稳定,我们开始将很多业务迁移到 K8s 平台上,因此也基于之前的基础专门开发了一套 K8s 上的日志采集方案。

    3K40发布于 2021-11-09
  • 来自专栏王小二的Android站

    一加8 Pro如何优化120Hz屏幕

    前言 今天同事买了一台一加8Pro,当然话不多说,先拿来给我们研究一下,看看一加是如何优化120Hz屏幕的。 我将它命名为:屏幕动态调整帧率 ? ? ? Pro上120hz的优化方案 正当我也认为一加8 Pro上会采用和1加7 Pro类似的方案的时候。 我抓了一个trace,让我看到了1加8 Pro的另外一种方案。 只不过同时运行的时候逻辑会比较复杂,暂时我还不确定1加8 Pro是否会采用两种方案同时使用?因为手机已经还给同事了。

    1.4K10发布于 2020-06-08
  • 来自专栏blackpiglet

    Linux 屏幕取词解决方法:Chrome 插件

      我的工作用电脑的桌面环境是 Ubuntu 17.10,作为一个 Linux 用户,一直困扰我的一个问题是没有找到一个比较理想的可以取词划词的英语词典,之前我尝试过几种方法: 有道:有道是有 Linux

    2.9K30发布于 2018-08-23
  • 来自专栏landv

    linux c++ 通过xcb库获取屏幕大小

    linux c++ 通过xcb库获取屏幕大小 #include <stdio.h> #include <xcb/xcb.h> /** clang++ main.cpp -o main `pkg-config

    9.1K30发布于 2019-11-30
  • 来自专栏ytkah

    linux防止恶意采集攻防战

    ytkah刚开始想着用NGINX进行限制,但是没有起到很好的效果,那就用防火墙吧,服务器一般都会有防火墙功能,如果是linux服务器可以用iptables命令,也有一些第三方的服务器控制面板如wdcp,

    1.2K30发布于 2019-05-25
领券