http直播服务器搭建需要做什么?
看了主流几个网络直播平台,发现大部分都是以httpflv为主直播,这么火爆的httpflv究竟是怎么直播的呢?Http_flv实际上是无限长的Http的flv文件流,客户端允许播放。
首先,我们都知道,在媒体形式上,几乎都是用h264视频编码的。今天,httpflv直播flv数据也以h264aac为主。Flv包单位用tag表示,一个tag可以是音频标签、视频标签或脚本标签和其他类型。
Httpflv直播实际上是简单地将flvtag发送到客户端。当然,首先发送flv前面的几个重要tag,然后第一帧是关键帧。
如果客户端是OBS推送软件,则以rtmp方式向服务器流式传输、启动握手、创建Stream、完成元数据传输并发送一系列数据后,服务器向OBS发送publish result命令,随后OBS向服务器推送flv tag数据,并开始直播。
当某个客户端为了获取直播数据(例如httpflv)而想看直播时,服务器会怎么做?
服务器首先发送前几个flvtag、header metadata spspps aacheader。发送这些tag后,服务器将在直播流tag中找到最新的视频关键帧tag,并在此关键帧tag中开发数据。为什么会这样呢?视频流需要IBP帧相互存在,I是全部数据,BP解码需要I帧和前一帧,因此正常的视频数据需要从I帧开始发送。这包括GOP间隔。rtmp低延迟超开放是这个原理。当然,发送时,每个连接的标记开始时间戳戳必须从0开始增加。
因此,httpflv客户端可以接收flv流式传输数据,对直播进行解码。