[转]使用FFmpeg将视频推流到nginx,通过vlc拉流播放(通过命令的方式)
安装完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拉流播放(通过命令的方式)相关推荐
- Rtsp协议,FFmpeg推流,rtsp服务器,vlc拉流播放下载安装使用使用详细流程以及EasyDarwin服务的方案
FFmpeg推流,rtsp服务器,vlc拉流播放测试 FFmpeg 1. 简述: FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提 ...
- 【流媒体服务】本地视频推流、转码、拉流、直播综合应用(五):【1】VLC+FFMPEG+Nginx实现RTSP到RTMP网页直播
文章目录 前言 一.前几章节回顾 二.操作步骤 1.准备本地视频 2.VLC:获取RTSP视频流 3.FFMPEG:转码推流服务准备 4.Nginx:网站服务准备 5.FFMPEG推流:rtsp转rt ...
- 使用SRS搭建流服务器使用ffmpeg推流用VLC拉流
目录 一.背景 二.下载srs 三.编译srs 四.编写srs配置文件 五.启动srs 六.使用ffmpeg推流 七.使用VLC拉流观看 八.在树莓派上推一下摄像头的视频流用VLC拉流看一下延迟 一. ...
- Windows搭建RTMP服务器+OBS推流+VLC拉流
一.Nginx-RTMP服务器搭建 1.下载Nginx 该版本是带rtmp模块且编译过的nginx版本,可以直接使用 下载完成后解压,解压后的目录命名为 nginx 2.下载Nginx的RTMP扩展包 ...
- ffmpeg推流+NGINX(RTMP)+VLC-QT拉流(Win7)
1 简介 本文旨在在Windows 7系统上实现利用FFmpeg软件推流到部署的带RTMP模块的Nginx流媒体服务器上,在拉流端,基于VLC库的VLC-QT库实现拉流播放. 2 ffmpeg下载安装 ...
- 流媒体之从零实现搭建简单流媒体服务器,推流,拉流播放全景视频
一.直播与点播 直播:在我的理解中是实时录制的内容,类似各个晚会的实时直播过程,在现场采集图像的同时传输影像到网络上. 点播:是提前录制完成的内容,类似某些直播平台上根据观众的需求播放某些电影或经典电 ...
- 音视频开发系列(4):完成rtmp推流vlc拉流
上节分享了打印AVPacket中的时间戳信息,这节准备分享一下利用rtmp协议将视频和音频数据推流到nginx服务器上并利用vlc来进行拉流播放视频,达到直播的效果. 由于AVPacket包数据中的解 ...
- 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 ...
- VLC -- 使用VLC串流播放视频
VLC -- VLC串流播放视频方式 打开VLC后,在"媒体"菜单选择"流"选项,并添加一个即将要串流的视频文件: 然后点击串流按钮,进入如下页面: 该页面显示 ...
最新文章
- 毕设笔记1----div样式
- Core Location和MapKit的一些简单使用
- 开启Sharepoint 2013站点邮箱
- Oracle中快速查找锁与锁等待
- 一道关于信号量的问题
- java如何保证redis设置过期时间的原子性_分布式锁用 Redis 还是 Zookeeper
- 【Mavne】log4j-slf4j-impl cannot be present with log4j-to-slf4j
- 奥特曼传奇英雄存档丢了怎么找回_热血传奇:法师前期跨级刷怪到底划不划算?...
- 设置mybatis 的sql 打印
- 介绍几款知名的工作流系统软件
- 体验更简单的 DM —— v1.0.2
- ppt流程图箭头分叉_职场PPT实战:流程图只能箭头方框?设计师教你新思路
- linux中pwd命令,pwd命令
- Leetcode 14.最长公共前缀(Longest Common Prefix)
- Elasticsearch搜索引擎(一)——基础使用
- 权威综述:RNA m6A 与癌症
- IPU相关知识(一)
- 微型计算机主板上有哪些芯片,微机主板上装有什么
- 高可用集群下的负载均衡(5):haproxy的动静分离与读写分离
- Self-supervised Graph Neural Networks for Multi-behavior Recommendation-IJCAI 2022 读书笔记