
RTSP、RTMP、RTP
文章平均质量分 76
wishfly
这个作者很懒,什么都没留下…
展开
-
通过RTMP play分析FLV格式详解
最近做了一个rtmp中转服务程序,通过实践,熟悉rtmp play和push中各类格式,这里总结一下。程序github地址: https://github.com/runner365/rtmp_relayrtmp play接收报文分析第一帧收到的报文: 1) 0x46 4c 56:可参考文后:参考一字符FLV头2) 0x01 05转载 2017-07-17 17:46:51 · 1052 阅读 · 0 评论 -
ffmpeg+nginx建立rtmp服务器,播放摄像头流
好文章,http://blog.fs-Linux.org/?p=137先转载,然后再动手实践看看live555可以建立rtsp这个大伙都知道,ffserver+ffmpeg也可以建立一个实时rtsp服务,那么rtmp呢?好多人会首选red5,al'right,这里用的是nginx,下面记录一下使用nginx建立rtmp的全过程首先下载一份nginx的rtmp的module转载 2017-07-12 17:11:45 · 1466 阅读 · 1 评论 -
Linux下几种RTP协议实现的比较和JRTPLIB编程讲解
http://blog.chinaunix.net/uid-22670933-id-1771676.html转载 2017-06-22 17:46:44 · 900 阅读 · 0 评论 -
RTP中时间戳的作用
1、调整语序 时间戳字段是RTP首部中说明数据包时间的同步信息,是数据能以正确的时间顺序恢复的关键。时间戳的值给出了分组中数据的第一个字节的采样 时间(Sampling Instant),要求发送方时间戳的时钟是连续、单调增长的,即使在没有数据输入或发送数据时也是如此。在静默时,发送方不必发送数据,保持时间戳的增 长,在接收端,由于接收到的数据分组的序号没有丢失,就知道没有发生数据丢失,转载 2017-06-22 17:45:29 · 1172 阅读 · 0 评论 -
关于RTP时间戳及多媒体通信同步的问题/H264关于RTP协议的实现
RTP协议包头的格式:10~16 Bit为PT域,指的就是负载类型(PayLoad),负载类型定义了RTP负载的格式,协议原文说该域由具体应用决定其解释。目前,负载类型主要用来告诉接收端(或者播放器)传输的是哪种类型的媒体(例如G.729,H.264,MPEG-4等),这样接收端(或者播放器)才知道了数据流的格式,才会调用适当的编解码器去解码或者播放,这就是负载类型的主要作用。转载 2017-06-22 17:41:42 · 525 阅读 · 0 评论 -
RTP协议全解析(H264码流和PS流)
写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析,其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。原创不易,转载请附上链接,谢谢http://blog.youkuaiyun.com/chen495810242/article/details/392073051、RT转载 2017-06-21 17:29:54 · 393 阅读 · 0 评论 -
udp丢包 又是udp丢包
http://blog.youkuaiyun.com/pi9nc/article/details/17165171http://www.cnblogs.com/my_life/articles/5363527.htmlhttp://blog.youkuaiyun.com/chen495810242/article/details/37593661转载 2017-06-21 17:28:41 · 519 阅读 · 0 评论 -
Socket粘包问题
这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接 Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种方转载 2017-06-21 16:56:08 · 314 阅读 · 0 评论 -
使用librtmp库发布直播流
修改源码原C++改为CUnix下编译通过(CentOS 6.5)下载文件会有VC6和Unix两个文件夹///////////////////////////////////////////////////////////////////////rtmp协议与flv封包格式基本相同(本来就是一家公司的嘛)将flv文件解析出类型,时间戳,数据大小,数据区转载 2017-06-30 15:26:21 · 6894 阅读 · 1 评论 -
RTMPdump(libRTMP) 源代码分析 9: 接收消息(Message)(接收视音频数据)
RTMPdump(libRTMP) 源代码分析 9: 接收消息(Message)(接收视音频数据)http://blog.youkuaiyun.com/leixiaohua1020/article/details/12971635转载 2017-06-27 17:46:17 · 1025 阅读 · 0 评论 -
多媒体文件格式之TS
TS流是MPEG-2标准中定义一种用于直播的码流结构,具有很好的容错能力。所有跟TS相关的标准可以从ISO/IEC_13818-1中找到。通常TS流的后缀是.ts、.mpg或者.mpeg,多数播放器直接支持这种格式的播放。0. 学习多媒体容器格式的目的主要是为了回答以下问题:该容器中数据是如何组织的?该容器包含哪些编码格式的数据?这些数据是如何存储的?该容器包含哪些元数转载 2017-06-20 18:00:25 · 793 阅读 · 0 评论 -
向socket一次写多少数据合适?
[背景知识]MTU: Maxitum Transmission Unit 最大传输单元MSS: Maxitum Segment Size 最大分段大小PPPoE: PPP Over Ethernet(在以太网上承载PPP协议)MTU1500字节: 以太网.1492字节: PPPoE.1472字节: ping1468字节: DHCP1430字节: VPN and转载 2017-06-19 18:17:08 · 2503 阅读 · 0 评论 -
对H264进行RTP封包原理
1. 引言 H.264/AVC 是ITU-T 视频编码专家组(VCEG)和ISO/IEC 动态图像专家组(MPEG )联合组成的联合视频组(JVT)共同努力制订的新一代视频编码标准,它最大的优势是具有很高的数据压缩比率,在同等图像质量的条件下,H.264 的压缩比是MPEG-2 的2 倍以上,是 MPEG-4的1.5~2 倍。同时,采用视频编码层(VCL)和网络提取层(NAL )的转载 2017-06-19 18:15:55 · 346 阅读 · 0 评论 -
自己动手写RTP服务器——用RTP协议传输TS流
1.自己动手写RTP服务器——关于RTP协议http://www.cnblogs.com/lidabo/p/4160138.html2.自己动手写RTP服务器——用RTP协议传输TS流http://www.cnblogs.com/lidabo/p/4160145.html3.自己动手写RTP服务器——传输所有格式的视频http://www.cnblogs转载 2017-06-19 18:14:42 · 2809 阅读 · 0 评论 -
Linux下librtmp使用及编程实战
最近想做rtmp的推流、直播的小项目,不想直接使用FFmpeg进行推流,FFmpeg进行推流特别简单,因为它已经将编码以及librtmp都集成好了,没啥意思。FFmpeg推流的例子,在雷神的博客里可以找到。这里主要是基于librmtp,结合libx264进行压缩,进行一些实验,包括三大部分:rtmp流保存flv文件推流h264推流首先是rtmp流保存/* * RTMPRe转载 2017-06-28 17:00:42 · 1171 阅读 · 0 评论 -
RTMP直播应用与延时分析
直播应用中,RTMP和HLS基本上可以覆盖所有客户端观看,HLS主要是延时比较大,RTMP主要优势在于延时低。一、应用场景低延时应用场景包括: . 互动式直播:譬如2013年大行其道的美女主播,游戏直播等等 各种主播,流媒体分发给用户观看。用户可以文字聊天和主播互动。 . 视频会议:我们要是有同事出差在外地,就用视频会议开内部会议。 其实转载 2017-07-12 17:23:23 · 1086 阅读 · 0 评论 -
如何从wireshark中获取H264码流
由于近来发现网上wireshark获取H264码流的方法都有点错误,为此研究了一下这种方法,最后发现还是可行的,能成功获取H264裸码流。借鉴的网页:https://wiki.wireshark.org/Lua http://www.lua.org/ 1.首先安装wireshark软件,这个用过的人都知道它的强大之处2.查看安装路径下是转载 2017-06-23 17:20:38 · 1404 阅读 · 0 评论 -
通过LIBRTMP发送H264和AAC
http://blog.youkuaiyun.com/jbl5501328/article/details/65628516http://www.360doc.com/content/15/0911/12/597197_498437047.shtmlhttp://nkwavelet.blog.163.com/blog/static/2277560382014102654227370转载 2017-07-07 17:45:19 · 839 阅读 · 0 评论 -
TCP、UDP over IP
T C P / I P协议族分为四层:链路层、网络层、运输层和应用层,每一层各有不同的责任。在T C P / I P中,网络层和运输层之间的区别是最为关键的:网络层( I P)提供点到点的服务,而运输层( T C P和U D P)提供端到端的服务。原创 2017-06-26 13:40:04 · 2167 阅读 · 0 评论 -
av_read_frame的过程
1.根据打开的流名称,找到相匹配的解码器结构. 从全局的AVInputFormat链表中遍历查找. RTSP --> rtspdec.c 里面的AVInputFormat定义. 2.调用AVInputFormat结构的接口read_header获取流信息. AVInputFormat定义了读取,播放,暂停等抽象接口. 在上层调用read_header,会根据解码转载 2017-07-20 11:25:34 · 1467 阅读 · 0 评论 -
rtmpdump 能用RTMP_SendPacket发送一帧数据包吗?
http://bbs.youkuaiyun.com/topics/390035200转载 2017-07-06 17:48:08 · 852 阅读 · 0 评论 -
librtmp接收flv流中提取h264码流:根据多个资料汇总
rtmpdump可以下载rtmp流并保存成flv文件。如果要对流中的音频或视频单独处理,需要根据flv协议分别提取。简单修改rtmpdump代码,增加相应功能。1 提取音频:rtmpdump程序在Download函数中循环下载:.... do {....nRead = RTMP_Read(rtmp, buffer, bufferSize);....}wh转载 2017-07-06 17:46:16 · 2499 阅读 · 2 评论 -
RTMP 协议学习总结
RTMP协议是一个互联网TCP/IP五层体系结构中应用层的协议。RTMP协议中基本的数据单元称为消息(Message)。当RTMP协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为消息块(Chunk)。1 消息消息是RTMP协议中基本的数据单元。不同种类的消息包含不同的Message Type ID,代表不同的功能。RTMP协议中一共规定了十多种消息类型,分别发挥着不转载 2017-06-27 14:21:59 · 400 阅读 · 0 评论 -
揭开RTMP播放流程的神秘面纱
http://blog.youkuaiyun.com/wishfly/article/details/52965787转载 2017-06-27 17:49:35 · 505 阅读 · 0 评论 -
视频协议学习--推流拉流都擅长的RTMP
https://www.qcloud.com/community/article/430526?fromSource=gwzcw.107781.107781.107781转载 2017-06-27 17:48:12 · 846 阅读 · 0 评论 -
通过live555实现H264 RTSP直播
前面的文章中介绍了《H264视频通过RTMP流直播》,下面将介绍一下如何将H264实时视频通过RTSP直播。 实现思路是将视频流发送给live555, 由live555来实现H264数据流直播。 视频采集模块通过FIFO队列将H264数据帧发送给live555. live555 在收到客户端的RTSP播放请求后,开始从FIFO中读取H264视频数据并通过RTSP转载 2017-07-14 17:53:45 · 1269 阅读 · 0 评论 -
Socket/TCP粘包、多包和少包, 断包
前几天,调试mina的TCP通信, 第一个协议包解析正常,第二个数据包不完整。为什么会这样吗,我们用mina这样通信框架,还会出现这种问题? 带者问题,我们先分析一下问题。 提到通信, 我们面临都通信协议,数据协议的选择。 通信协议我们可选择TCP/UDP:TCP(transport control protocol,传输控制协议)是面向连接的,面向流的,提供高可靠性服务。收发两转载 2017-06-26 10:11:24 · 953 阅读 · 0 评论 -
RTP 与RTCP 解释. 含同步时间戳 RTP协议是real-time transport protocol的缩写,被设计来传输流媒体数据,有着广泛的应用,其它相关介绍自己去看RFC,我不打算
RTP 与RTCP 解释. 含同步时间戳RTP协议是real-time transport protocol的缩写,被设计来传输流媒体数据,有着广泛的应用,其它相关介绍自己去看RFC,我不打算讨论这些无聊的概念性的东西。(1)了解RTP 可以说,RTP协议不依赖于底层协议,也就是说,它是独立的协议。而一般的,由于UDP包的快速、时实性高的特点,它通常和UDP结合在一起转载 2017-07-13 18:10:14 · 745 阅读 · 0 评论 -
librtmp协议分析---RTMP_SendPacket函数
接下来我们分析RTMP_SendPacket函数。我们先了解一下rtmp的消息格式chunk。RTMP的head组成RTMP的head在协议中的表现形式是chunk head,前面已经说到一个Message + head可以分成一个和多个chunk,为了区分这些chunk,肯定是需要一个chunk head的,具体的实现就把Message head的信息和chunk head的信转载 2017-07-04 18:00:47 · 1068 阅读 · 0 评论 -
视音频数据处理入门:UDP-RTP协议解析
http://blog.youkuaiyun.com/leixiaohua1020/article/details/50535230转载 2017-06-12 17:35:43 · 437 阅读 · 0 评论 -
将H264码流打包成RTP包
H264码流打包成RTP包的代码如下:[cpp] view plain copy#include #include #include #include #include #include //#include "mem.h" #define PACKET_BUF转载 2017-06-12 17:22:19 · 758 阅读 · 0 评论 -
H264关于RTP协议的实现
http://www.cnblogs.com/UnGeek/p/5814499.html转载 2017-06-16 18:26:58 · 335 阅读 · 0 评论 -
WebRTC实时音视频技术基础:基本架构和协议栈
概述本文主要介绍WebRTC的架构和协议栈。最基本的三角形WebRTC架构为了便于理解,我们来看一个最基本的三角形WebRTC架构(见下图): 在这个架构中,移动电话用“浏览器M”表示,笔记本电脑用“浏览器L”表示,通过Web服务器将它们连接起来。要建立一个实时媒体通讯,两台设备需要了解彼此的媒体功能,通过交换呼叫信令控制协议实现。诸如这样的信令协议转载 2017-03-09 17:28:46 · 5855 阅读 · 0 评论 -
使用FFMPEG发布RTSP流
a.上传ffmpeg.exe -i a.mp4 -vcodec libx264 -f rtsp rtsp://127.0.0.1:5050/okb.接收ffmpeg.exe -rtsp_flags listen -f rtsp -i rtsp://127.0.0.1:5050/ok b.mp4http://blog.163.com转载 2016-10-31 01:30:12 · 5165 阅读 · 0 评论 -
FFmpeg发送流媒体的命令(UDP,RTP,RTMP)
目录(?)[+]这两天研究了FFmpeg发送流媒体的命令,在此简单记录一下以作备忘。1. UDP1.1. 发送H.264裸流至组播地址注:组播地址指的范围是224.0.0.0—239.255.255.255下面命令实现了发送H.264裸流“chunwan.h264”至地址udp://233.233.233.223:6666转载 2016-10-29 23:12:43 · 1231 阅读 · 0 评论 -
A tool for pushing flv/mp4/ts/rtmp/rtsp/hls source to rtmp/rtspserver.
https://github.com/dengxiayehu/flvpusher转载 2016-10-20 11:15:39 · 578 阅读 · 0 评论 -
最简单的基于librtmp的示例:发布(FLV通过RTMP发布)
=====================================================最简单的基于libRTMP的示例系列文章列表:最简单的基于librtmp的示例:接收(RTMP保存为FLV)最简单的基于librtmp的示例:发布(FLV通过RTMP发布)最简单的基于librtmp的示例:发布H.264(H.264通过RTMP发布)转载 2016-10-29 18:38:07 · 604 阅读 · 0 评论 -
最简单的基于FFmpeg的推流器(以推送RTMP为例)
最简单的基于FFmpeg的推流器系列文章列表:《最简单的基于FFmpeg的推流器(以推送RTMP为例)》《最简单的基于FFMPEG的推流器附件:收流器》=====================================================本文记录一个最简单的基于FFmpeg的推流器(simplest ffmpeg streamer)。推流器的转载 2016-10-29 18:01:49 · 639 阅读 · 0 评论 -
揭开RTMP播放流程的神秘面纱
RTMP 是目前各种网络直播应用最核心的传输协议,也是互动直播采用最广泛的协议。 如果说流媒体服务器(Server)是网络直播的骨骼,RTMP则是网络直播的血液,可以说,没有RTMP,就没有今天如此火爆的网络直播RTMP协议是工作在传输层之上的协议,我们在播放RTMP流的时候, 点下播放按钮的那一刻到底发生了什么?本文将为你揭开RTMP播放流程的神秘面纱转载 2016-10-29 17:57:00 · 5817 阅读 · 0 评论 -
live555使用ffmpeg扩展(mp4)文件格式
live555目前只mpg、mkv、webM等少数几种音视频混合的文件,可以使用ffmpeg来扩展live555所支持的文件格式。花了一个多月的时间, 终于可以支持mp4和avi了,媒体格式支持mpeg4、h264、mp3、aac。主要是参考了live555中mpg的实现。 1.扩展mediaServer的主要步骤 1)定义一个RTSP Server类MyRTSP转载 2016-10-28 18:28:00 · 4178 阅读 · 1 评论