RTMP/HTTP-FLV/RTSP/Internet
文章平均质量分 76
郭风朴
专业IT影音开发爱好者,从最基本的影音发动机“FFmpeg”到影音大厦“VLC”均有涉猎,愿与有同样爱好的你,在IT路上一直走下去。
音视频技术和营销领域骨灰级玩客
展开
-
RTMPdump(libRTMP) 源代码分析 7: 建立一个流媒体连接 (NetStream部分 2)
函数调用结构图RTMPDump (libRTMP)的整体的函数调用结构图如下图所示。单击查看大图详细分析书接上回:RTMPdump 源代码分析 6: 建立一个流媒体连接 (NetStream部分 1)上回说到,有两个函数尤为重要:RTMP_ReadPacket()RTMP_ClientPacket()而且分析了第一个函数。现在我们再来转载 2016-07-18 16:07:57 · 733 阅读 · 0 评论 -
RTMPdump(libRTMP) 源代码分析 8: 发送消息(Message)
函数调用结构图RTMPDump (libRTMP)的整体的函数调用结构图如下图所示。单击查看大图详细分析之前写了一系列的文章介绍RTMPDump各种函数。比如怎么建立网络连接(NetConnection),怎么建立网络流(NetStream)之类的,唯独没有介绍这些发送或接收的数据,在底层到底是怎么实现的。本文就是要剖析一下其内部的实现。即这些消息(Message)到底是怎转载 2016-07-18 16:10:01 · 921 阅读 · 0 评论 -
RTMPdump(libRTMP) 源代码分析 9: 接收消息(Message)(接收视音频数据)
函数调用结构图RTMPDump (libRTMP)的整体的函数调用结构图如下图所示。单击查看大图详细分析前一篇文章分析了RTMPdump(libRTMP) 的发送消息(Message)方面的源代码:RTMPdump(libRTMP) 源代码分析 8: 发送消息(Message)在这里在研究研究接收消息(Message)的源代码,接收消息最典型的应用就是接收视音频数据了,转载 2016-07-18 16:11:06 · 1046 阅读 · 0 评论 -
RTMPdump(libRTMP) 源代码分析 10: 处理各种消息(Message)
函数调用结构图RTMPDump (libRTMP)的整体的函数调用结构图如下图所示。单击查看大图详细分析已经连续写了一系列的博客了,其实大部分内容都是去年搞RTMP研究的时候积累的经验,回顾一下过去的知识,其实RTMPdump(libRTMP)主要的功能也都分析的差不多了,现在感觉还需要一些查漏补缺。主要就是它是如何处理各种消息(Message)的这方面还没有研究的原创 2016-07-18 16:12:12 · 835 阅读 · 0 评论 -
RTMPDump源代码分析 0: 主要函数调用分析
rtmpdump 是一个用来处理 RTMP 流媒体的开源工具包,支持 rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://.也提供Android 版本。最近研究了一下它内部函数调用的关系。下面列出几个主要的函数的调用关系。RTMPDump用于下载RTMP流媒体的函数Download:用于建立网络转载 2016-07-18 19:18:57 · 531 阅读 · 0 评论 -
hls之m3u8、ts流格式详解
HLS,Http Live Streaming 是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件。1、M3U8文件 用文本方式对媒体文件进行描述,由一系列标签组成。#EXTM3U#EXT-X-TARGETDURATION:5#EXTINF:5,./0.ts#EXTINF:5,./转载 2017-02-08 09:20:08 · 18402 阅读 · 0 评论 -
rtmp抓包分析
tcpdump抓包:tcpdump host IP and tcp port 1935 -w a.pcapwhireshark分析:用wireshark打开a.pcap3握手(Handshake)一个RTMP连接以握手开始,我们先看下图:首先我们要明确的是客户端IP是192.168.1.102(我的电脑),123.183.164.23是RTM转载 2017-06-16 14:55:25 · 1948 阅读 · 0 评论 -
直播推流实现RTMP协议的一些注意事项
—— 2017-2-12 更新RTMP 协议整理了一下,包括rtmp 消息类型,rtmp 如何分块,rtmp分块例子。 用脑图整理了一下,使用Xmind 打开,URL:https://github.com/gezhaoyou/RtmpMindmaprtmp 消息类型 Paste_Image.pngrtmp 消息分块Paste_Image.png转载 2017-06-16 15:03:21 · 1218 阅读 · 0 评论 -
RTMP协议分析及H.264打包原理
RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。RTMP协议是一个互联网五层体系结构中应用层的转载 2017-06-16 16:30:25 · 835 阅读 · 0 评论 -
RTMP规范简单分析
RTMP协议是一个互联网TCP/IP五层体系结构中应用层的协议。RTMP协议中基本的数据单元称为消息(Message)。当RTMP协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为消息块(Chunk)。1 消息消息是RTMP协议中基本的数据单元。不同种类的消息包含不同的Message Type ID,代表不同的功能。RTMP协议中一共规定了十多种消息类型,分别发挥着不同的作用。例原创 2016-06-21 16:17:55 · 545 阅读 · 0 评论 -
RTMP协议从入门到放弃
RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题。随着VR技术的发展,视频直播等领域逐渐活跃起来,RTMP作为业内广泛使用的协议也重新被相关开发者重视起来。正好最近在从事这方面的工作,在此记录下自己对RTMP的转载 2017-06-15 15:32:43 · 476 阅读 · 0 评论 -
RTP协议全解析(H264码流和PS流
写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析,其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/392073051、RT转载 2017-09-30 11:39:27 · 769 阅读 · 0 评论 -
RTSP协议消息格式及SDP协议解析
1 RTSP消息格式:RTSP的消息有两大类 --- 请求消息(request), 回应消息(response)。请求消息:方法 URI RTSP版本 CR LF 消息头 CR LF CR LF 消息体 CR LF 如下:DESCRIBE rtsp://192.168.1.211 RTSP/1.0CSeq: 1Accept: application/sd原创 2017-09-30 11:28:41 · 1969 阅读 · 0 评论 -
【FFMPEG】谈谈RTP传输中的负载类型和时间戳
谈谈RTP传输中的负载类型和时间戳最近被RTP的负载类型和时间戳搞郁闷了,一个问题调试了近一周,终于圆满解决,回头看看,发现其实主要原因还是自己没有真正地搞清楚RTP协议中负载类型和时间戳的含义。虽然做RTP传输,有着Jrtplib和Ortp这两个强大的库支持,一个是c++接口,一个是c语言接口,各有各的特点,各有各的应用环境,但是仅仅有库就能解决一切问题吗?可能仿照着一些例子程序,你能够转载 2017-09-30 14:42:49 · 608 阅读 · 0 评论 -
RTMPdump(libRTMP) 源代码分析 6: 建立一个流媒体连接 (NetStream部分 1)
函数调用结构图RTMPDump (libRTMP)的整体的函数调用结构图如下图所示。单击查看大图详细分析前文已经分析了 RTMPdump中建立一个NetConnection的过程:RTMPdump 源代码分析 5: 建立一个流媒体连接 (NetConnection部分)多余的话不多说,下面先来看看RTMP_ConnectStream(),该函数主要用于在NetConne转载 2016-07-18 16:05:02 · 634 阅读 · 0 评论 -
RTMPdump(libRTMP) 源代码分析 5: 建立一个流媒体连接 (NetConnection部分)
详细分析本篇文章分析一下RTMPdump里面的建立一个流媒体连接过程中的函数调用。之前已经简单分析过流媒体链接的建立过程:RTMP流媒体播放过程而且分析过其函数调用过程:RTMPDump源代码分析 0: 主要函数调用分析在这里就不详细叙述了,其实主要是这两个函数:RTMP_Connect()RTMP_ConnectStream()第一个函数用于建转载 2016-07-18 16:03:45 · 613 阅读 · 0 评论 -
关于rtsp客户端接收数据、解码、处理性能的有关问题
关于rtsp客户端接收数据、解码、处理性能的问题。我有一任务是实时处理图像数据,可以分成三部分1.从rtsp服务端接收数据。2.解码成图像。3.对图像数据进行处理。这三部分都能实现。如果它们是顺序执行的话,第2、3部分会影响第1部分我想知道怎样对这三部分进行合理安排才能保证实时性能,比如线程、进程,那怎样共享数据呢?------解决方案---------原创 2016-07-24 16:15:53 · 2091 阅读 · 0 评论 -
深入浅出看流媒体前世今生,分分钟二逼变牛逼
流媒体网】消息:CDN这几年爆炸式增长,带宽提速是根源,而HTTP始终还是那个屌样,因此目前CDN大多是资本性行业,不用多少知识就能干了;直到流媒体粗现,直播咋这么难搞呢?因为它是流媒体,让我带你深入浅出看流媒体前世今生,分分钟二逼变牛逼。 流媒体分为点播和直播,点播已经堕落为HTTP文件了,直播永远不可能只用HTTP就OK,这是他们的业务差异导致的。流媒体本质上是:现实的图像,经过编转载 2016-07-24 17:00:45 · 572 阅读 · 0 评论 -
为什么点播服务普遍采用了HTTP作为流媒体协议,而直播服务普遍采用了RTMP作为流媒体协议呢
现在主流的推流上行使用的是RTMP,http设立的初衷就是作为一个静态的资源让他们访问的。这个延迟不可控;rtmp的延迟是更加可控;播放侧拉流使用HTTP协议和RTMP协议都一样,对拉流侧来讲两者实时性是一样的。1.这两者很大的一个区别是就是实时性,RTMP延迟为秒级,HLS(HTTP)的延迟为10秒级。 这样对于对实时性要求较高的直播来说,采用RTMP肯定是不错的选择转载 2016-07-24 17:56:08 · 2816 阅读 · 0 评论 -
流媒体基础知识TS流 PS流 ES流区别
IP数据报有首部和数据两部分组成的,首部的前一部分是固定长度20字节,是所有IP数据报必须具有的。首部包括:总长度、标识、MF、DF、片偏移。 数字信号实际传送的是数据流,一般数据流包括以下三种: (1)ES流(Elementary Stream):也叫基本码流,包含视频、音频或数据的连续码流。 (2)PES流(Packet Elementary Strea原创 2016-07-26 14:40:30 · 17121 阅读 · 0 评论 -
aac的格式, 以及faad解码raw数据解码
一. ADTS 格式ADTS全称是(AudioData Transport Stream),是AAC的一种十分常见的传输格式。一般的AAC解码器都需要把AAC的ES流打包成ADTS的格式,一般是在AAC ES流前添加7个字节的ADTSheader。也就是说你可以吧ADTS这个头看作是AAC的frameheader。 ADTS AACADTS_转载 2016-07-26 15:14:48 · 1807 阅读 · 0 评论 -
五层原理体系结构的简单分析
网络中体系结构的七层、四层、五层是怎么回事? OSI(Open System Interconnection)开放系统互连的七层协议体系结构:概念清楚,理论比较完整,但既复杂又不用。 TCP/IP四层体系结构:简单,易于使用。 五层原理体系结构:综合 OSI 和 TCP/IP 的优点,为了学术学习。作为学习我们来看原创 2016-06-21 16:29:28 · 1032 阅读 · 0 评论 -
[总结]RTMP流媒体技术零基础学习方法
本文主要总结一些我在学习RTMP流媒体技术过程中积累的经验。也为后来学习RTMP流媒体技术的人们一个参考。本文力图从简到难,循序渐进的介绍RTMP流媒体技术的方方面面,先从应用说起,逐步深化剖析相关工程的源代码。看完本文的话应该会对RTMP流媒体技术有比较完整的了解。0.背景知识本章主要介绍一下RTMP流媒体技术都用在了哪里(在这里仅列几个我所知的,其实远比这个多)。说白了就是为了转载 2016-06-21 16:55:53 · 799 阅读 · 0 评论 -
RTMPdump 命令规范与使用说明
RTMPDump v2.4 2012-07-24RTMPDUMP(1)名称rtmpdump - (RTMP流媒体客户端)RTMP streaming media client使用参数rtmpdump -r url [-n hostname] [-c port] [-l protocol] [-S host:port] [-a app] [-t tcUrl] [-p page转载 2016-06-21 17:20:45 · 1047 阅读 · 0 评论 -
使用librtmp接收直播流和点播流并保存
来自rtmpdump.crtmpdump 可使用命令直播流rtmpdump.exe -o savename.flv -r rtmp://127.0.0.1/live/testlive -v点播流rtmpdump.exe -o savename.flv -r rtmp://127.0.0.1/vod/test.flv 直播需要加-v参数下面是从中提取的代码原创 2016-06-21 18:05:39 · 1529 阅读 · 1 评论 -
RTMP流媒体播放过程
注意:RTMP中的逻辑结构RTMP协议规定,播放一个流媒体有两个前提步骤:第一步,建立一个网络连接(NetConnection);第二步,建立一个网络流(NetStream)。其中,网络连接代表服务器端应用程序和客户端之间基础的连通关系。网络流代表了发送多媒体数据的通道。服务器和客户端之间只能建立一个网络连接,但是基于该连接可以创建很多网络流。他们的关系如图所示:1 简要介转载 2016-06-21 15:03:35 · 737 阅读 · 0 评论 -
RTMPdump 源代码分析 1: main()函数
RTMPdump(libRTMP) 源代码分析系列文章:RTMPdump 源代码分析 1: main()函数RTMPDump (libRTMP) 源代码分析2:解析RTMP地址——RTMP_ParseURL()RTMPdump (libRTMP) 源代码分析3: AMF编码RTMPdump (libRTMP) 源代码分析4: 连接第一步——握手 (HandShake)RTM转载 2016-07-18 15:57:17 · 904 阅读 · 0 评论 -
RTMPDump(libRTMP)源代码分析 2:解析RTMP地址——RTMP_ParseURL()
函数调用结构图RTMPDump (libRTMP)的整体的函数调用结构图如下图所示。单击查看大图详细分析之前分析了一下RTMPDump的Main()函数,其中获取RTMP流媒体数据很重要的前提是RTMP的URL的解析。如果没有这一步,那程序在强大也是白搭。现在来解析一下这个函数吧:RTMP_ParseURL()。下面首先回顾一下RTMP的URL的格式:rtmp://转载 2016-07-18 15:58:59 · 761 阅读 · 0 评论 -
RTMPdump(libRTMP) 源代码分析 3: AMF编码
详细分析之前分析了RTMPDump(libRTMP)解析RTMP的URL的源代码,在这里简单分析一下其AMF编码方面的源码。AMF编码广泛用于Adobe公司的Flash以及Flex系统中。由于RTMP协议也是Adobe公司的,所以它也使用AMF进行通信。具体AMF是怎么使用的在这里就不做详细讨论了。RTMPDump如果想实现RTMP协议的流媒体的下载保存,就必须可以编码和解码AMF格式的数转载 2016-07-18 16:00:46 · 981 阅读 · 0 评论 -
RTMPdump(libRTMP)源代码分析 4: 连接第一步——握手(Hand Shake)
RTMPdump(libRTMP) 源代码分析系列文章:RTMPdump 源代码分析 1: main()函数RTMPDump (libRTMP) 源代码分析2:解析RTMP地址——RTMP_ParseURL()RTMPdump (libRTMP) 源代码分析3: AMF编码RTMPdump (libRTMP) 源代码分析4: 连接第一步——握手 (HandShake)RTMPd转载 2016-07-18 16:02:36 · 473 阅读 · 0 评论 -
RTP协议分析
RTP协议分析第1章. RTP概述1.1. RTP是什么RTP全名是Real-time Transport Protocol(实时传输协议)。它是IETF提出的一个标准,对应的RFC文档为RFC3550(RFC1889为其过期版本)。RFC3550不仅定义了RTP,而且定义了配套的相关协议RTCP(Real-time Transport Control Protocol,转载 2017-09-30 14:44:37 · 548 阅读 · 0 评论