• 给牛奶做直播之二


    一、前言

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

    二、HTTP协议

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

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

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

    三、RTMP协议

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

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

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

    1. OS:Ubuntu 16.04 64
    2. wget http://nginx.org./download/nginx-1.8.1.tar.gz
    3. wget https://github.com/arut/nginx-rtmp-module/archive/refs/heads/master.zip
    4. apt-get update
    5. apt-get install libpcre3 libpcre3-dev
    6. apt-get install openssl libssl-dev
    7. tar -zxvf nginx-1.8.1.tar.gz
    8. unzip master.zip
    9. cd nginx-1.8.1/
    10. ./configure --add-module=../nginx-rtmp-module-master
    11. make && make install

    2、配置点播服务

    nginx.conf

    1. rtmp{
    2. server{
    3. listen 1935;
    4. chunk_size 4096;
    5. application vod{
    6. play /opt/vod;
    7. }
    8. }
    9. }

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

    2、配置直播服务

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

  • 相关阅读:
    基于SSM的家居商城系统
    docker compose 管理应用服务的常用命令
    2022年,软件测试还能学吗?别学了,软件测试岗位饱和了...
    国企云计算厂商增长迅猛,但私企云下滑
    创建commons和cart模块
    UML/SysML建模工具更新情况-截至2024年4月(1)5款-Trufun建模平台 v2024
    【LeetCode每日一题】——面试题10.11.峰与谷
    又一起.NET程序挂死, 用 Windbg 抽丝剥茧式的真实案例分析
    STM32纯中断方式发送接收数据(串行通信;keil arm5;)
    Vulkan并非“灵药“
  • 原文地址:https://blog.csdn.net/2301_76787421/article/details/133443056