`

开源免费O2OA办公:如何搭建流媒体服务器(rtmp+ffmgp)

OA 
阅读更多

1. 安装nginx

下载 nginx 1.7.11.3 Gryphon

下载链接:http://nginx-win.ecsds.eu/download/nginx 1.7.11.3 Gryphon.zip

解压到 D:\ffmpgtest\nginx目录

2. 下载 nginx-rtmp-module

下载链接:https://github.com/arut/nginx-rtmp-module/

解压后到nginx目录下

 
 

配置文件 conf\nginx-win.conf 内容如下:

#user  nobody;

# multiple workers works !

worker_processes  2;

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {

    worker_connections  8192;

    # max value 32768, nginx recycling connections+registry optimization =

    #  this.value * 20 = max concurrent connections currently tested with one worker

    #  C1000K should be possible depending there is enough ram/cpu power

    # multi_accept on;

}

rtmp {

    server {

        listen 1935;

        chunk_size 4000;

        application live {

            live on;

            # record first 1K of stream

            record all;

            record_path /tmp/av;

            record_max_size 1K;

            # append current timestamp to each flv

            record_unique on;

            # publish only from localhost

            allow publish 127.0.0.1;

            deny publish all;

            #allow play all;

        }

    }

}

http {

    #include      /nginx/conf/naxsi_core.rules;

    include      mime.types;

    default_type  application/octet-stream;

    #log_format  main  '$remote_addr:$remote_port - $remote_user [$time_local] "$request" '

    #                  '$status $body_bytes_sent "$http_referer" '

    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

#    # loadbalancing PHP

#    upstream myLoadBalancer {

#        server 127.0.0.1:9001 weight=1 fail_timeout=5;

#        server 127.0.0.1:9002 weight=1 fail_timeout=5;

#        server 127.0.0.1:9003 weight=1 fail_timeout=5;

#        server 127.0.0.1:9004 weight=1 fail_timeout=5;

#        server 127.0.0.1:9005 weight=1 fail_timeout=5;

#        server 127.0.0.1:9006 weight=1 fail_timeout=5;

#        server 127.0.0.1:9007 weight=1 fail_timeout=5;

#        server 127.0.0.1:9008 weight=1 fail_timeout=5;

#        server 127.0.0.1:9009 weight=1 fail_timeout=5;

#        server 127.0.0.1:9010 weight=1 fail_timeout=5;

#        least_conn;

#    }

    sendfile        off;

    #tcp_nopush    on;

    server_names_hash_bucket_size 128;

## Start: Timeouts ##

    client_body_timeout  10;

    client_header_timeout 10;

    keepalive_timeout    30;

    send_timeout          10;

    keepalive_requests    10;

## End: Timeouts ##

    #gzip  on;

    server {

        listen      80;

        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        ## Caching Static Files, put before first location

        #location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {

        #    expires 14d;

        #    add_header Vary Accept-Encoding;

        #}

# For Naxsi remove the single # line for learn mode, or the ## lines for full WAF mode

        location / {

            #include    /nginx/conf/mysite.rules; # see also http block naxsi include line

            ##SecRulesEnabled;

              ##DeniedUrl "/RequestDenied";

              ##CheckRule "$SQL >= 8" BLOCK;

              ##CheckRule "$RFI >= 8" BLOCK;

              ##CheckRule "$TRAVERSAL >= 4" BLOCK;

              ##CheckRule "$XSS >= 8" BLOCK;

            root  html;

            index  index.html index.htm;

        }

        location /stat {

            rtmp_stat all;

            rtmp_stat_stylesheet stat.xsl;

        }

        location /stat.xsl {

            root nginx-rtmp-module/;

        }

        location /control {

            rtmp_control all;

        }

# For Naxsi remove the ## lines for full WAF mode, redirect location block used by naxsi

        ##location /RequestDenied {

        ##    return 412;

        ##}

## Lua examples !

#        location /robots.txt {

#          rewrite_by_lua '

#            if ngx.var.http_host ~= "localhost" then

#              return ngx.exec("/robots_disallow.txt");

#            end

#          ';

#        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html

        #

        error_page  500 502 503 504  /50x.html;

        location = /50x.html {

            root  html;

        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80

        #

        #location ~ \.php$ {

        #    proxy_pass  http://127.0.0.1;

        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

        #

        #location ~ \.php$ {

        #    root          html;

        #    fastcgi_pass  127.0.0.1:9000; # single backend process

        #    fastcgi_pass  myLoadBalancer; # or multiple, see example above

        #    fastcgi_index  index.php;

        #    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

        #    include        fastcgi_params;

        #}

        # deny access to .htaccess files, if Apache's document root

        # concurs with nginx's one

        #

        #location ~ /\.ht {

        #    deny  all;

        #}

    }

    # another virtual host using mix of IP-, name-, and port-based configuration

    #

    #server {

    #    listen      8000;

    #    listen      somename:8080;

    #    server_name  somename  alias  another.alias;

    #    location / {

    #        root  html;

    #        index  index.html index.htm;

    #    }

    #}

    # HTTPS server

    #

    #server {

    #    listen      443 ssl spdy;

    #    server_name  localhost;

    #    ssl                  on;

    #    ssl_certificate      cert.pem;

    #    ssl_certificate_key  cert.key;

    #    ssl_session_timeout  5m;

    #    ssl_prefer_server_ciphers On;

    #    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    #    ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:ECDH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!eNULL:!MD5:!DSS:!EXP:!ADH:!LOW:!MEDIUM;

    #    location / {

    #        root  html;

    #        index  index.html index.htm;

    #    }

    #}

}

 

启动nginx服务器

在nginx目录启动服务

 

启动命令

nginx.exe -c conf\nginx-win.conf

 

3.下载ffmpeg

下载链接:https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20161230-6993bb4-win64-static.zip

解压到任意目录下,我自己放在了d盘的ffmpegtest目录下。

 

配置环境变量

 

好了,可以推送一个流了。

ffmpeg.exe  -re -i D:\WHYQ.mp4 -f flv -c copy -flvflags no_duration_filesize rtmp://localhost:1935/live/test复制代码

 

 

正在推送

推送完毕,VLC播放器先试一下。

 

推送,拉取都可以。

后面讲如何在o2的页面上嵌入流媒体播放器。

(转自公众号:浙江兰德网络)

分享到:
评论

相关推荐

    windows上架设流媒体服务器,nginx+rtmp+obs推流+vlc拉流解决方案

    windows上架设流媒体服务器,nginx+rtmp+obs推流+vlc拉流解决方案。 Nginx是一款轻量级的Web 服务器/反向代理服务器,nginx-rmtp-module是Nginx服务器的流媒体插件。nginx通过rtmp模块提供rtmp服务, obs推送一个rtmp...

    Nginx-rtmp流媒体服务器搭建+ffmpeg推流.pdf

    Nginx-rtmp流媒体服务器搭建+ffmpeg推流.pdf 本文将对Nginx-rtmp流媒体服务器的搭建和ffmpeg推流进行详细的讲解,从操作系统的选择到Nginx的编译安装,最后到配置Nginx服务和ffmpeg推流的配置。 一、操作系统的...

    利用red5和ffmpeg搭建rtmp流媒体服务器

    根据提供的文档信息,本文将详细阐述如何使用FFmpeg和Red5搭建一个RTMP流媒体服务器,以及相关的配置和测试步骤。 首先,了解RTMP(Real Time Messaging Protocol)是一种网络协议,它被广泛用于在线直播和流媒体...

    nginx-rtmp-module搭建RTMP+HLS流媒体服务器的自动编译脚本

    inux平台下使用nginx与nginx-rtmp-module搭建RTMP+HLS流媒体服务器的详细操作步骤在文章(http://blog.csdn.net/liuchen1206/article/details/77771703)中有作介绍,现将资源整合成自动编译部署脚本,节约时间。...

    windows下基于nginx-rtmp搭建流媒体服务器

    在Windows环境下,使用nginx-rtmp搭建流媒体服务器是一项常见的技术实践,这使得用户可以通过网络实时传输音视频流。nginx-rtmp是一个基于Nginx的模块,它扩展了Nginx的功能,使其能够处理RTMP(Real-Time Messaging...

    Nginx-rtmp流媒体服务器+OBS+VCL 资料

    Nginx-RTMP流媒体服务器是基于Nginx的一个扩展模块,用于处理实时传输协议(RTMP)的流媒体内容。它为广播者提供了一个高效且可扩展的平台来分发视频和音频流,广泛应用于在线直播、视频会议、远程教育等场景。OBS...

    nginx搭建rtmp协议流媒体服务器

    **Nginx是一款广泛应用的高性能Web服务器和反向代理服务器,同时也支持RTMP协议,使得它成为搭建流媒体服务器的理想选择。在Linux环境下,我们可以通过以下步骤使用Nginx 1.6.3版本来搭建RTMP协议的流媒体服务器。**...

    搭建ffmpeg+nginx+yasm 流媒体服务器低延迟,最低延迟两三秒

    搭建ffmpeg+nginx+yasm流媒体服务器低延迟 一、流媒体服务器概念 流媒体服务器是指能够实时地传输和处理视频流的服务器,通常用于直播、监控、在线视频等应用场景中。搭建流媒体服务器需要选择合适的软件和硬件...

    rtmp+nginx实现rtmp直播

    总结一下,"rtmp+nginx实现rtmp直播"主要是利用Nginx的RTMP模块搭建一个流媒体服务器,接收并分发RTMP流。同时,通过librtmp库在客户端封装推流逻辑,将视频数据推送到Nginx服务器。这种方式适用于访问量不是特别大...

    nginx+rtmp+ffmpeg+vlc.zip

    《构建实时流媒体服务器:Nginx+RTMP+FFmpeg+VLC全面解析》 在数字媒体领域,实时流媒体技术已经变得至关重要,尤其在在线直播、视频会议和远程教育等方面。本教程将深入探讨如何利用Nginx、RTMP模块、FFmpeg和VLC...

    Linux下通过Nginx搭建RTMP流媒体服务器需要的一系列源码包

    压缩包里包含了: Linux下通Nginx搭建RTMP流媒体服务器需要的一系列源码包。 搭建方法可以参考博文: https://blog.csdn.net/xiaolong1126626497/article/details/105378894

    搭建rtmp流媒体服务器的nginx

    搭建RTMP流媒体服务器是构建在线视频直播或点播系统的关键步骤。RTMP(Real-Time Messaging Protocol)协议常用于实时音视频数据传输,而Nginx是一个高性能的HTTP和反向代理服务器,同时也支持RTMP协议。在这个场景...

    流媒体服务器搭建及其转码

    流媒体服务器搭建及其转码 流媒体服务器搭建是指将摄像头的视频流传输到前端页面进行展示的过程。流媒体服务器的搭建需要经过三个步骤:获取海康摄像头的视频流、流媒体服务器搭建、前端页面选用合适的播放器进行...

    搭建推流(RTMP/HLS)服务器

    本文将详细介绍如何在Windows环境下搭建支持RTMP和HLS协议的推流服务器,以及如何使用OBS作为推流客户端,VLC作为拉流客户端进行验证。 首先,我们要搭建RTMP推流服务器。RTMP(Real-Time Messaging Protocol)是一...

    Linux环境傻瓜式nginx+rtmp+ffmpeg套餐安装详解(获取拉流人数)

    本文旨在提供一套完整的Linux环境下Nginx、RTMP和FFmpeg的安装及配置指南,帮助读者快速搭建功能强大的流媒体服务器。文章不仅涵盖了基本概念介绍,还深入解析了各组件的具体安装步骤和配置方法。此外,还将介绍如何...

    使用nginx与nginx-rtmp-module搭建流媒体服务器

    ### 使用Nginx与Nginx-rtmp-module搭建流媒体服务器 #### 一、概述 随着互联网技术的发展,实时视频传输的需求日益增加。对于希望搭建流媒体服务器的应用场景而言,Nginx 和 Nginx-rtmp-module 成为了一个非常高效...

    OBS+NGINX 实现rtmp直播推流.zip

    在IT行业中,实时流媒体传输已经成为内容创作者和企业传播信息的重要方式。RTMP(Real-Time Messaging Protocol)是一种常用于视频直播推流的技术,它允许用户将视频内容实时传输到服务器,然后分发给观众。本教程将...

    rtmp+ngix推流.7z

    在本资源“rtmp+nginx推流.7z”中,包含的是Windows环境下利用Nginx搭建RTMP服务器的相关配置和指导,使得用户能够将本地的视频文件通过FFmpeg转化为RTMP网络视频流,并在VLC等播放器上进行播放。 Nginx是一款高...

    用FFmpeg+nginx+rtmp搭建环境实现推流.docx

    FFmpeg、nginx、rtmp三者结合可以实现一个强大且高效的流媒体服务器,下面是它们的详细介绍和搭建过程。 FFmpeg FFmpeg是一款功能强大的开源命令行工具,能够处理视频和音频文件。它可以用于视频和音频的编解码、...

Global site tag (gtag.js) - Google Analytics