首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏写个呆萌

    Camera2 YUV_420_888

    API 21引入了Camera2,deprecated掉了Camera,确立Image作为相机得到的原始帧数据的载体;硬件编解码的MediaCodec类加入了对Image和Image的封装ImageReader 带有这种格式的图像使用3个独立的Buffer表示,每一个Buffer表示一个颜色平面(Plane),除了Buffer外,它还提供rowStride、pixelStride来描述对应的Plane。 U/V的平(Planar)面和半平面(Semi-Planar) U/V的Planar存储(YUV420P) 我测试不同安设备,找到存储格式是Planar的设备: Log.i 看8 x 4的NV12存储结构(NV21只是UV交错顺序相反): 结论 plane[0] + plane[1] 可得NV12 plane[0] + plane[2] 可得NV21 参考3中获取I420

    3.5K50发布于 2020-11-13
  • 来自专栏用户1692782的专栏

    协议转换之rtsp转rtmp

    不过呢,音视频中,流媒体协议rtsp也占有很大份额!日常生活呢,我们也会遇到一些不同流媒体协议转换的问题!本篇记录实现一个rtsp转rtmp直播的程序!闲言少叙,接下来置入主题。 需求 有一个摄像头,比如海康的监控摄像头,可以通过rtsp的方式访问其视频画面!需要将其画面转换为rtmp协议,并实现直播! 实现思路 我们的程序,称之为rtsp2rtmp,使用该程序实现拉取摄像头rtsp视频,并将rtmp视频流转换为rtmp视频,然后推送到直播服务器,直播服务器采用nginx+rtmp_module的方式实现 rtsp2rtmp,使用FFmpeg API来实现! << std::endl; //4. stream信息复制 AVCodecContext* rtmpOutCodec = avcodec_alloc_context3(outCodec);

    4.8K30发布于 2020-07-14
  • 来自专栏小蔚记录

    js --- ffmpeg rtsp ,websocket通信,cnavas 渲染

    下载 npm install node-rtsp-stream(插件) 前端 下载 jsmpeg.js框架。引入对应开发页面。(详细请参考 jsmpeg.js 文档) html js 部分

    5.8K30发布于 2019-12-12
  • 【使用Java编写FFmpeg实现RTSPRTMP详解】

    标题:使用Java编写FFmpeg实现RTSPRTMP详解 引言: RTSP(Real Time Streaming Protocol)是一种用于实时媒体传输的网络协议,而RTMP(Real Time 本篇博客将介绍如何使用Java编写FFmpeg来实现RTSP的拉取和RTMP的推送。 步骤3:编写代码 在Java程序中,我们使用ProcessBuilder来运行FFmpeg命令。以下是一个简单的示例代码,展示了如何使用FFmpeg拉取RTSP并推送到RTMP。 ffmpeg多个视频推向一个rtsp地址 FFmpeg可以将多个视频推向一个RTSP地址。 推送多个视频流到同一个RTSP地址时,要确保视频的格式、分辨率和编码等参数是兼容的,以避免兼容性问题。 结论: 通过使用FFmpeg和Java,我们可以方便地实现RTSP的拉取和RTMP的推送。

    77710编辑于 2025-08-29
  • 来自专栏TSINGSEE青犀视频

    EasyScreenLive组件RTSP流到EasyDSS操作过程分享

    EasyScreenLive是一款简单、高效、稳定的集采集,编码,组播,和流媒体RTSP服务于一身的同屏功能组件,在大屏显示投屏,无纸化会议同屏演示,课堂同屏等,可以配合全屏显示,在很多项目中都能够实现项目的需求 上一篇文中我们讲了EasyScreenLiveRTSP流到EasyDarwin(EasyScreenLive组件RTSP流到EasyDarwin),本文以EasyDSS为主,带着大家演示一遍看下推 ,Port为端口,在线演示的端口被定义为10035,Stream为标识,如上图,我们自定义标识为hls/Seven,填写完毕信息后,我们点击StartPushRTMP按钮,日志栏提示成功 打开WEB页面,在直播管理页面->视频直播列表显示中,可以看到刚刚我们推上来的信息,有ID、名称、开关、鉴权、计划、录像计划、状态、分享开关、直播状态、推送流量等信息显示,方面直观,除了页面可以直播播放以外 ,EasyDSS还支持分发其它协议供不同终端来做播放使用,选择编辑按钮,可以看到完整的地址和不同协议的播放地址,如下图:

    1.5K20发布于 2021-07-19
  • 来自专栏视频流媒体

    RTSPServer接收RTSPRTSP流转GB28181输出级联GB28181国标平台

    1、需求背景目前不是所有的直播设备都支持GB28181的国标注册,有的只能输出直播,有的只能支持RTSP。 那么,项目中如何把 rtsp或直播流转成GB/T281812、开启RTSP2.1、基础配置配置RTSP端口3、获取RTSP地址3.1、RTSP地址格式示例:rtsp://192.168.2.135 (stream_通道号),比如通道 6 的ID就是 stream_63.3、RTSP地址示例通道1:rtsp://192.168.2.135:1554/stream_1通道3rtsp://192.168.2.135 :1554/stream_3通道6:rtsp://192.168.2.135:1554/stream_64、配置设备将上面生成的rtsp地址,配置到无人机 或是 的设备上面5、配置拉转RTSPLiveNVR ,固定值不能修改5.2、直播地地址示例通道1:rtsp://127.0.0.1:1554/stream_1通道3rtsp://127.0.0.1:1554/stream_3通道6:rtsp://127.0.0.1

    2.4K10编辑于 2022-07-27
  • 来自专栏TSINGSEE青犀视频

    EasyScreenLive组件RTSP流到EasyDarwin操作过程分享

    EasyScreenLive可以说是TSINGSEE青犀视频的SDK中功能较为集中且全面的一个SDK了,它可以支持RTSP流到EasyDarwin、RTMP流到EasyDSS等视频平台,下面我们带着大家演示一遍看下推 1、RTSP至EasyDarwin DEMO示例中选择屏幕采集,然后Capture,接着添加EasyDarwin的信息,RTSPush IP为部署EasyDarwin服务的IP地址,本案例中,直接用的本机 127.0.0.1的地址,Port为端口,防领域关于RTSP的端口大家一般都用554端口,EasyDarwin也延续这个默认的规则,Stream为标识,如上图,我们自定义标识为Seven, 填写完毕信息后,我们点击StartPushRTSP按钮,日志栏提示成功,下面我们看下EasyDarwin的状态展示。 2、EasyDarwin的状态展示 EasyDarwin默认的WEB端口为10008端口,我们打开http://127.0.0.1:10008/ 可以直接进入WEB页面,在列表中,我们可以看到刚才推送的信息

    1.6K30发布于 2021-07-19
  • 来自专栏流媒体音视频

    我攻克的技术难题小程序声音失真卡顿问题

    用户反馈说华为手机()小程序时声音持续卡顿,始终不会恢复且稳定复现,但是 iOS 小程序时声音却是正常的。二、疑惑经过一系列常规处理后,问题依然存在。 后来进一步验证发现,不仅是华为手机,所有的手机小程序声音都有问题。按照一般的思路,既然 iOS 设备的小程序没有问题,理论上设备的小程序也不应该有问题,那么很可能是后续链路出现了问题。 反观设备小程序的情况,concealedSample/s 数据始终在 2.5k/s 左右,影响了声音的正常播放。 解惑3针对疑惑3,综合研发同学和 QA 同学的反馈,去年年底的时候,小程序流音频还是正常的,而且之后流媒体服务器和客户端都没有进行过相关功能的升级。 方案1既然是小程序的音频有问题,首先想到的就是在源头上解决问题,但是了解小程序直播业务开发的小伙伴一定都知道小程序的底层 SDK 是腾讯提供的,特别是音视频能力,很多接口都没有暴露出来。

    1.3K31编辑于 2024-01-27
  • 来自专栏电光石火

    常用防监控厂家RTSP格式

    channel=1&subtype=0 举例取1通道主码rtsp://admin:123456@192.168.1.100:554/cam/realmonitor? channel=1&subtype=0 海康威视 rtsp://用户名:密码@IP地址:端口/Streaming/Channels/id 101:1通道主码 102:1通道子码 201:2通道主码 举例取1通道主码rtsp://admin:123456@192.168.1.100:554/Streaming/Channels/101 宇视 rtsp://用户名:密码@ip地址:端口/video1 /2/3 举例取主码rtsp://admin:123456@192.168.1.100:554/video1 TP-LINK rtsp://用户名:密码@ip地址:端口/stream1 举例rtsp: 中维 rtsp://ip地址:端口/live0或1.264 举例rtsp://192.168.1.100:554/1ive0.264 天地伟业 rtsp://ip地址:端口 举例rtsp://192.168.1.100

    1.6K10编辑于 2024-07-13
  • 来自专栏RTMP推送

    Android音视频开发:基于 Camera2 API 实现RTMPRTSP服务与录像一体化方案

    ​在移动端音视频领域,单纯的 RTMP 已不再是技术天花板。 ,打造一套集采集、编码、、服务、存储于一体的高可靠、低延迟音视频解决方案。 3. 传统的端通常只负责,拉需要依赖 Nginx 或 SRS 等服务器。但该 SDK 允许 Android 设备变身为 RTSP 服务器。 从“端”到“边缘计算节点”的角色蜕变 最令人印象深刻的,是 SDK 内置的 轻量级 RTSP 服务。

    46100编辑于 2025-12-07
  • 来自专栏RTSP服务器

    深入探讨后台摄像头|麦克风采集与轻量级RTSP服务|RTMP架构设计

    封装 Camera2 API、AudioRecord 以及 Native 库。 管理数据采集(YUV/PCM)到编码的全流程。 UI 层 (MainActivity): 纯展示与控制。 这是性能最敏感的部分,直接决定了的延迟和流畅度。 五、 核心实现四:RTSP Server 与多路分发系统不仅支持 RTMP ,还内置了一个轻量级的 RTSP Server。这意味着手机本身变成了一个 IPC(网络摄像机)。 创建 SDK 实例 if (!test_and_create_sdk_instance()) return false; // 3. 灵活性:Service 承载业务,Activity 仅作展示,实现了完美的解耦,支持断线重连和后台静默。 功能全:同时支持 RTMP RTSP 服务端、水印叠加、软硬编码自动切换。

    57541编辑于 2025-12-18
  • 来自专栏RTSP/RTMP直播相关

    轻量级RTSP服务模块和RTSP模块适用场景区别

    好多开发者一直搞不清我们轻量级RTSP服务SDK和RTSPSDK的区别,以下是相关区别: daniulive_chart_20200130.png 1. 设置rtsp名称给要发布的rtsp设置rtsp serverAddRtspStreamServer给要发布的rtsp设置rtsp server, 一个可以发布到多个rtsp server上,rtsp rtspStartRtspStream启动rtsp停止rtspStopRtspStream停止rtsp 2. RTSP模块:RTSP模块,和RTMP模块类似,适用于内网或公网环境下,主要适用于第三方RTSP服务对接,如darwin stream server,或者第三方RTSP服务平台,如视频分析平台等特定场景的服务器 的场景,一般建议走RTMP,需要特定系统对接的,再走RTSP

    2.9K00发布于 2020-01-30
  • 来自专栏全栈程序员必看

    live555 h265_live555rtsp

    基于live555的视频直播 DM368IPNC RTSP分析 本文是 我对TI DM368IPNC RTSP直播部分的代码分析。 appro IPNC视频直播部分用的RTSP,基于live555,通过改写wis-streamer实现的,在live555官网上有wis-streamer的代码下载,appro将其修改,在framedsource 感慨:C++ 真的太好用了 现在懒了,文字部分就直接复制出来,源文档使用的是excel, 基于live555的视频直播 DM368IPNC RTSP分析 一、描述 appro利用live555实现了三种视频以及一种音频的直播 1、MJPEG Video 2、H264 Video 3、MPEG4 Video 4、PCM Audio live555是一个开源的RTSP C++类库,默认实现音视频文件的点播,但是可以通过继承相关类 部分可不做任何改动 四、RTSP直播 main主程序 这与普通的live555 rtsp service结构并无太多区别,只是由于要传输的视频类型较多,所以多了很多if else,这部分比较简单,

    2K20编辑于 2022-09-21
  • 来自专栏火属性小虫

    Kotlin开发学习(3)

    , 29 7月 2022 作者 847954981@qq.com 后端学习, 我的编程之路 Kotlin开发学习(3) 数据类与单例类 在Java中,数据类占据着重要的角色,其通常需要重写包括 ) 和 mutableMapOf()创建map,不过在Kotlin中,map创建使用 to 连接 K-V:mapOf("Apple" to 1, "Banana" to 2, "Orange" to 3,

    90710编辑于 2023-02-22
  • 来自专栏RTSP/RTMP直播相关

    Android平台RTSP如何添加动态水印后转RTMP或轻量级RTSP服务

    技术背景我们在对接外部开发者的时候,遇到这样的技术诉求,客户用于地下管道检测场景,需要把摄像头的数据拉取过来,然后叠加上实时位置、施工单位、施工人员等信息,然后对外输出新的RTSP,并本地录制一份带动态水印叠加后的数据 技术实现废话不多说,下图先通过Android平台拉取RTSP,然后把解码后的yuv或rgb数据回上来,以图层的形式投递到推送端,需要加水印的话,添加文字水印或图片水印(系动态水印)图层,底层做动态叠加后二次编码打包 ,通过启动轻量级RTSP服务,发布RTSP,生成二次处理后的RTSP新的拉url,如果需要推送至RTMP,只要调用推送RTMP的接口即可,本地录制,可以设置录制目录等信息,保存二次编码后的MP4文件到本地 }发布RTSP://发布/停止RTSPclass ButtonRtspPublisherListener implements View.OnClickListener {public void onClick stream_publisher_.StartRtspStream()) {stream_publisher_.try_release();Log.e(TAG, "调用发布rtsp接口失败!")

    77310编辑于 2023-12-25
  • 来自专栏FFmpeg实战

    FFmpeg开发笔记(五十三)移动端的国产直播录制工具EasyPusher

    ​EasyPusher是一款国产的RTSP直播录制客户端工具,它支持Windows、Linux、Android、iOS等操作系统。 EasyPusher采用RTSP协议,其中版EasyPusher的Github托管地址为https://github.com/EasyDarwin/EasyPusher-Android。 不过EasyPusher有好几年没更新了,尤其版的EasyPusher仍在调用过时的support支持库,而非推出多年的AndroidX库。 点击App界面右下角的设置按钮,打开设置页面如下图所示,注意修改上方编辑框中的服务端地址,比如rtsp://124.70.***.***/live/test。 注意,由于EasyPusher仅支持RTSP,不支持RTMP等其他协议,因此上面只能填写RTSP链接。

    74110编辑于 2024-09-21
  • 来自专栏EasyNVR

    EasyRTMP助力EasyNVR防摄像机互联网化,实现核心的RTSP流转RTMPHLS(m3u8)HTTP-FLV功能

    我们在常用的防监控、互联网视频直播等系统服务中,常常最主要的就那么几个环节: 视频获取:RTSP源、SDK源、GB28181源; 视频输出:RTMP、SDK、GB28181 PS over RTP Github地址:https://github.com/EasyDSS/EasyRTMP, Demo中EasyRTMP_RTSP项目是将RTSP获取到本地进行RTMP推送,可进行RTMP直播。 RTSP视频源进行RTMP直播:EasyRTMP_RTSP 目前市面上的防设备,现有的以及未来的,基本都是RTSP协议输出格式,且为被动拉才能从设备获取到音视频,更不用说直接流到RTMP流媒体服务器或者 RTMP/FLV/HLS/RTSP同步输出:EasyDSS 通常情况下,EasyRTMP流到标准的RTMP流媒体服务器就能实现基础的RTMP、HLS(m3u8)直播功能,但,如果需要得到一个更好的直播输出效果 ,同步输出HTTP、RTMP、HLS、HTTP-FLV、RTSP,支持分发/拉分发,支持秒开、GOP缓冲、录像、检索、回放、录像下载、网页管理等多种功能,是目前市面上最合理的一款流媒体服务器!

    1.6K20发布于 2020-04-23
  • 来自专栏全栈程序员必看

    java中jbpm工作_框架

    JBPM工作框架应用 导入jar包 jbpm案例中获取配置文件,并配置本地数据库 创建流程,并进行相关修改 流程及流程内任务等的草操作 import java.io.File; processEngine = Configuration.getProcessEngine(); } /** * 部署流程定义 * @throws Exception */ @Test public void test3( helloworld2.png");//读取图片文件 String id = deployment.deploy();//完成部署 System.out.println(id); // 方式二----读取压缩文件 InputStream in = processEngine.getRepositoryService().getResourceAsStream(deploymentId, resourceName); //通过输出将文件保存到本地磁盘 executionId = "请假流程.90001"; processEngine.getExecutionService().signalExecutionById(executionId,"to task3"

    1.1K30编辑于 2022-10-01
  • 来自专栏RTMP推送

    SmartMediaKit 模块化音视频框架实战指南:场景链路 + 能力矩阵全解析

    区别于传统“播放器或器”的单点工具,SmartMediaKit 更像是一套“积木式音视频内核”,用户可按需加载所需模块,构建灵活可控的视频通信链路,广泛应用于防监控、工业采集、远程协作、智能终端等多种高实时性场景 下列为基于实际项目场景整理的典型链路组合,便于开发者按需参考部署: 场景一:RTSP 监控画面低延迟播放( / Windows)适用场景:工业视频监控、智能机器人远程操控、防可视化管理等 链路组合 :RTSP 视频源 → [RTSP 播放器 SDK] → / Windows 播放界面推荐模块配置: 播放端使用 RTSP Player SDK(开启低延迟模式 + 硬解支持) 开启 YUV/RGB 推荐组合: RTSP 播放模块(解码 RTSP 视频RTSP → RTMP 转发模块(编码并转) 本地录像模块(边转边录) 部署环境:Linux/Android 边缘设备,arm64 架构 推荐组合: 推送端:RTMP 推送模块 + SEI 扩展数据注入 地面接收端:RTMP 播放模块 + 播放端录像模块 分发中继端:RTMP 录制 + 前端播放 部署环境:无人机终端 + 控制中心

    51610编辑于 2025-08-06
  • 来自专栏TSINGSEE青犀视频

    如何对EasyRTSPLive进行修改将其支持多通道拉RTSPRTMP功能?

    最近很多用户在使用我们经典流媒体EasyNVR的时候提出一个需求:是否可以精简其中的功能模块,只做一个拉转的功能,不需要流媒体的功能,类似于做一个视频网关的软件产品。答案当然是可以的。 TSINGSEE青犀视频现有的平台中已经有两款产品支持这样的功能,一款是EasyRTSPLive,另一款是EasyRTMPLive,他们的特色功能就是拉转视频网关的功能。 image.png 拿EasyRTSPLive来说,当前我们编译出来的DEMO,供大家测试使用的是拉一路一路的工具版,基于这个需求,不少网友找过来问能否有一个多通道的工具版,这个也是可以的,只需要修改代码就能完成 1、从github https://github.com/tsingsee/EasyRTSPLive 上克隆代码到本地; 2、用VS2010打开工程文件,如下图: image.png 3、找到通道限定的位置代码 ,在main.cpp 定义的全局变量中,如下: //用户可自定义的RTSP转RTMP拉流转路数,官方工具版默认1路拉转,用户可通过代码定制多路RTSP转RTMP #define MAX_CHANNEL_INDEX

    1.3K30发布于 2021-04-21
领券