安装完FFmpeg,nginx,nginx-rtmp-module,vlc后就可以进行推流、拉流测试了。博主的nginx安装在VMWare的Ubuntu中(安装方法可以参考https://blog.csdn.net/u014552102/article/details/86599289),ffmpeg和vlc都安装在windows中(win10)。

一、nginx配置

首先我们得进行nginx的rtmp功能配置和直播状态监听配置。我们切换为root用户,使用vim打开Ubuntu的/usr/local/nginx/conf/nginx.conf文件,修改该文件内容为如下所示:

#user  nobody;worker_processes  1; #error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info; #pid        logs/nginx.pid;  events {    worker_connections  1024;} rtmp{    server    {        listen 1935;        chunk_size 4096;        application live        {            live on;        }    }} http {    include       mime.types;    default_type  application/octet-stream;     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '    #                  '$status $body_bytes_sent "$http_referer" '    #                  '"$http_user_agent" "$http_x_forwarded_for"';     #access_log  logs/access.log  main;     sendfile        on;    #tcp_nopush     on;     #keepalive_timeout  0;    keepalive_timeout  65;     #gzip  on;     server {        listen       8080;        location /stat{                rtmp_stat all;                rtmp_stat_stylesheet stat.xsl;        }        location /stat.xsl{               root /home/cjc/安装包/nginx/nginx-rtmp-module-master;        }    }     server {        listen       80;        server_name  localhost;         #charset koi8-r;         #access_log  logs/host.access.log  main;         location / {            root   html;            index  index.html index.htm;        }         #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;        #    fastcgi_index  index.php;        #    fastcgi_param  SCRIPT_FILENAME  /scripts$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;    #    server_name  localhost;     #    ssl_certificate      cert.pem;    #    ssl_certificate_key  cert.key;     #    ssl_session_cache    shared:SSL:1m;    #    ssl_session_timeout  5m;     #    ssl_ciphers  HIGH:!aNULL:!MD5;    #    ssl_prefer_server_ciphers  on;     #    location / {    #        root   html;    #        index  index.html index.htm;    #    }    #}}

其中,在nginx.conf文件中修改的内容中,新增加的下面的内容是使nginx增加rtmp功能。其中1935是监听的端口,live on表示开启实时。

rtmp{    server    {        listen 1935;        chunk_size 4096;        application live        {            live on;        }    }}

在nginx.conf文件中新增加的下面的内容,是使nginx能具有直播状态监听的功能。其中/home/cjc/安装包/nginx/nginx-rtmp-module-master是博主安装的nginx-rtmp-module的绝对路径,各位得根据自己安装的nginx-rtmp-module的路径进行修改。8080是拉流请求的端口号。

 server {        listen       8080;        location /stat{                rtmp_stat all;                rtmp_stat_stylesheet stat.xsl;        }        location /stat.xsl{               root /home/cjc/安装包/nginx/nginx-rtmp-module-master;        }    }

执行完上述步骤后,如果nginx服务器正在运行,我们得先关掉nginx服务器然后重启nginx后,上述更改的配置才会生效。我们执行命令:

killall nginx

二、推流

推流,指的是把采集阶段封包好的内容传输到服务器的过程,主播端把本地采集的语音视频流推送到媒体服务器。就是将现场的视频信号传到网络的过程。在本博文中我们会将主机windows中的媒体文件video5.mp4推流到虚拟机Ubuntu的流媒体服务器nginx中,然后通过windows下的vlc播放出来。

在Ubuntu中执行命令:

ifconfig

如下图所示,可以看到Ubuntu的ip地址是192.168.1.109。记住这个地址。推流和拉流都要用到这个地址。

然后启动nginx服务器,在Ubuntu中执行命令:

/usr/local/nginx/sbin/nginx

然后我们来到FFmpeg安装目录。博主的FFmpeg安装在主机的win10下,如下图所示,文件夹里面有ffmpeg.exe和其依赖的dll,还有媒体文件video5.mp4。我们通过ffmpeg将video5.mp4推流到流媒体服务器crtmpserver中。

在windows的命令提示符中执行命令:

ffmpeg -i video5.mp4  -f flv rtmp://192.168.1.109/live/test1

其中-i 表示输入流。这里的输入流是video5.mp4。-f 表示设定的输出格式。这里因为要推流,推流得使用flv格式,所以设成-f flv。192.168.1.109是要推流到的流媒体服务器所在的Ubuntu的ip地址。上述语句的意思是通过ffmpeg将媒体文件video5.mp4推流到ip地址为192.168.1.109的平台中。

执行完上述命令,会出现如下界面,表示推流成功了。

然后我们在浏览器中输入http://192.168.1.109:8080/stat。其中192.168.1.109是nginx所在的Ubuntu的ip地址,8080是端口号。如下图所示,在下面的页面中我们可以进行直播状态监听了。

三、拉流

拉流指的是用户端从服务器拉取语音视频流到客户端播放。在本博文中我们会通过vlc拉流Ubuntu的crtmpserver中的语音视频流,然后在vlc播放。

执行完上述推流的步骤后,我们在windows中打开vlc,点击“打开网络串流”,如下图所示:

输入网络URL,如下图所示:

可以看到在vlc中出现视频画面了,表示拉流成功了

[转]使用FFmpeg将视频推流到nginx,通过vlc拉流播放(通过命令的方式)相关推荐

  1. Rtsp协议,FFmpeg推流,rtsp服务器,vlc拉流播放下载安装使用使用详细流程以及EasyDarwin服务的方案

    FFmpeg推流,rtsp服务器,vlc拉流播放测试 FFmpeg 1. 简述: FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提 ...

  2. 【流媒体服务】本地视频推流、转码、拉流、直播综合应用(五):【1】VLC+FFMPEG+Nginx实现RTSP到RTMP网页直播

    文章目录 前言 一.前几章节回顾 二.操作步骤 1.准备本地视频 2.VLC:获取RTSP视频流 3.FFMPEG:转码推流服务准备 4.Nginx:网站服务准备 5.FFMPEG推流:rtsp转rt ...

  3. 使用SRS搭建流服务器使用ffmpeg推流用VLC拉流

    目录 一.背景 二.下载srs 三.编译srs 四.编写srs配置文件 五.启动srs 六.使用ffmpeg推流 七.使用VLC拉流观看 八.在树莓派上推一下摄像头的视频流用VLC拉流看一下延迟 一. ...

  4. Windows搭建RTMP服务器+OBS推流+VLC拉流

    一.Nginx-RTMP服务器搭建 1.下载Nginx 该版本是带rtmp模块且编译过的nginx版本,可以直接使用 下载完成后解压,解压后的目录命名为 nginx 2.下载Nginx的RTMP扩展包 ...

  5. ffmpeg推流+NGINX(RTMP)+VLC-QT拉流(Win7)

    1 简介 本文旨在在Windows 7系统上实现利用FFmpeg软件推流到部署的带RTMP模块的Nginx流媒体服务器上,在拉流端,基于VLC库的VLC-QT库实现拉流播放. 2 ffmpeg下载安装 ...

  6. 流媒体之从零实现搭建简单流媒体服务器,推流,拉流播放全景视频

    一.直播与点播 直播:在我的理解中是实时录制的内容,类似各个晚会的实时直播过程,在现场采集图像的同时传输影像到网络上. 点播:是提前录制完成的内容,类似某些直播平台上根据观众的需求播放某些电影或经典电 ...

  7. 音视频开发系列(4):完成rtmp推流vlc拉流

    上节分享了打印AVPacket中的时间戳信息,这节准备分享一下利用rtmp协议将视频和音频数据推流到nginx服务器上并利用vlc来进行拉流播放视频,达到直播的效果. 由于AVPacket包数据中的解 ...

  8. linux做m3u8推流服务器,linux搭建nginx流服务器,OBS推流,VCL拉流播放

    所需软件工具: 1.centos6.5 2.nginx1.16.0.tar.gz .nginx-rtmp-module-master.zip .nginx_mod_h264_streaming.tar ...

  9. VLC -- 使用VLC串流播放视频

    VLC -- VLC串流播放视频方式 打开VLC后,在"媒体"菜单选择"流"选项,并添加一个即将要串流的视频文件: 然后点击串流按钮,进入如下页面: 该页面显示 ...

最新文章

  1. 毕设笔记1----div样式
  2. Core Location和MapKit的一些简单使用
  3. 开启Sharepoint 2013站点邮箱
  4. Oracle中快速查找锁与锁等待
  5. 一道关于信号量的问题
  6. java如何保证redis设置过期时间的原子性_分布式锁用 Redis 还是 Zookeeper
  7. 【Mavne】log4j-slf4j-impl cannot be present with log4j-to-slf4j
  8. 奥特曼传奇英雄存档丢了怎么找回_热血传奇:法师前期跨级刷怪到底划不划算?...
  9. 设置mybatis 的sql 打印
  10. 介绍几款知名的工作流系统软件
  11. 体验更简单的 DM —— v1.0.2
  12. ppt流程图箭头分叉_职场PPT实战:流程图只能箭头方框?设计师教你新思路
  13. linux中pwd命令,pwd命令
  14. Leetcode 14.最长公共前缀(Longest Common Prefix)
  15. Elasticsearch搜索引擎(一)——基础使用
  16. 权威综述:RNA m6A 与癌症
  17. IPU相关知识(一)
  18. 微型计算机主板上有哪些芯片,微机主板上装有什么
  19. 高可用集群下的负载均衡(5):haproxy的动静分离与读写分离
  20. Self-supervised Graph Neural Networks for Multi-behavior Recommendation-IJCAI 2022 读书笔记

热门文章

  1. MATLAB中的for循环
  2. 动态代理 and Listener监听器
  3. 逻辑SQL Server数据复制101
  4. SQL Server 2019中的图形数据库功能–第1部分
  5. 从压缩文件将数据导入SQL Server
  6. linux 配置 tmux
  7. Python基础(map/reduce)
  8. 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接)
  9. 线性表顺序表模板 纯本人手工创造
  10. 关于开票本的几个操作细节