zoukankan      html  css  js  c++  java
  • 实时监控研究c#+nginx+rtmp(一)

    这两周花了时间研究相关监控实时传输,终于打通了流程。

    一、相关资料研究记录

      从网络上接收视频时首先要解协议(RTSP/RTMP/HTTP),然后是解格式(MKV,RMVB),之后才是将视频(H264)和音频(AAC)格式数据分别解码为图像(RGB/YUV)和声音(PCM),再根据时间戳同步播放。 

      RTSP+RTP主要用于IPTV,原因是传输数据使用的是UDP,在网络环境比较稳定的情况下,传输效率是比较高的; 

      RTMP主要用于互联网音视频传输,它使用的是TCP传输,因为互联网环境相对较差,采用RTMP保证了视频的传输质量,但是其传输延迟相对较高,传输效率相对较低。 

      直播服务普遍采用了RTMP作为流媒体协议,FLV作为封装格式,H.264作为视频编码格式,AAC作为音频编码格式。FLV是RTMP使用的封装格式,H.264是当今实际应用中编码效率最高的视频编码标准,AAC则是当今实际应用中编码效率最高的音频编码标准。

      librtmp是RTMP协议的实现,可以使用librtmp来实现协议的解析和数据的收发。直播服务器可以基于nginx+rtmp实现;直播客户端方面采用librtmp负责推流,FFmpeg负责编码;收看客户端采用VLC即可,因为VLC本身既可以解析RTMP流,又可以解析编码后的视频数据。

    二、nginx部署

    阿里云/腾讯云 window系统部署

    下载链接:nginx官网下载相关配置 复制到相关服务器上  nginx_1.7.11.3_Gryphon

    相关conf文件下nginx.conf 相关配置和端口根据项目配置调整

    1.rtmp配置:

    2.http设置:

     默认80端口可能跟其他应用程序冲突 建议替换

    这样配置就好了~

    输入cmd定位到相关文件位置 ,执行nginx.exe -c conf\nginx.conf 返回无返回错误则表示安装完成

     这时在浏览器输入相关配置地址:localhost:8082 出现如下信息即nginx完成

    三、测试RTMP推拉流

    1.推流

    准备mp4文件

    var in_filename = "F:\\1.mp4"; //输入URL(Input file URL)
    var out_filename = "rtmp://192.168.73.1:1935/live/hunantv";//输出 URL(Output URL)[RTMP]

    读取本地文件的方式推送媒体数据到RTMP服务器(ReadLocalFile_PushStreamToRmtp方法传参in_filename、out_filename  )

     

    2.拉流

    下载VLC Media Player 

     监听传输过来的数据并显示--亲测ok

    或者是使用代码来测试 使用winform 输入链接进行监听

     ----亲测ok

  • 相关阅读:
    算法问题实战策略 JUMPGAME 记忆化搜索
    算法问题实战策略 TRIANGLEPATH 动态规划入门题
    poj 2785 4 Values whose Sum is 0
    poj 3276 Face The Right Way 递推
    acwing 883. 高斯消元解线性方程组
    acwing 861. 二分图的最大匹配 模板
    Leetcode 42 接雨水 双指针 空间换时间
    LeetCode 1290. 二进制链表转整数
    LeetCode 1291. 顺次数
    <挑战程序设计竞赛> poj 3320 Jessica's Reading Problem 双指针
  • 原文地址:https://www.cnblogs.com/wulala9/p/15748670.html
Copyright © 2011-2022 走看看