当前位置:   article > 正文

ffmpeg+nginx+rtmp+web实现视频直播网站_java 用ffmpeg与nginx实现直播多路流并发播放 demo

java 用ffmpeg与nginx实现直播多路流并发播放 demo

项目简介:视频直播网站由三个部分构成: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++依赖库
 

  1. sudo apt-get install build-essential
  2. sudo apt-get install libtool

2.安装pcre依赖库

  1. sudo apt-get update
  2. 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

  1. #下载NGINX(到HOME目录)
  2. wget http://nginx.org/download/nginx-1.13.10.tar.gz
  3. #解压
  4. tar -zxvf nginx-1.13.10.tar.gz
  5. #下载RTMP(到HOME目录)
  6. git clone https://github.com/arut/nginx-rtmp-module.git
  7. #进入NGINX解压目录
  8. cd nginx-1.13.10
  9. #配置
  10. ./configure --prefix=/usr/local/nginx --add-module=~/nginx-rtmp-module --with-http_ssl_module
  11. #编译
  12. make
  13. #安装
  14. sudo make install

6 配置NGINX

  1. #打开nginx配置文件
  2. cd /usr/local/nginx/conf/
  3. sudo gedit nginx.conf
  4. #下拉至文档末尾,添加RTMP服务
  5. rtmp {
  6. server {
  7. listen 2018; #服务端口,避开重要端口即可
  8. application live {
  9. live on;
  10. }
  11. application hls_alic{
  12. live on;
  13. hls on;
  14. hls_path /tmp/hls;
  15. }
  16. }
  17. #不要关闭文档,回到http服务配置处,按以下样式对其修改,最后保存并退出
  18. http {
  19. include mime.types;
  20. default_type application/octet-stream;
  21. sendfile on;
  22. keepalive_timeout 65;
  23. server {
  24. listen 80;
  25. server_name localhost;
  26. location /stat {
  27. rtmp_stat all;
  28. rtmp_stat_stylesheet stat.xsl;
  29. }
  30. location /stat.xsl {
  31. root /usr/local/nginx/nginx-rtmp-module/;
  32. }
  33. location / {
  34. root html;
  35. index index.html index.htm;
  36. }
  37. error_page 404 /404.html
  38. location = /50x.html {
  39. root html;
  40. }
  41. }
  42. }

7 开启NGINX 服务

  1. #开启nginx服务
  2. cd /usr/local/nginx/sbin
  3. sudo ./nginx
  4. #如要查看NGINX服务是否开启,请打开浏览器并输入localhost,如果看到nginx页面即为成功,或使用以下代码
  5. ps -ef|grep nginx

三、配置推流端

简易的推流端使用ffmpeg即可完成。

1.     安装ffmpeg(如果你是16.04以上版本,直接安装就行sudo apt-get install ffmpeg)

  1. sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
  2. sudoapt-get update
  3. 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 上去验证。往下看配置拉流部分

  1. 参数备注:
  2. -f:视频格式,video4linux2代表摄像头
  3. -video_size:输入流的分辨率,随意填。
  4. -i:输入流视频格式
  5. -f:输出流视频格式
  6. 没有参数的内容就是输出流地址

四、配置拉流端

如果你想直接测试能否拉流,推荐使用VLC(www.videolan.org/),这是一个兼容各平台的工具。

1.下载并安装完成后,打开VLC-右键视频栏-打开网络串流

 2.在URL栏内输入服务器所在地址,不要漏掉端口号,并点击播放,如下图所示。

https://blog.csdn.net/sha1996118/article/details/79717471

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/195187
推荐阅读
相关标签
  

闽ICP备14008679号