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

    一文说透RTMP、RTSP、RTP、HLS、MPEG-DASH

    直播服务 应用场景:在直播场景中,RTP协议为高质量的音视频传输提供了保障,RTP能确保观众能够实时观看到流畅、清晰的视频内容。 总结RTMP、RTSP、RTP、HLS、DASH这些协议在流媒体传输领域各有特点,但也有一些共同点。分别在实时视频传输中各有优势,选择哪种协议取决于具体的应用场景、网络条件以及设备兼容性等因素。 例如,RTMP主要使用TCP协议进行可靠的数据传输,而RTP则既可以基于UDP也可以基于TCP进行传输。 4. RTMP、RTSP、RTP、HLS、DASH这些协议在服务于流媒体传输方面有着共同的目标和追求,同时也在各自擅长的领域发挥着重要作用。 推流、RTMP/RTSP直播播放(支持RTSP|RTMP H.265,Enhanced RTMP H.265)、GB28181设备接入、推送端播放端实时录像、多路流媒体转发(RTSP转RTMPRTMP

    14.8K20编辑于 2024-09-24
  • SRS:webrtc_to_rtmp详解

    git地址:webrtcsrs关于rtmp:srs:webrtcwebrtc传输协议:WebRTC学习 实时数据传输网络协议详解(浏览器协议栈、WebRTC传输协议分析)RTP协议介绍:rtprtmpRTMP ,怎么从rtc_server到了rtmp_server,数据格式是怎么转换的,如果从rtp到了flv,有了数据流向的通道,然后就只要梳理,在数据的流转过程中,在什么时间节点进行的数据格式转换,如何转换的 进行转码处理,转码为AACsrs_app_rtc_source.cpp => packet_video(pkt) //如果是视频包,进行视频包处理音频包处理处理音频包时,主要做了两部分工作,一部分是 opus转为 aac,另一个部分是rtp转为flv,其中转换是使用的ffmpeg api,如果没有对应的了解,还是得需要看看的。 SrsRtcFrameBuilder::transcode_audio(SrsRtpPacket *pkt)中比较关键的一部分,为opus转为aac的关键代码。

    86140编辑于 2024-07-31
  • 来自专栏TSINGSEE青犀视频

    rtp推流如何使用ffmpeg配置rtp打包模式?

    关于使用rtp推流,TSINGSEE青犀视频团队实际已经研发了很长时间,其中也碰到了不少问题,比如RTP推流客户端无法解析播放,或者遇到不同的报错,但这些目前都已经有了比较完善的解决办法。 在使用RTP推流时,默认ffmpeg使用的打包模式是packetization-mode=1,本文我们和大家分享另一个比较实用的技巧,就是使用ffmpeg配置rtp打包模式。 如何修改打包模式? 关于RTP打包模式的说明如下: 目前ffmpeg默认使用的是1: Not interleaved 模式,针对客户的需要,服务端不支持STAP-A的组包模式,需要每个包单独发送,所以需要配置Single 配置完成后,还有个问题,需要配置pkt size,否则I帧无法完整发送,默认pkt size是1024个字节,而一般I帧都大于1024个字节,导致I帧发送不完整,图像传输失败,需要配置pkt size,在rtp url后面加上如下所示内容: rtp://192.168.99.138:6666?

    2.9K30发布于 2021-02-25
  • 来自专栏这里只有VxWorks

    cmd - RTP

    -> cmd [vxWorks *]# rtp Display process list [vxWorks *]# rtp [rtpId or Name] Display summary information about processes in memory [vxWorks *]# rtp exec <filename> Execute a RTP file named <filename> [vxWorks -X : (Vx7) do not return the exit code of foreground RTP, just return 0 -- : mark the end of "rtp exec " options [vxWorks *]# rtp attach Display the attachment list [vxWorks *]# rtp attach [rtpId or Name] *]# rtp detach Detache the shell session from the current memory context [vxWorks *]# rtp foreground

    1.7K20编辑于 2023-02-26
  • 来自专栏全栈程序员必看

    RTP 协议

    报文由两个部分构成--RTP报头和RTP的负载: RTP报文由两部分组成:报头和有效载荷。 RTP报头格式如图6.7所示,其中: 1.V:RTP协议的版本号,占2位,当前协议版本号为2。 2. 流媒体服务器的rtp流。 RTP协议的使用: RTP的使用实例之一如上图: 上面是某省IPTV2.0早期的一个数据包的情况。从包中可以看出RTP是怎么和RTSP配合一起使用的。 紧跟其后412包就是一个mpeg 的PES包,它是有由rtp来承载的TS来形成。从在420包中就可以更加清析的看出这个RTP流的情况。

    1.1K30编辑于 2022-09-13
  • 来自专栏这里只有VxWorks

    RTP是啥?

    RTP是啥? VxWorks的RTP,全称是Real-Time Process,可以翻译为实时进程。 在6.0之前,VxWorks使用的是single的内存空间,操作系统与应用程序是不分离的。 从6.0开始,VxWorks引入了RTP。这个RTP在许多地方都与其它操作系统的进程差不多,例如对POSIX的兼容性。 所以了解UNIX/Linux进程模型的程序猿,很快就可以熟悉RTP的创建、执行或者终止。 ? 不过RTP是专门为RTOS设计的,为了满足实时性的需求,它与其它系统的进程还是有很多不同的。 有了RTP,就可以在用户模式下执行应用程序和操作系统的其它功能,这些功能在内核和应用程序之间具有清晰的划分。这种体系结构通常被称为进程模型。 同时,6.x与5.5保持了高度的兼容。 关于RTP的具体信息,咱们后文慢慢道来。 这正是: VX系统与时进,内核应用若比邻。 历史项目好兼容,不损实时高性能。

    3K20发布于 2019-07-10
  • 来自专栏全栈程序员必看

    RTP协议分析

    RTP概述 1.1. RTP是什么 RTP全名是Real-time Transport Protocol(实时传输协议)。 RTP实现者在发送RTP数据时,需先将数据封装成RTP包,而在接收到RTP数据包,需要将数据从RTP包中提取出来。 2.2. RTP的封装 一个协议的封装是为了满足协议的功能需求的。 SR分组的主要内容有:相应的RTP流的SSRC,RTP流中最新产生的RTP分组的时间戳和NTP,RTP流包含的分组数,RTP流包含的字节数。SR包的封装如图3所示。 RTP Timestamp:与NTP时间戳对应,与RTP数据包中的RTP时间戳具有相同的单位和随机初始值。 RTP的会话过程 当应用程序建立一个RTP会话时,应用程序将确定一对目的传输地址。

    1.6K40编辑于 2022-08-03
  • 来自专栏呱牛笔记

    实现一个接收多路RTP流,输出一路RTMP流的简单MCU

    做转码服务的原型时,看了看MCU的实现,考虑到如果不做转码,可以将多路rtp流直接合成为一路rtmp流输出,这样就相当于实现了多人连麦,并将多人连麦的视频转发直播了,所以做了这个简单的原型实现! DEMO只实现了接收一路rtp流,输出一路rtmp流! 同转码服务的类图设计: 基础库是ZLMediaKit,确实很方便!  baseline  -maxrate 600k -minrate 600k -g 20 -keyint_min 20  -sc_threshold 0 -an -f rtp rtp://11.12.112.42 shared_from_this(); auto &weak1 = inputInfo; if (inputInfo->_mediaMuxer == NULL) {     //使用rtmp 流转发给mediamuxer,用于混合成rtmp流         weak1->_videoTrack->inputFrame(frame); }); inputInfo

    1.5K20编辑于 2023-05-02
  • 来自专栏这里只有VxWorks

    RTP之调度策略

    在《Task之调度策略》里介绍了VxWorks的主要调度策略,而有了RTP之后,系统又是如何调度的呢? 其实非常非常简单:RTP不参与调度,VxWorks还是使用之前的调度策略,即所有Task基于优先级抢占,以及默认关闭的时间片轮转。 如果你不打算使用pthread,现在就可以跳到文末点赞了 ----------分割线--------- 不过,为了更好的支持POSIX标准,VxWorks在RTP里引入了POSIX的Thread调度策略 事实上,要想在RTP里使用POSIX的Thread,必须要包含这种调度策略:INCLUDE_POSIX_PTHREAD_SCHEDULER ? 从名字上就可以看出来,这种策略只对RTP里的Thread有效。而Kernel里的Task和Thread,以及RTP里的Task,用的都是VxWorks的传统策略 ?

    1.8K10发布于 2019-09-30
  • 来自专栏TSINGSEE青犀视频

    EasyCVR平台设备在线,视频一直加载无法播放是什么原因?

    平台也可支持多协议接入,包括市场主流标准协议国标GB/T28181、RTMP、RTSP/Onvif协议等,以及厂家私有协议,如海康SDK、大华SDK、海康Ehome等。 2)抓包之后进行分析,发现设备有传输RTP流,如图:3)对RTP流进行分析:4)如上图所示,我们发现RTP的流全部都是乱序,将RTP转为raw格式保存到桌面,在VLC播放器里查看:5)VLC播放显示视频流已丢弃 ,结合抓包结果RTP流有乱序现象,所以判断和用户的网络有关。 6)经用户排查,原因为用户的网络带宽不足,导致RTP流乱序。用户调整网络后,视频已经正常播放了。互联网等新兴技术的发展,推动着安防行业向集成化、高清化、智能化、网格化方向升级。

    53520编辑于 2022-08-23
  • 来自专栏这里只有VxWorks

    RTP之Hook

    Task可以注册Hook,RTP也可以,只需在VIP中包含组件INCLUDE_RTP_HOOKS。 define RTP_GLOBAL_SYMBOLS 0x01 /* register global symbols for RTP */ #define RTP_LOCAL_SYMBOLS 0x02 /* idem for local symbols */ #define RTP_ALL_SYMBOLS (RTP_GLOBAL_SYMBOLS | RTP_LOCAL_SYMBOLS ) #define RTP_DEBUG 0x10 /* set RTP in debug mode when created */ #define RTP_BUFFER_VAL_OFF 例如RTP A正在创建RTP B,这种Hook是在RTP A的上下文里执行。Hook创建的对象,属于RTP A。

    71910编辑于 2022-06-30
  • 来自专栏machh的专栏

    RTP over TCP

    但是我们如果在TCP传输协议上承载RTSP/RTP将解决这些问题。 1. RTSP/RTP的控制命令和数据都通过一个端口,即RTSP的端口(默认为554),进行交互。 2. 但是,使用TCP传输协议承载RTSP/RTP需要花更多的功夫。 1. 由于二元交织,会使得RTP包封包和解包的过程变得更加复杂。 2. 接下来让我们来了解一下怎么使用TCP承载RTSP/RTP。 TCP承载RTSP/RTP 当使用TCP协议承载RTSP/RTP时,所有的命令和媒体数据都将通过RTSP端口,通常是554,进行发送。 下面是一个rtsp客户端请求 通过rtp over tcp方式建立连接报文; SETUP之后,RTP数据将通过用来发送RTSP命令的TCP Socket进行发送。 data : 数据 - ,比如说RTP包,总长度与上面的数据长度相同 RTP,RTCP数据和RTSP数据共享TCP数据通道,所以必须有一个标识来区别三种数据。

    2.5K10编辑于 2022-06-10
  • 来自专栏全栈程序员必看

    rtp协议详解

    每个CSRC标识了包含在RTP报文有效载荷中的所有提供信源。 提供信源用来标识对一个RTP混合器产生的新包有贡献的所有RTP包的源。 二 rtp码流 rtp载荷h264媒体流:rtp协议头和h264码流 rtp头后是rtp载荷,rtp载荷第一个字节格式和NALU头一样。 RTP序号必须符合NAL单元的解码顺序。这种情况下,NAL单元的第一字节和RTP荷载头第一个字节重合。如上图所示。 RTP荷载中。 相同NAL单元的分片必须使用递增的RTP序号连续顺序发送(第一和最后分片之间没有其他的RTP包)。同时,NAL单元必须按照RTP顺序号的顺序装配。STAPs,MTAPs不可以被分片。

    2.6K20编辑于 2022-09-07
  • 来自专栏这里只有VxWorks

    RTP之COMP

    单机模式的Message Channel基于COMP实现,其速度略慢于Message Queue,但具有显著的优势(应用程序的可移植性,以供多节点Message Channel使用等),支持Kernel/RTP Message Queue 面向连接 非面向连接 双向 单向 Message长度可变 Message长度固定 Message数量无限制 Message数量固定 位置透明 Public Object支持RTP

    85320编辑于 2022-12-05
  • 来自专栏全栈程序员必看

    RTP协议简介

    RTP概述 1.1. RTP是什么 RTP全名是Real-time Transport Protocol(实时传输协议)。 RTP实现者在发送RTP数据时,需先将数据封装成RTP包,而在接收到RTP数据包,需要将数据从RTP包中提取出来。 2.2. RTP的封装 一个协议的封装是为了满足协议的功能需求的。 SR分组的主要内容有:相应的RTP流的SSRC,RTP流中最新产生的RTP分组的时间戳和NTP,RTP流包含的分组数,RTP流包含的字节数。SR包的封装如图3所示。 RTP Timestamp:与NTP时间戳对应,与RTP数据包中的RTP时间戳具有相同的单位和随机初始值。 RTP的会话过程 当应用程序建立一个RTP会话时,应用程序将确定一对目的传输地址。

    2.2K21编辑于 2022-09-13
  • 来自专栏全栈程序员必看

    RTP协议–图文解释

    一、什么是RTP 数据传输协议RTP,用于实时传输数据。RTP报文由两部分组成:报头和有效载荷。 二、RTP的会话过程 当应用程序建立一个RTP会话时,应用程序将确定一对目的传输地址。 目的传输地址由一个网络地址和一对端口组成,有两个端口:一个给RTP包,一个给RTCP包,使得RTP/RTCP数据能够正确发送。 2)RTPRTP 数据包发往UDP端口对中偶数端口;RTCP将RTCP控制包发往UDP端口对中的接收端口。 三、RTP Header解析 前12字节是固定的,CSRC可以有多个或者0个。 每个CSRC标识了包含在RTP报文有效载荷中的所有提供信源。 提供信源用来标识对一个RTP混合器产生的新包有贡献的所有RTP包的源。 载荷H264码流:红色RTP协议头,黄色H264码流 RTP头后是RTP载荷,RTP载荷第一个字节格式跟NALU头一样: F和NRI也跟NALU头一样,只有Type有些不一样:拓展24 – 31 0

    4.7K20编辑于 2022-09-13
  • 来自专栏这里只有VxWorks

    RTP之默认的SystemCall

    欢迎关注VxWorks567 用户模式与内核模式使用不同的指令集和MMU配置,因此在RTP中不能直接访问内核的资源,包括内核函数、内核数据,以及driver等。 如果迫不得已,RTP中必须要使用内核的某些机制,怎么解决?可以在RTP中重写相应功能,或者通过System Call! System Call对使用者是透明的,它的大致执行流程如下:RTP里调用System Call封装的API时,系统执行一个特定于体系结构的Trap操作,将CPU从用户模式更改为内核模式;完成Trap请求的操作后 详情如下 RTP函数(参数数量) 对应的内核操作 _close(1) _closeSc _creat(2) _creatSc _edrErrorInject(6) _edrErrorInjectSc _

    1.2K10发布于 2020-09-23
  • 来自专栏关键帧Keyframe

    音视频面试题集锦 2022.10

    这次的面试题是来自星球里一位音视频方向的应届毕业生群友在一次面试中被问到的问题: 1)RTMP 和 RTSP 有什么区别?使用 RTSP 是基于 UDP 传输的话,我们怎样进行乱序重排? RTMP 和 RTSP 的区别: RTMP 使用 TCP 作为传输层协议,能保证不丢包和接收顺序,传输质量高。 RTSP 使用 RTP 格式协议和 RTCP 控制协议,命令与数据分离。 RTSP 中的 RTP 格式头中有 SequenceNumber 字段,可以通过这个序号实现排序。 2)假如给你一堆乱序的 RTP 包,应该怎样实现乱序重排? 可以利用接收 RTP 包缓冲队列使用包的序号进行排序。 在丢包情况下为保证传输质量会引入 NACK 和 FEC 机制。 YUV 数据做转换是怎样实现的,比如说 YUV422 转为 YUV420? YUV 格式是传输视频常用的格式,因为相对于 RGB 格式它可以节省更多空间。

    1.9K40编辑于 2022-11-29
  • 来自专栏RTMP推送

    一文看懂 WebTransport、SRT、WebRTC、RTSP、RTMP、HTTP-FLV、WS-FLV、GB28181协议生态的时代分工与工程落地

    这就是为什么: SRT 能做到 比 TCP 更稳 也能做到 比 WebRTC 更可控 延迟比 RTMP 更低,但不可能比纯 UDP/RTP 更低(因为有重传) SRT 规范中其他工程关键能力根据最新 这些能力决定了 SRT 在“弱网络、高丢包”环境中的工程价值远高于传统 RTP/RTMPRTP 相关的媒体规范非常庞大,其中与摄像头最相关的是:① RTP 基础协议 RFC 3550:RTP(实时传输协议) 90kHz 时钟(视频) Sequence Number Timestamp ② 低延迟传输 RTP 直接基于 UDP 无队头阻塞 无额外流控 由 SDK 自行决定 JitterBuffer 长度 延迟可以远低于 RTMP/HTTP-FLV。 → InternalTimeBaseGB28181(PS)换算自 PTS/DTSPES Timestamp → InternalTimeBaseSDK 内部全部转为统一时间线,保证: 跨协议平滑切换

    1.8K50编辑于 2025-11-17
  • 来自专栏RTSP/RTMP直播相关

    Android平台音视频推送选RTMP还是GB28181?

    好多开发者可能会疑惑,走RTMP怎么可能低延迟?网上看到的RTMP推拉流延迟,总归要2-3秒起,如果是自己实现框架,RTMP推拉流逻辑自己实现的话,延迟确实可以控制在毫秒级,这个已无需赘述。 随着无纸化会议、智慧教室、智能化硬件产品的普及,RTMP的技术方案发展一度非常好,有些无人机或智能机器人,都可以自带推送RTMP流数据,配合大牛直播SDK的RTMP低延迟播放器模块,可以实现毫秒级的技术体验 图片我们实现demo的时候,RTMP推送和GB28181都放到一起了,也就是说,可以同时使用RTMP推送和GB28181设备接入,也可以单独使用。 技术对比RTMP推送图片 RTMP采用的是TCP传输,采用全自研框架,易于扩展,自适应算法让延迟更低、采集编码传输效率更高。延迟配合我们的播放器,轻松实现毫秒级延迟。 大家比较担心延迟问题,如果GB28181平台侧走RTMP或者webrtc的话,延迟也不大,和RTMP方案一样,整体都可以做到毫秒级。

    68740编辑于 2023-05-26
领券