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

    Android平台毫秒级低延迟HTTP-FLV直播播放器技术探究与实现

    Timestamp(3字节):标签的时间戳,用于同步音频和视频。 Stream ID(3字节):通常为0。 Tag Data:根据标签类型,包含具体的音频、视频或脚本数据。 读取接下来的3字节获取时间戳(Timestamp)。 读取接下来的3字节获取Stream ID,通常可忽略。 根据标签类型,解析相应的Tag Data。 以大牛直播SDK的Windows平台采集桌面毫秒计时器窗口,编码打包推送RTMP到流媒体服务器,流媒体服务器出http-flv的流,大牛直播SDK的SmartPlayer从流媒体服务器拉流,整体延迟如下 ,可以看到,真的不输我们做的RTMP、RTSP直播播放器延迟! 好多开发者可能会好奇,为什么我们的延迟这么低?

    1.3K10编辑于 2025-03-24
  • 来自专栏smy

    HTTP-FLV直播初探

    目前几种视频流的简单对比: 协议 httpflv rtmp hls dash 传输方式 http流 tcp流 http http 视频封装格式 flv flv tag Ts文件 Mp4 3gp webm 将测试:RTMP延迟1s左右,HTTPFLV延迟1-2s左右,可用于对延迟要求比较苛刻的场景,但要注意兼容性,文章最后会说明HTTPFLV兼容性。 ---- HTTP FLV直播Demo: <! 播放一段时间后,音频模糊 3. 暂停后继续播放是接着暂停时的场景继续播,对于直播会产生延迟 =》 临时解决方案:暂停后继续播放时,手动销毁视频再重新加载播放 4.

    8.6K80发布于 2018-04-03
  • 来自专栏LET

    UE(3):延迟渲染管线

    如果你在前方回头 而我亦回头 我们就错过 --- 《艳火》 前两篇分别介绍了UE(1):材质系统和UE(2):材质着色器,主要侧重如何生成材质,本篇的主题是延迟渲染管线(Deferred Shading 延迟渲染管线可以认为是一个Multi-Pass策略,该策略本质就是一个分支:不同Pass之间传递的规范,实现Pass的解耦,这样,每一个Pass只需要完成自己的子任务,按照规范交付结果。 在UE中,延迟渲染管线类似两个for循环,外层循环对应延迟渲染管线的多Pass的逻辑,称为Deferred Shading Pipeline,内层则是每个子任务具体的内容,子任务大同小异,每个子任务对应了一个 DrawCommand2RHICommand FMeshDrawCommand本身是跟平台无关的,最后一步就是针对当前设备的硬件情况完成最终的渲染过程,如上图所示,因为是Windows平台,所以此处是D3D11 ,InitViews属于数据处理,因此无法体现在渲染流程中,我们简单介绍一下如下的三个主要Pass,理解UE延迟渲染的最简流程。

    2.2K40编辑于 2022-12-22
  • 来自专栏Gnep's_Technology_Blog

    HTTP-FLV详解及分析

    1、市场上使用 http-flv 的商家 优酷的 pc 网页直播,斗鱼、 熊猫 tv、 虎牙 pc 网页上也使用了 http-flv 2、http-flv、rtmp 和 hls 直播的优缺点 三者的延迟http-flv:低延迟,内容延迟可以做到 2-5 秒; Rtmp:低延迟,内容延迟可以做到 2-5 秒。 Hls:延迟较高(ts0,segment-time:5,10s)。 三者的易用性 rtmp 和 http-flv:播放端安装率高。只要浏览器支持 FlashPlayer 就能非常简易的播放。 3http-flv 技术实现 HTTP 协议中有个约定:content-length 字段,http 的 body 部分的长度。 tag 组成:tag type[1B]+tag data size[3B]+Timestamp[3B]+TimestampExtended[1B]+stream id[3B]+ tag data type

    3.3K41编辑于 2023-11-12
  • 来自专栏JavaEdge

    复制延迟案例(3)-单调读

    如图-4显示用户2345两次进行相同查询: 首先查询延迟很小的从节点 然后是延迟较大的从节点 若用户刷新网页,而每个请求被路由到一个随机的服务器,这种情况是很有可能的。

    24020编辑于 2022-08-01
  • 来自专栏嵌入式

    ESP32-S3 手势识别延迟优化实战

    问题根源分析:两帧延迟从哪来? 验证:是否真的是缓存延迟? 执行手势识别 run_gesture_inference(fb->buf, fb->len); // 3. 方法 3:关闭双缓冲 DMA如果你使用的是 ESP32-S3 + DMA 模式摄像头(如 OV2640 / OV5640),驱动中 dma_buf_count 也可能导致双缓存。 推荐完整配置代码示例以下是一段优化后的 ESP32-S3 摄像头初始化代码(低延迟模式):#include "esp_camera.h"void setup() { camera_config_t

    47810编辑于 2025-10-21
  • 来自专栏ghostsf

    没有Flash如何做直播?

    N(>=3)年前Adobe官宣了2020年底就不支持Flash了,最近发现非常多的朋友,到了真正完全不能用时,才考虑如何逃生,一顿狂问“没有Flash了怎么播放RTMP”,“该选HTTP-FLV还是WebRTC 用HTTP-FLV还是HLS? 答案是: 看你的业务的延迟要求,2-5秒用HTTP-FLV,5-10秒用HLS。 如果是替代RTMP,一般来说要用HTTP-FLV,因为RTMP延迟也是3秒左右。 看业务对平台的要求,跨平台要求很强就用HLS,比如要在PC和移动端浏览器中都能播放那就要选HLS了。 所谓延迟,就是推流和播放器的延迟,可以用OBS抓一个网页的秒表,然后播放器上观看,对比这两个时钟的差异,就是延迟了。 HLS是否就不能做3延迟呢? 答案是:RTMP、HTTP-FLV和HLS一起用。 最好的替代场景是这样的: PC浏览器,延迟有要求的用HTTP-FLV延迟没要求的用HLS。

    2.1K20编辑于 2022-09-09
  • 来自专栏小明说Java

    Vue3快速入门——表格数据渲染延迟问题

    前言Vue3作为Vue.js的最新版本,带来了许多新特性和性能改进。然而,在实际开发中,我们可能会遇到一些看似不起眼的问题,比如表格数据渲染延迟,想必第一次使用VUE的同学应该会遇到吧。 本文将通过一个案例,详细讲解如何在Vue3中解决这个问题。案例假设我们有一个简单的表格,用于展示商品分类信息。每个商品分类都有一个的分类、状态、时间和标题。 我们的目标是使用Vue3将商品分类数据动态渲染到表格中。问题描述当我们首次加载页面时,表格中的数据并没有立即渲染出来,而是显示为原始的{{ item.category }}插值表达式。 item.state }} {{ item.title }} 问题分析这个问题通常是由于数据请求和处理有一定的延迟 总结本文通过使用Vue3的v-text指令和响应式变量,将数据与标签属性绑定,渲染未完成不加载数据,这样就不会看到奇怪的插值表达式,可以有效地解决表格数据渲染延迟的问题。

    1.3K20编辑于 2024-04-28
  • 来自专栏SRS开源服务器

    没有Flash如何做直播?

    HTTP-FLV还是HLS? 答案是: 看你的业务的延迟要求,2-5秒用HTTP-FLV,5-10秒用HLS。如果是替代RTMP,一般来说要用HTTP-FLV,因为RTMP延迟也是3秒左右。 所谓延迟,就是推流和播放器的延迟,可以用OBS抓一个网页的秒表,然后播放器上观看,对比这两个时钟的差异,就是延迟了。 HLS是否就不能做3延迟呢? 如果对延迟有一定的要求,那么就不合适,所以还不能这么武断的全部选择HLS。 用HTTP-FLV还是WebRTC? 答案是:HTTP-FLV。 WebRTC是做通信的,不是用来做直播。 现在云服务也开始推出WebRTC直播服务,当然是可以用的,问题是云服务也支持HTTP-FLV,为什么不选择更通用的方案?除非延迟要求非常低,比如1秒之内的延迟。 答案是:RTMP、HTTP-FLV和HLS一起用。 最好的替代场景是这样的: PC浏览器,延迟有要求的用HTTP-FLV延迟没要求的用HLS。 移动端浏览器,用HLS,兼容性比较好,几乎都支持。

    1.8K50编辑于 2022-03-18
  • 来自专栏海向

    RabbitMQ 延迟队列,消息延迟推送

    目录 应用场景 消息延迟推送的实现 测试结果 ---- 应用场景 目前常见的应用软件都有消息的延迟推送的影子,应用也极为广泛,例如: 淘宝七天自动确认收货。 这种解决方案相较于消息的延迟推送性能较低,因为我们知道 redis 都是存储于内存中,我们遇到恶意下单或者刷单的将会给内存带来巨大压力。 消息延迟推送的实现 在 RabbitMQ 3.6.x 之前我们一般采用死信队列+TTL过期时间来实现延迟队列,我们这里不做过多介绍,可以参考之前文章来了解:TTL、死信队列 在 RabbitMQ 3.6 .x 开始,RabbitMQ 官方提供了延迟队列的插件,可以下载放置到 RabbitMQ 根目录下的 plugins 下。 延迟队列插件下载 ? 首先我们创建交换机和消息队列,application.properties 中配置与上一篇文章相同。

    2.7K10发布于 2019-09-23
  • 来自专栏玩转 Spring Cloud

    Rabbitmq 通过延迟插件实现延迟队列

    Rabbitmq 通过延迟插件实现延迟队列 文章目录 DLX+TTL 存在时序问题 安装延迟插件 下载地址 安装 Java 代码实现 DLX+TTL 存在时序问题 由于队列先入先出的特性 通过死信队列(DLX)和给每条消息设置过期时间(TTL)来实现延迟队列, 会存在时序问题. 可以通过给 Rabbitmq 安装延迟插件来实现延迟队列功能 安装延迟插件 下载地址 rabbitmq-delayed-message-exchange 插件可到这里下载: RabbitMQ 延迟插件 RabbitAdmin.class); TopicExchange exchange = new TopicExchange("exchange.delay"); // 交换器设置延迟属性 class MsgListener { @RabbitHandler public void msgHandler(String msg) { log.info("接收到的延迟消息

    1.7K20编辑于 2022-05-05
  • 来自专栏完美Excel

    暂停或延迟Excel VBA运行的3种方法

    虽然Excel VBA没有用于暂停代码运行的内置功能,但可以使用Application.Wait或Windows API的Sleep函数等方法来引入延迟。 2.延迟代码运行使得能够与外部事件(如数据库更新或web服务响应)进行协调,从而确保无缝集成和实时数据处理。 3.VBA中的暂停使得有时间在继续操作之前查看信息或做出决定。 4.在批处理操作之间延迟代码运行可以有效地处理大型数据集或对多个对象执行操作,同时控制资源消耗 5.在VBA代码中引入延迟有助于创建一个更可控的操作序列,允许脚本逐步执行或以特定的间隔执行,从而增强整个脚本代码的逻辑和精确度 7.延迟VBA脚本允许按预定的时间或间隔安排特定的操作或事件,从而自动化任务并提高生产效率。 End Sub 小结 上述3种方法都是暂停或延迟Excel VBA代码脚本的常用方法。

    7.8K30编辑于 2023-08-30
  • 来自专栏四楼没电梯

    SRS(Simple Realtime Server) 开源直播/双录服务器

    核心特性: 支持主流直播协议:RTMP、HTTP-FLV、HLS、WebRTC、SRT、GB28181 ⚡ 支持亚秒级延迟:特别是 WebRTC 和 HTTP-FLV 模式下 跨平台编译:支持 Linux 、浏览器直接播放 WebRTC / HTTP-FLV,支持浏览器播放无需 Flash 视频监控转发 RTSP 拉流转 HTTP-FLV、WebRTC 支持拉流并转封装、输出为 HTTP-FLV / WebRTC | D[低延迟播放器] B -->|HLS| E[m3u8 播放器] B -->|SRT/RTMP Relay| F[边缘/转发服务] G[后端控制系统] -->|API调用| B ⚙️ 四 ICE 失败 } http_remux { enabled on; } hls { enabled on; } } 3. 考察维度 SRS 支持情况 多协议兼容 ✅ 全面支持 RTMP / HLS / WebRTC 等 低延迟性能 ✅ WebRTC/FLV 延迟在 300ms 内 部署复杂度 单机简单,集群需配置较多 社区活跃度

    2K10编辑于 2025-07-11
  • 来自专栏腾讯IMWeb前端团队

    理论 | 使用flv.js做直播

    常见直播协议延迟与性能数据以下数据只做对比参考 传输协议 播放器 延迟 内存 CPU RTMP Flash 1s 430M 11% HTTP-FLV Video 1s 310M 4.4% HLS Video 20s 205M 3% 在支持浏览器的协议里,延迟排序是: RTMP = HTTP-FLV = WebSocket-FLV < HLS 而性能排序恰好相反: RTMP > HTTP-FLV = WebSocket-FLV 可以看出在浏览器里做直播,使用HTTP-FLV协议是不错的,性能优于RTMP+Flash,延迟可以做到和RTMP+Flash一样甚至更好。 不想用Flash兼容也可以用HLS,但是PC端只有Safari支持HLS 移动端 优先使用 HTTP-FLV,因为它延迟小,支持HTTP-FLV的设备性能运行 flv.js 足够了。 按照上面的教程运行起来的直播延迟大概有3秒,经过优化可以到1秒。

    4.4K10编辑于 2022-06-29
  • 来自专栏IMWeb前端团队

    使用flv.js做直播

    常见直播协议延迟与性能数据以下数据只做对比参考 传输协议 播放器 延迟 内存 CPU RTMP Flash 1s 430M 11% HTTP-FLV Video 1s 310M 4.4% HLS Video 20s 205M 3% 在支持浏览器的协议里,延迟排序是: RTMP = HTTP-FLV = WebSocket-FLV < HLS 而性能排序恰好相反: RTMP > HTTP-FLV = 可以看出在浏览器里做直播,使用HTTP-FLV协议是不错的,性能优于RTMP+Flash,延迟可以做到和RTMP+Flash一样甚至更好。 不想用Flash兼容也可以用HLS,但是PC端只有Safari支持HLS移动端 优先使用 HTTP-FLV,因为它延迟小,支持HTTP-FLV的设备性能运行 flv.js 足够了。 按照上面的教程运行起来的直播延迟大概有3秒,经过优化可以到1秒。

    14.3K105发布于 2017-12-29
  • 来自专栏java大数据

    事件延迟

    事件延迟 事件延迟(项目心得) 马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。                 if (data) {                     $("#userevaluation").html(data);                     $(function(){ 3. 第3个div,只需要通过上下的padding就可以不紧贴了。通过这种方法,就可以定位在任何地方。注意:min-width: 1129px;是需要的。

    1.4K20发布于 2020-12-23
  • 来自专栏linux驱动个人学习

    延迟绑定

    延迟绑定实现 在动态链接下,程序模块之间包含了大量的函数引用(全局变量往往比较少,因为大量的全局变量会导致模块之间耦合度变大),所以在程序开始执行前,动态链接会耗费不少时间用于解决模块之间的函数引用的符号查找以及重定位 所以ELF采用了一种叫做延迟绑定(Lazy Binding)的做法,基本的思想就是当函数第一次被用到时才进行绑定(符号査找、重定位等),如果没有用到则不进行绑定。 PLT为了实现延迟绑定,在这个过程中间又增加了一层间接跳转。调用函数并不直接通过GOT跳转,而是通过一个叫做PLT项的结构来进行跳转。 如果链接器在初始化阶段已经初始化该项,并且将bar()的地址填入该项,那么这个跳转指令的结果就是我们所期望的,跳转到bar(0,实现函数正确调用但是为了实现延迟绑定,链接器在初始化阶段并没有将bar() PLT的结构也与我们示例中的PLT稍有不同,为了减少代码的重复,ELF把上面的例子中的最后两条指令放在PLT中的第一项,并且规定每一项是16个字节,刚好用来存放3条指令,实际上的PLT的基本结构如图所示

    1.5K20发布于 2019-05-25
  • 来自专栏AI

    延迟优化

    本指南涵盖了一系列核心原则,您可以应用这些原则来改善在各种LLM相关用例中的延迟。 生成更少的令牌在使用LLM时,生成令牌几乎总是延迟最高的步骤:作为一般性的经验法则,减少50%的输出令牌可能会减少约50%的延迟3. 使用更少的输入令牌尽管减少输入令牌的数量确实会导致较低的延迟,但这通常不是一个显著的因素——减少50%的提示可能只会导致1-5%的延迟改善。 通过更快地处理大多数字段而平均降低的延迟。由于执行两个请求而平均增加的延迟,而不是一个请求。结论会因情况而异,做出决定的最佳方式是通过在实际示例中进行测试。 结论您现在应该熟悉了一组用于改善LLM应用程序延迟的核心原则。在探索这些技术时,始终要记住测量延迟来源,并测试您尝试的每种解决方案的影响。现在去让您的应用程序起飞吧!

    85110编辑于 2024-05-13
  • 来自专栏JavaEdge

    为什么kafka延迟比rocketmq延迟

    说kafka延迟比rocketmq延迟高 是有一个前提的 就是topic较多的时候 这个和这2个MQ的数据存储结构有关系的 在topic少的时候延迟基本一致。 它的数据结构如下 其中topic是逻辑概念,分区对应就是一个物理文件夹: 所以在topic比较多时,分区文件数量会非常庞大 磁盘顺序读效率还不如随机读效率,则会在topic比较多时 磁盘顺序读就蜕变为随机读,延迟也就高了 rockertmq 就诞生了 它的数据存储结构 对此做了优化 日志目录只有一个 commit log ,结构如下: 出发点不一样,kafka定位就是处理日志和大数据 在这些业务领域,topic不会太多,延迟问题自然也就没有 而rocketmq有pull、push两种模式 (虽然这个push模式是假push),push模式延迟肯定是比pull模式延迟低。 rabbit 的push模式 是真的push 所以 延迟最低的就是兔子。 兔子不支持分布式,只支持主从模式 本身设计就是小而美的单机版。cpu消耗比kafka之类低多了。

    1.5K30编辑于 2022-11-20
  • 来自专栏全栈程序员必看

    rocketmq延迟队列原理_rocketmq延迟队列原理

    在java的延迟队列中,无法支持集群的延迟。 Redis可以做到对应的延迟功能,但是自己封装毕竟局限于业务。而且封装也需要耗费一定时间。 RocketMQ将延时队列的延时延时时间分为18个级别 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 分别对应下面的延迟时间,在使用时,直接传递 level messageDelayLevel=1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h 当然这个时间可以自己修改,如果不维护 则按照默认的 delay_test_group"); producer.setNamesrvAddr("127.0.0.1:9876"); producer.start(); try { for (int i = 0; i < 3; 如果到了延迟时间,就发送消息 否则就继续进行延迟返送。 总结,RocketMQ的延迟消息,使用起来方便,而且解耦代码,但是配置的延迟时间不够灵活。

    2.6K20编辑于 2022-11-17
领券