实时音频流 波形获取 rtmp_RTMP视频实时传输

本文介绍了RTMP实时消息传输协议,用于直播和点播服务。详细阐述了RTMP的握手、建立网络连接、建立网络流和播放的四个步骤,并在执法仪场景中应用,通过获取动态RTMP URL实现实时音频流观看。
摘要由CSDN通过智能技术生成

说起RTMP,可能大家会感觉到一些陌生,今天我们就来谈谈RTMP视频协议.

       在视频协议中我们比较熟悉并且接触的比较多的可能是HTTP协议,其实RTMP,RTSP,HTTP三个协议都是属于互联网TCP/IP五层体系结构中应用层的协议,理论上这三种都可以用来做视频直播或点播。但通常来说,直播一般用  RTMP、 RTSP。而点播用  HTTP.

       RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。RTMP协议就像一个用来装数据包的容器,这些数据既可以是AMF格式的数据,也可以是FLV中的视/音频数据.一个单一的连接可以通过不同的通道传输多路网络流.这些通道中的包都是按照固定大小的包传输的.它的默认端口为1935.

       播放一个RTMP协议的流媒体需要经过以下几个步骤:握手,建立连接,建立流,播放。RTMP连接都是以握手作为开始的。建立连接阶段用于建立客户端与服务器之间的“网络连接”;建立流阶段用于建立客户端与服务器之间的“网络流”;播放阶段用于传输视音频数据。

50f165eb50cd9db6612dd617dadc3971.png

1.握手(HandShake)

一个RTMP连接以握手开始,双方分别发送大小固定的三个数据块

a)握手开始于客户端发送C0、C1块。服务器收到C0或C1后发送S0和S1。

b)当客户端收齐S0和S1后,开始发送C2。当服务器收齐C0和C1后,开始发送S2。

c)当客户端和服务器分别收到S2和C2后,握手完成。

92f217e72af3c39f04efe3cc11fd6c17.png

2.建立网络连接(NetConnection)

a)客户端发送命令消息中的“连接”(connect)到服务器,请求与一个服务应用实例建立连接。

b)服务器接收到连接命令消息后,发送确认窗口大小(WindowAcknowledgement Size)协议消息到客户端,同时连接到连接命令中提到的应用程序。

c)服务器发送设置带宽协议消息到客户端。

d)客户端处理设置带宽协议消息后,发送确认窗口大小(WindowAcknowledgement Size)协议消息到服务器端。

e)服务器发送用户控制消息中的“流开始”(Stream Begin)消息到客户端。

f)服务器发送命令消息中的“结果”(_result),通知客户端连接的状态。

a953a38704ae43c99c6c3af5a1205651.png

3.建立网络流(NetStream)

a)客户端发送命令消息中的“创建流”(createStream)命令到服务器端。

b)服务器端接收到“创建流”命令后,发送命令消息中的“结果”(_result),通知客户端流的状态。

a2d5e5e0a604d50c66451521137d0087.png

4.播放(Play)

a)客户端发送命令消息中的“播放”(play)命令到服务器。

b)接收到播放命令后,服务器发送设置块大小(ChunkSize)协议消息。

c)服务器发送用户控制消息中的“streambegin”,告知客户端流ID。

d)播放命令成功的话,服务器发送命令消息中的“响应状态” NetStream.Play.Start & NetStream.Play.reset,告知客户端“播放”命令执行成功。

e)在此之后服务器发送客户端要播放的音频和视频数据。

      根据这个原理,我们将其应用到我们的执法仪当中.

因为RTMP URL是动态URL。故而我们第一步是主动在客户端获取流(手动双击以打开设备视频或代码以对其进行仿真),然后系统将创建一个会话并动态分配session ID,然后此RTMP URL 由PU_ID, session ID, channel NO,时间以及一个随机数组成。

比如:

rtmp://server_IP:1935/bvapp/PU_ID+sessionID+channelNO+yyyymmdd_hhmmss+arandom number,  

主要步骤如下:

1.搭建并运行服务器,并成功安装smarteye服务器软件;

2.在我们的执法仪中安装MCP软件,联网并填入服务器登录信息且登录

3.在浏览器中输入http://server_IP:8081/Demo/video.html

d7b082fe2b216994160d03adaa6d5aa1.png

4.在该网站中需要允许flash运行,在浏览器中设置成功即可.并将该网站重新加载.

5.在进入网站后登录服务器,如下:

285ca164805c8c9aec1f62a59cab28e9.png

6.根据网站提示,输入执法仪的设备ID(该设备ID需要在执法仪的MCP界面上查找).

ce9b08249e825f838690b1996deb57a1.png

4a1c0d521e20493491d2ff56173d2703.png

7.在该网址界面点击打开视频RTMP,视频会进行握手,建立连接,建立流,播放等步骤,同时也可以获取到实时的RTMP视频链接.

bcd98b1185fb0dd1087aef2e31fe2e8e.png

8.打开VLC media play,将该实时的RTMP链接粘贴到直播流中,我们便可以进行实时观看.

bcab2beac5ee1bd6164422456cf1f80b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值