精华内容
下载资源
问答
  • 而对于流媒体服务器并不了解的朋友来说,可能不太了解使用流媒体服务进行视频监控系统搭建的意义在哪,本篇将介绍为什么要使用流媒体来做视频分发。 原因分析 1、直播视频的格式多种多样,不管是移动端还是PC端...

    大家知道TSINGSEE团队有很多视频流媒体平台和辅助分发的组件,我们研发的EasyNVR、EasyDSS、EasyGBS是流媒体平台,而EasyRTMPLive就是负责拉转推的推流网关,当然还有很多其他的产品,跟大家提起的不多,以后都会慢慢跟大家介绍。

    dceca23dc8f5730d3438f8a3bda81e09.png

    而对于流媒体服务器并不了解的朋友来说,可能不太了解使用流媒体服务进行视频监控系统搭建的意义在哪,本篇将介绍为什么要使用流媒体来做视频分发。

    EasyNVR背景分析1.png

    原因分析

    1、直播视频的格式多种多样,不管是移动端还是PC端都不可能支持这么多样化格式的视频,因此流媒体服务器的首要任务就是将视频更改为统一的格式,从而解决播放器格式不统一的问题,在不改变原视频的画质情况下,更改视频格式。

    2、视频流也是需要加密的,在金融、教育等行业,采用一对一私密式沟通时很怕信息泄露,视频流被截取,流媒体服务器可以实现对视频流的加密,有效保护私密性强的文章或视频数据,加密后的视频配合播放端播放可以有效防止视频被盗,信息泄露。

    3、直播流渠道地址有时需要手动处理更改,包括地址的添加和删除,这一系列的操作也需要有流媒体服务器协助才能完成。

    4、保证服务器稳定性,直播平台经常会出现高并发现象,能否有效处理好高并发和保证平台稳定性非常重要。一般流媒体的储存空间和内存都比较大,更大的内存可以储存更多的用户信息,允许多条用户信息同时调用,而储存空间的大小也是决定流媒体服务器对高并发现象处理的是否得当的保障。

    5、流媒体服务器对宽带的处理会直接影响到用户的直播观看体验。要想保证直播流畅不卡顿,宽带很重要,宽带越大允许同时观看直播的人数就越大,根据需求选择合适的宽带,已保证用户能得到最舒适的直播体验。

    GBS2.png

    对于搭建直播平台来说,常见的小问题通过一套流媒体服务器都能轻松解决,因此我们在与客户做沟通的时候,一些复杂需求的实现,我们都会建议客户配置流媒体服务器,大家有兴趣的话,也可以随时联系我们,我们会根据大家的实际情况,给大家做出合理的方案搭配。

    展开全文
  • 而对于流媒体服务器并不了解的朋友来说,可能不太了解使用流媒体服务进行视频监控系统搭建的意义在何处,今天将重点介绍为什么要使用流媒体来做视频分发。原因分析1、直播视频的格式多种多样,不管是移动端还是PC端...

    众所周知,TSINGSEE有很多视频流媒体平台和辅助分发的组件,例如EasyNVR、EasyDSS、EasyGBS均是流媒体平台,而EasyRTMPLive则是负责拉转推的推流网关。

    b9059547221d179aa384bca9b27d6248.png

    而对于流媒体服务器并不了解的朋友来说,可能不太了解使用流媒体服务进行视频监控系统搭建的意义在何处,今天将重点介绍为什么要使用流媒体来做视频分发。

    5df6c4664e6cdc79bbd79491743c65ad.png

    原因分析

    1、直播视频的格式多种多样,不管是移动端还是PC端都不可能支持这么多样化格式的视频,因此流媒体服务器的首要任务就是将视频更改为统一的格式,从而解决播放器格式不统一的问题,在不改变原视频的画质情况下,更改视频格式。

    2、视频流也是需要加密的,在金融、教育等行业,采用一对一私密式沟通时很怕信息泄露,视频流被截取,流媒体服务器可以实现对视频流的加密,有效保护私密性强的文章或视频数据,加密后的视频配合播放端播放可以有效防止视频被盗,信息泄露。

    3、直播流渠道地址有时需要手动处理更改,包括地址的添加和删除,这一系列的操作也需要有流媒体服务器协助才能完成。

    4、保证服务器稳定性,直播平台经常会出现高并发现象,能否有效处理好高并发和保证平台稳定性非常重要。一般流媒体的储存空间和内存都比较大,更大的内存可以储存更多的用户信息,允许多条用户信息同时调用,而储存空间的大小也是决定流媒体服务器对高并发现象处理的是否得当的保障。

    5、流媒体服务器对宽带的处理会直接影响到用户的直播观看体验。要想保证直播流畅不卡顿,宽带很重要,宽带越大允许同时观看直播的人数就越大,根据需求选择合适的宽带,已保证用户能得到最舒适的直播体验。

    a9f463e268d7ad3c222c7875c21dbfbe.png

    对于搭建直播平台来说,常见的小问题通过一套流媒体服务器都能轻松解决,对于一些复杂需求的实现,通常都会建议用户配置流媒体服务器。当然,对于一些实际场景,也建议根据现场项目的具体情况进行合理搭配。

    2c035d77af5e10cdfe8171d28b5ef8b6.png
    展开全文
  • WebRTC 实时视频监控搭建 服务器搭建 服务器使用 janus 开源框架。 下载和编译Janus 1.依赖安装 sudo aptitude install libmicrohttpd-dev libjansson-dev libnice-dev \ libssl1.0.1-dev libsrtp-dev libsofia-sip...

    WebRTC 实时视频监控搭建

    服务器搭建

    服务器使用 janus 开源框架。
    项目地址:
    github

    下载和编译Janus

    1.依赖安装

    sudo aptitude install libmicrohttpd-dev libjansson-dev libnice-dev \
        libssl1.0.1-dev libsrtp-dev libsofia-sip-ua-dev libglib2.3.4-dev \
        libopus-dev libogg-dev libcurl4-openssl-dev pkg-config gengetopt \
        libtool automake
    
    sudo apt install cmake
    sudo aptitude install libconfig-dev
    sudo aptitude install libssl-dev
    sudo aptitude install doxygen graphviz
    
    # ffmpeg库 支持--enable-post-processing
    sudo aptitude install libavcodec-dev libavformat-dev libswscale-dev libavutil-dev
    

    2.安装WebSocket

    git clone https://github.com/warmcat/libwebsockets.git
    cd libwebsockets
    git branch -a 查看选择最新的稳定版本,目前的是remotes/origin/v3.2-stable
    git checkout v3.2-stable 切换到最新稳定版本
    mkdir build
    cd build
    cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS="-fpic" ..
    make && sudo make install
    

    3.安装libsrtp

    wget https://github.com/cisco/libsrtp/archive/v2.2.0.tar.gz
    tar xfv v2.2.0.tar.gz
    cd libsrtp-2.2.0
    ./configure --prefix=/usr --enable-openssl
    make shared_library && sudo make install
    

    4.安装libusrsctp

    git clone https://github.com/Kurento/libusrsctp.git
    cd libusrsctp
    ./bootstrap
    ./configure
    make
    sudo make install
    

    5.安装libmicrohttpd

    wget https://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.71.tar.gz
    tar zxf libmicrohttpd-0.9.71.tar.gz
    cd libmicrohttpd-0.9.71/
    ./configure
    make
    sudo make install
    

    编译janus

    1.下载源码

    git clone https://github.com/meetecho/janus-gateway.git
    git tag 查看当前的 tag,选择最新稳定的版本v0.10.4
    git  checkout v0.10.4
    sh autogen.sh
    

    2.编译

    ./configure --prefix=/opt/janus --enable-websockets --enable-post-processing --enable-docs --enable-rest --enable-data-channels
    make
    sudo make install
    

    配置和运行janus

    1.配置nginx

    生成证书:
    mkdir -p ~/cert
    cd ~/cert
    # CA私钥
    openssl genrsa -out key.pem 2048
    # 自签名证书
    openssl req -new -x509 -key key.pem -out cert.pem -days 1095
    
    安装nginx:
    #下载nginx 1.15.8版本
    wget http://nginx.org/download/nginx-1.15.8.tar.gz
    tar xvzf nginx-1.15.8.tar.gz
    cd nginx-1.15.8/
    
    
    # 配置,一定要支持https
    ./configure --with-http_ssl_module 
    
    # 编译
    make
    
    #安装
    sudo make install 
    
    修改nginx配置文件:

    /usr/local/nginx/conf/nginx.conf

    # HTTPS server
        #
        server {
            listen       443 ssl;
            server_name  localhost;
            # 配置相应的key
            ssl_certificate      /home/ubuntu/cert/cert.pem;
            ssl_certificate_key  /home/ubuntu/cert/key.pem;
    
            ssl_session_cache    shared:SSL:1m;
            ssl_session_timeout  5m;
    
            ssl_ciphers  HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers  on;
            # 指向janus demo所在目录
            location / {
                root   /opt/janus/share/janus/demos;
                index  videoroomdemo.html videoroomdemo.htm;
            }
        }
    
    启动nginx:

    sudo /usr/local/nginx/sbin/nginx

    2.安装和启动coturn

    安装:
    sudo apt-get install libssl-dev
    sudo apt-get install libevent-dev
    wget http://coturn.net/turnserver/v4.5.0.7/turnserver-4.5.0.7.tar.gz
    tar xfz turnserver-4.5.0.7.tar.gz
    cd turnserver-4.5.0.7
     
    ./configure 
    make 
    sudo make install
    
    启动:
    sudo nohup turnserver -L 0.0.0.0 --min-port 30000 --max-port 60000  -a -u lqf:123456 -v -f -r nort.gov &
    

    3.配置janus的jcfg文件

    要先把.sample后缀的文件拷贝成jcfg后缀

    # 进到对应的目录
    cd /opt/janus/etc/janus
    # 拷贝文件
    sudo cp janus.jcfg.sample janus.jcfg
    sudo cp janus.transport.http.jcfg.sample janus.transport.http.jcfg
    sudo cp janus.transport.websockets.jcfg.sample janus.transport.websockets.jcfg
    sudo cp janus.plugin.videoroom.jcfg.sample janus.plugin.videoroom.jcfg
    sudo cp janus.transport.pfunix.jcfg.sample janus.transport.pfunix.jcfg
    

    配置janus.jcfg

    # 大概237行
    stun_server = "111.229.231.225"
            stun_port = 3478
            nice_debug = false
    
    #大概274行
    # credentials to authenticate...
            turn_server = "111.229.231.225"
            turn_port = 3478
            turn_type = "udp"
            turn_user = "lqf"
            turn_pwd = "123456"
    

    配置janus.transport.http.jcfg

    general: {
            #events = true                                  # Whether to notify event handlers about transport events (default=true)
            json = "indented"                               # Whether the JSON messages should be indented (default),
                                                                            # plain (no indentation) or compact (no indentation and no spaces)
            base_path = "/janus"                    # Base path to bind to in the web server (plain HTTP only)
            threads = "unlimited"                   # unlimited=thread per connection, number=thread pool
            http = true                                             # Whether to enable the plain HTTP interface
            port = 8088                                             # Web server HTTP port
            #interface = "eth0"                             # Whether we should bind this server to a specific interface only
            #ip = "192.168.0.1"                             # Whether we should bind this server to a specific IP address (v4 or v6) only
            https = true                                    # Whether to enable HTTPS (default=false)
            secure_port = 8089                              # Web server HTTPS port, if enabled
            #secure_interface = "eth0"              # Whether we should bind this server to a specific interface only
            #secure_ip = "192.168.0.1"              # Whether we should bind this server to a specific IP address (v4 or v6) only
            #acl = "127.,192.168.0."                # Only allow requests coming from this comma separated list of addresses
    }
    
    certificates: {
            cert_pem = "/home/ubuntu/cert/cert.pem"
            cert_key = "/home/ubuntu/cert/key.pem"
            #cert_pwd = "secretpassphrase"
            #ciphers = "PFS:-VERS-TLS1.0:-VERS-TLS1.1:-3DES-CBC:-ARCFOUR-128"
    }
    
    

    配置janus.transport.websockets.jcfg

    general: {
            #events = true                                  # Whether to notify event handlers about transport events (default=true)
            json = "indented"                               # Whether the JSON messages should be indented (default),
                                                                            # plain (no indentation) or compact (no indentation and no spaces)
            #pingpong_trigger = 30                  # After how many seconds of idle, a PING should be sent
            #pingpong_timeout = 10                  # After how many seconds of not getting a PONG, a timeout should be detected
    
            ws = true                                               # Whether to enable the WebSockets API
            ws_port = 8188                                  # WebSockets server port
            #ws_interface = "eth0"                  # Whether we should bind this server to a specific interface only
            #ws_ip = "192.168.0.1"                  # Whether we should bind this server to a specific IP address only
            wss = true                                              # Whether to enable secure WebSockets
            wss_port = 8989                         # WebSockets server secure port, if enabled
            #wss_interface = "eth0"                 # Whether we should bind this server to a specific interface only
            #wss_ip = "192.168.0.1"                 # Whether we should bind this server to a specific IP address only
            #ws_logging = "err,warn"                # libwebsockets debugging level as a comma separated list of things
                                                                            # to debug, supported values: err, warn, notice, info, debug, parser,
                                                                            # header, ext, client, latency, user, count (plus 'none' and 'all')
            #ws_acl = "127.,192.168.0."             # Only allow requests coming from this comma separated list of addresses
    }
    
    certificates: {
            cert_pem = "/home/ubuntu/cert/cert.pem"
            cert_key = "/home/ubuntu/cert/key.pem"
            #cert_pwd = "secretpassphrase"
    }
    

    4.运行Janus

    /opt/janus/bin/janus --debug-level=5 --log-file=$HOME/janus-log

    修改Videoroom源码

    1. 禁用videoroom摄像头

    将videoroomtest.js 403行:

    media: { audioRecv: false, videoRecv: true, audioSend: useAudio, videoSend: true }
    

    改为

    media: { audioRecv: false, videoRecv: false, audioSend: useAudio, videoSend: true }
    

    2.修改html显示样式

    94行开始修改

    <div class="row" style="margin-left:10px;margin-right:10px;margin-top:10px;margin-bottom:10px;"> <!--添加style自适应窗口大小-->
    	<div class="col-md-4" style="display: none;"><!--隐藏不需要的控件-->
           <!--...-->
        </div>
        <div class="col-md-4"><!--此控件保留显示树莓派视频-->
           <!--...-->
        </div>
        <div class="col-md-4" style="display: none;"><!--隐藏不需要的控件-->
           <!--...-->
        </div>
        <div class="col-md-4" style="display: none;"><!--隐藏不需要的控件-->
           <!--...-->
        </div>
        <!--...-->
    </div>
    

    树莓派推流客户端搭建

    使用pip安装需要的包:

    pip install aiortc

    pip install aiohttp

    编写客户端代码:

    这里使用aiortc官方实例修改:

    源码克隆:
    git clone https://github.com/aiortc/aiortc.git
    打开/examples/janus/janus.py:

    这里不使用命令行:删除

    parser = argparse.ArgumentParser(description="Janus")
    parser.add_argument("url", help="Janus root URL, e.g. http://localhost:8088/janus")
    parser.add_argument(
        "--room",
        type=int,
        default=1234,
        help="The video room ID to join (default: 1234).",
    ),
    parser.add_argument("--play-from", help="Read the media from a file and sent it."),
    parser.add_argument("--record-to", help="Write received media to a file."),
    parser.add_argument("--verbose", "-v", action="count")
    args = parser.parse_args()
    
    if args.verbose:
        logging.basicConfig(level=logging.DEBUG)
    
    # create signaling and peer connection
    session = JanusSession(args.url)
    
    # create media source
    if args.play_from:
        player = MediaPlayer(args.play_from)
    else:
        player = None
    
    # create media sink
    if args.record_to:
        recorder = MediaRecorder(args.record_to)
    else:
        recorder = None
    

    改为:

    # 指定url
    session = JanusSession("http://1.15.156.106:8088/janus")
    player = None
    recorder = None
    room = 1234 # 指定房间号
    

    在161行添加:

    player = MediaPlayer('/dev/video0', format='v4l2', options={
        'video_size': '320x240'
    })
    

    来调用摄像头。

    运行客户端代码:

    python3 janus.py

    最后访问服务器IP即可查看视频流.

    展开全文
  •  手机虫做的就是借助智能手机实现随时随地的监控查看,你可以在旅行中、火车上、厕所随时随地查看视频监控,这意味着你可以利用摄像头、PC、智能手机搭建一个视频监控网络,说法也许夸张了一点,但这的确是对现有...
  • 视频监控的实时预览与回看,除了依赖于服务器性能外,还对带宽要求比较高,假设标清视频码流为1M,一个网络环境下有100个监控设备,同时进行视频实时直播和录像,上行带宽占用就>100M,当同时有1000人观看时,下行...

    视频监控的实时预览与回看,除了依赖于服务器性能外,还对带宽要求比较高,假设标清视频码流为1M,一个网络环境下有100个监控设备,同时进行视频实时直播和录像,上行带宽占用就>100M,当同时有1000人观看时,下行带宽则在1G以上。

    普通网络环境下,带宽资源占用比较高。更有些窄带宽环境,不想带宽持续占用,想将并发压力释放给公有云,按需收费,观看多时带宽和流量多,闲时不占用,在成本上有很大节约。

    103.png

    最近在项目对接时,就遇到以上的需求,设备层是通过工控机对接网络IPC,用户不想在设备侧占用太多资源,希望将视频流推送到公有云服务器。基于此种窄带宽环境,我们给出EasyDSS+EasyNVR解决方案,也就是工控机集成EasyDSS互联网直播点播平台,接收前端网络IPC推流,EasyDSS将前端设备推送的视频流进行转化,转推给云端的EasyNVR安防可视化解决方案。同时在设备侧集成EasyNTS上云网关,进行穿透与映射,实现公网服务对设备的统一管控与运维,当设备出现故障时无需到现场,即可进行排查。

    46.png

    该方案的应用场景比较广泛,如车载设备、智慧园区、智慧校园等,只需要网络IPC支持RTMP推流,就可以实现网络IPC→工控机→云服务器(流媒体服务器)之间的流传输,此时所有资源的压力都释放给云服务器,有效节省资源、成本与人力。

    TSINGSEE青犀视频的有针对某一个固定场景的解决方案,如针对内网监控设备接入与上云的EasyNVR,可以对接所有支持RTSP/Onvif协议的监控设备,同时与云端的EasyNVS对接,完成内网设备上云。也有针对4G/5G环境下设备没有固定IP,需要主动与公网服务器进行对接的EasyGBS国标解决方案,设备通过28181接入,将公网服务器IP、端口等信息在设备中填写,主动注册到公网EasyGBS上,实现设备的接入、分发。

    当然,我们的产品也适合多产品融合,打造复杂环境的架构方案,如内网的EasyNVR通过国标级联与上级国标平台对接,如智慧社区、明厨亮灶等场景,大家可以参考下文:

    TSINGSEE青犀视频倾心打造多级监管智慧社区解决方案
    用科技的力量构筑“食品安全”防火墙,明厨亮灶保护“舌尖上的安全”
    安防互联网直播应用中云-边-端一体化协同解决方案应用场景之智慧园区

    云边端.png

    展开全文
  • 7)、 缺点: IMX6ULL性能太弱,在VLC播放器里看到的视频很卡,很滞后 我们可以上传一个mp4文件到开发板,把它推到Nginx: ffmpeg -re -i test.mp4 -vcodec copy -acodec copy -f flv rtmp://127.0.0.1/live/wei ...
  • 现在很流行流媒体网站,无论是视频播放,还是聊天网站,现在都是很多娱乐网站的主流。这里,我介绍的是基于FMS的流媒体网站,客户端用FLASH,这是起点最容易的搭建流媒体网站的方案,大家可以参考一下。 首先,需要...
  • 针对幼儿园网络监控系统的特点,又由于数字网络视频技术的优势,我们提出基于视频平台及网络摄像机的幼儿园图像联网监控系统解决方案。 其主要的原理是通过嵌入式网络摄像机,可以将园区监控点的视频图像通过移动...
  • 如果要在公网上进行传输,有两种方法,一是将Nginx放在公网服务器上,因为它具有公网IP,公网域名;二是使用内网穿透,这个实现还是比较麻烦的,而且如果真做产品也不会这样做。 现在在阿里云上通过学生认证可以...
  • 网络视频监控系统不仅要求采集的图像清晰度要高,而且对视频图像的...本设计选取海思SoC Hi3507为主芯片,结合CMOS高清图像传感器OV2643、H.264编码技术和基于live555的流媒体服务器搭建了一个高清网络视频监控系统。
  • 在现代信息社会,人民的生活水准不断提高,因而对安全的需求也越来越迫切。...比如我们团队研发的安防摄像头视频流媒体服务器,由于能够进行实时的监控视频流传输,并且能够对视频流进行统一管理,受到了广大...
  • 原理:使用ffmpeg采集和视频转码推送到nginx服务器,手机或者电脑使用播放器拉流,观看视频 前期准备: 下载nginx https://blog.csdn.net/qq_33454884/article/details/89212702 下载ffmjeg wget ...
  • 使用H5Streamer轻松搭建视频监控项目

    千次阅读 2020-04-11 01:06:52
    零视 H5Streamer 流媒体服务器使用
  • nfs服务器搭建、配置及监控

    千次阅读 2019-01-03 15:48:04
    nfs主要功能是通过网络让不同机器操作系统之间可以共享文件和目录,nfs服务器允许nfs客户端将远端nfs服务器的共享目录挂载到本地的nfs客户端中。 在本地的nfs客户端的机器看来,nfs服务端共享的目录就好像自己的...
  • 关于这部分功能,最初的想法是在树莓派端建立UDP服务器,将由摄像头采集到的视频流广播出去,但是Android端没有找到播放UDP裸流的方式。VLC播放器可以设置UDP服务器地址进行播放,但是效果如何没有验证,具体效果...
  • (1),(模拟摄像机+视频采集卡+PC+转码软件)+流媒体服务器+客户端; 这是比较久以前使用的远程视频直播系统搭建的方式。首先是前端安装模拟摄像机用于采集模拟信号并用视频采集卡将视频接到PC端,然后在PC上...
  • 注意:这里不会讲到nginx流媒体模块如何安装的问题,只研究rtmp,hls直播和录制相关的nginx服务器配置文件的详细用法和说明。可以对照这些命令详解配置nginx -rtmp服务 一、nginx的hls配置实例 注:nginx采用nginx...
  • 2.搭建web服务器,通过浏览器查看摄像头图像;3.抓取网页图像4.上传至yeelink5.通过motion软件包实现图像的监控系统硬件图,有图有真相:参考资料1.huawei hg255d(openwrt)+logitech c270+ wget&http-post
  • 服务器:Mac电脑 方案选择 RTSP、RTMP、HTTP 任务分解 推流端: 1. Android Camera图像捕捉,Audio音频捕捉。 2. 图像编码,将音视频编码成可以传输的格式。 3. 推流传输 显示端: 1. 暂时用android实现...
  • 为了保障居民日常生活、小区治安秩序,小区需要对重要场所实行24小时实时监控:楼与楼之间的通道安装监控摄像机,电梯、电梯口、人行通道都需安装不同型号的监控设备。重点部位实施全方位监控,同时要求系统可靠、...
  • 之前我们为大家介绍过我们的视频流媒体服务器EasyNVR在校园幼儿园监控中,作为能力层,为视频直播的服务器搭建提供性能。 在搭建视频流媒体系统的测试平台过程中,我们的团队又遇到了新的问题,这里也提出来和...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 199
精华内容 79
关键字:

视频监控服务器搭建