赞
踩
项目简介:视频直播网站由三个部分构成:1.推流端 2.服务器 3.拉流端。在该项目中,推流端用ffmpeg完成,服务器由NGINX+RTMP模块完成,拉流端使用VLC完成。
一、开发环境简介:
推流端:系统:UBUNTU 16.04 工具:ffmpeg
服务器:系统: UBUNTU 16.04 工具:NGINX+RTMP
拉流端:系统:WINDOWS 7 工具:VLC 3.0.0
二、构建服务器
服务器由NGINX+RTMP构成。NGINX是HTTP服务器,RTMP是附加模块。
其中NGINX我选择的是用源码编译方式进行安装,因为这种方式可以自定义安装指定的模块以及最新版本。
首先配置各项依赖库。
1.安装gcc g++依赖库
- sudo apt-get install build-essential
- sudo apt-get install libtool
2.安装pcre依赖库
- sudo apt-get update
- sudo apt-get install libpcre3 libpcre3-dev
3.安装zlib依赖库
sudo apt-get install zlib1g-dev
4.安装SSL依赖库
sudo apt-get install openssl libssl-dev
5.安装NGINX
- #下载NGINX(到HOME目录)
- wget http://nginx.org/download/nginx-1.13.10.tar.gz
- #解压
- tar -zxvf nginx-1.13.10.tar.gz
- #下载RTMP(到HOME目录)
- git clone https://github.com/arut/nginx-rtmp-module.git
- #进入NGINX解压目录
- cd nginx-1.13.10
- #配置
- ./configure --prefix=/usr/local/nginx --add-module=~/nginx-rtmp-module --with-http_ssl_module
- #编译
- make
- #安装
- sudo make install
6 配置NGINX
- #打开nginx配置文件
- cd /usr/local/nginx/conf/
- sudo gedit nginx.conf
- #下拉至文档末尾,添加RTMP服务
- rtmp {
-
- server {
-
- listen 2018; #服务端口,避开重要端口即可
-
- application live {
- live on;
- }
- application hls_alic{
- live on;
- hls on;
- hls_path /tmp/hls;
- }
- }
- #不要关闭文档,回到http服务配置处,按以下样式对其修改,最后保存并退出
- http {
- include mime.types;
-
- default_type application/octet-stream;
-
- sendfile on;
-
- keepalive_timeout 65;
-
- server {
-
- listen 80;
-
- server_name localhost;
- location /stat {
- rtmp_stat all;
- rtmp_stat_stylesheet stat.xsl;
- }
-
- location /stat.xsl {
- root /usr/local/nginx/nginx-rtmp-module/;
- }
-
- location / {
- root html;
- index index.html index.htm;
- }
-
- error_page 404 /404.html
- location = /50x.html {
- root html;
- }
- }
- }
7 开启NGINX 服务
- #开启nginx服务
- cd /usr/local/nginx/sbin
- sudo ./nginx
- #如要查看NGINX服务是否开启,请打开浏览器并输入localhost,如果看到nginx页面即为成功,或使用以下代码
- ps -ef|grep nginx
三、配置推流端
简易的推流端使用ffmpeg即可完成。
1. 安装ffmpeg(如果你是16.04以上版本,直接安装就行sudo apt-get install ffmpeg)
- sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
- sudoapt-get update
- sudo apt-get install ffmpeg
2.使用ffmpeg进行推流
ffmpeg -f video4linux2-framerate 25 -video_size 640*480 -i /dev/video0 -f flv rtmp://192.168.1.107:2018/live
如果推流成功,代表RTMP服务配置成功,可以通过VLC 在windows 上去验证。往下看配置拉流部分
- 参数备注:
-
- -f:视频格式,video4linux2代表摄像头
- -video_size:输入流的分辨率,随意填。
- -i:输入流视频格式
- -f:输出流视频格式
- 没有参数的内容就是输出流地址
四、配置拉流端
如果你想直接测试能否拉流,推荐使用VLC(www.videolan.org/),这是一个兼容各平台的工具。
1.下载并安装完成后,打开VLC-右键视频栏-打开网络串流
2.在URL栏内输入服务器所在地址,不要漏掉端口号,并点击播放,如下图所示。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。