给牛奶做直播之二

一、前言

给奶牛做直播之一 主要讲了视频的编解码,我们今天接着往下聊,主要介绍一下视频流的网络应用层协议,先简单讲一下视频文件格式与编码,视频文件格式有很多比如以前的AVI、RMVB、MP4等等无数种,视频文件格式和前一篇讲的视频编码是两回事情,视频文件格式可以理解为一个容器,里边要放视频流和音频流,视频编码是对容器里视频流数据进行压缩,主要也就是前一篇讲到的MPEG和H.26X这两个系列。

二、HTTP协议

1、将服务器上的视频文件通过HTTP协议渐进式下载,然后播放器解码播放.

2、视频播放快进的原理:视频文件的头部存储了相应帧的位置,这样视频就可以跳转到未被下载的部分,这是因为HTTP1.1协议开始支持Range见下图可以指定从哪个字节开始下载播放,注:Range这个特性也用在断点续传。

给牛奶做直播之二_第1张图片

3、HTTP用于点播,视频文件主要有MP4或以前老的Flash FLV等。这种视频很容易被用户下载下去存在版权的问题,但因为是走80端口不用解决网络中防火墙等穿透问题。

三、RTMP协议

RTMP即Real-Time Messging  Protocol 是Adobe私有协议,一般传输的是Flv、mp4格式流,

搭建RTMP服务器,播放时实时连接服务器,播放的是服务器上的文件,视频文件不会缓存在客户端,版权更安全。

1、环境搭建,安装Nginx与Nginx rtmp模块

OS:Ubuntu 16.04 64
wget http://nginx.org./download/nginx-1.8.1.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/refs/heads/master.zip
apt-get update
apt-get install libpcre3 libpcre3-dev
apt-get install openssl libssl-dev
tar -zxvf nginx-1.8.1.tar.gz
unzip master.zip
cd nginx-1.8.1/
./configure --add-module=../nginx-rtmp-module-master
make && make install

2、配置点播服务

nginx.conf

rtmp{
  server{
    listen 1935;
    chunk_size 4096;
    application vod{
      play /opt/vod;
    }
  }
}

将视频文件 vanmilk.mp4  放到到/opt/vod目录下即可,用VLC播放器 Open Network 打开地址 rtmp://118.31.5.244/vod/vanmilk.mp4,当然在网页中你播放器支持也可以直接播放。

2、配置直播服务

待续,本想今天把直播环境搭建一下,忙得一点时间都没有,明后天再折腾,这块内容计划用5,6个小篇写完。。

你可能感兴趣的:(杂项,音视频)