海康威视摄像头RTSP使用nginx推流到服务器直播教程

打印 上一主题 下一主题

主题 830|帖子 830|积分 2490

思路:

之前2020年在本科的时间,由于项目的需求须要将海康威视的摄像头使用推流服务器到网页举行直播。这里将本身半个月琢磨出来的步骤给大家发一些。切勿转载!!!!
使用网络摄像头中的rtsp协议---------通过rtsp链接让推流软件获取到视频流------推流软件推流到直播服务器-----直播服务器的搭建-----使用flv.js举行直播
1、须要的设备。

1、摄像头:必须是网络摄像头,支持rtsp协议。比方本教程中的海康威视摄像头

2、一个centos的服务器(由于只找到了centos的教程,这里没有ubuntu的教程。不事后来使用了宝塔面板,以是其实都无所谓)
3、一台window电脑(用于obs推流)
2、详细步骤

1、搭建直播服务器

1、设置centos的网络服务,让该虚拟机以局域网的形式链接到实验室的网络(网络上举行搜索,成功的标准是你的主机可以ping通你的虚拟机。比方下图

2、安装宝塔面板
宝塔Linux面板安装教程 - 2023年5月11日更新 - 7.9.10正式版 - Linux面板 - 宝塔面板论坛
这里有实行命令
  1. yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
复制代码

2、登录宝塔面板
安装完成后,在你的shell页面会有登录的用户名和密码。另有登录网址。登录到宝塔网站后,会有建议让你安装一些软件。不要安装nginx,不要安装nginx,不要安装nginx。这里是我对我的宝塔设置,仅供参考。

3、安装gcc-c++环境
yum install -y gcc gcc-c++ autoconf wget
yum -y install wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2 libxml2-devel curl-devel libjpeg* libpng* freetype*
4、下载nginx-http-flv-module
这个大家在网上找一下,如果肯定是这个模块嗷,这里是我之前下载的东西
??winshining-nginx-http-flv-module-master.zip
5、把解压后的内里的flv框架放在/www/server(这个路径如果没有,重新安装宝塔)

6、接下来修改宝塔的nginx的安装脚本,可以通过宝塔面板文件管理打开路径

7、添加自界说模块

8、在下面的框框内里输入这些
  1. --add-module=/www/server/nginx-http-flv-module
复制代码

8、然后修改后点击提交后,等候安装

9、安装完成后查察时间安装成模块输入(记住V是大写的)
  1. nginx -V
复制代码
10、如果你看到这着,恭喜你,已经成功一半了。

11、然后编写设置文件
你可以宝塔面板内里的首页内里举行修改。


12、然后对nginx举行设置。
  1. user  www www;
  2. worker_processes auto;
  3. error_log  /www/wwwlogs/nginx_error.log  crit;
  4. pid        /www/server/nginx/logs/nginx.pid;
  5. worker_rlimit_nofile 51200;
  6. events
  7.     {
  8.         use epoll;
  9.         worker_connections 51200;
  10.         multi_accept on;
  11.     }
  12. rtmp {
  13.     server {
  14.         listen 1935; #Nginx监听的RTMP推流/拉流端口
  15.         application live {
  16.             live on; #当推流时,RTMP路径中的APP(RTMP中一个概念)匹配myapp时,开启直播
  17.             record off; #不记录视频
  18.             gop_cache off;
  19.         }
  20.     }
  21. }
  22. http
  23.     {
  24.         include       mime.types;
  25.                 #include luawaf.conf;
  26.                 include proxy.conf;
  27.         default_type  application/octet-stream;
  28.         server_names_hash_bucket_size 512;
  29.         client_header_buffer_size 32k;
  30.         large_client_header_buffers 4 32k;
  31.         client_max_body_size 50m;
  32.         sendfile   on;
  33.         tcp_nopush on;
  34.         keepalive_timeout 60;
  35.         tcp_nodelay on;
  36.         fastcgi_connect_timeout 300;
  37.         fastcgi_send_timeout 300;
  38.         fastcgi_read_timeout 300;
  39.         fastcgi_buffer_size 64k;
  40.         fastcgi_buffers 4 64k;
  41.         fastcgi_busy_buffers_size 128k;
  42.         fastcgi_temp_file_write_size 256k;
  43.                 fastcgi_intercept_errors on;
  44.         gzip on;
  45.         gzip_min_length  1k;
  46.         gzip_buffers     4 16k;
  47.         gzip_http_version 1.1;
  48.         gzip_comp_level 2;
  49.         gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
  50.         gzip_vary on;
  51.         gzip_proxied   expired no-cache no-store private auth;
  52.         gzip_disable   "MSIE [1-6].";
  53.         limit_conn_zone $binary_remote_addr zone=perip:10m;
  54.                 limit_conn_zone $server_name zone=perserver:10m;
  55.         server_tokens off;
  56.         access_log off;
  57. server
  58.     {
  59.         listen 888;
  60.         server_name phpmyadmin;
  61.         index index.html index.htm index.php;
  62.         root  /www/server/phpmyadmin;
  63.         #error_page   404   /404.html;
  64.         include enable-php.conf;
  65.         location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
  66.         {
  67.             expires      30d;
  68.         }
  69.         location ~ .*.(js|css)?$
  70.         {
  71.             expires      12h;
  72.         }
  73.         location ~ /.
  74.         {
  75.             deny all;
  76.         }
  77.         access_log  /www/wwwlogs/access.log;
  78.     }
  79. server {
  80.             listen 8432;     #1.你想让你的这个项目跑在哪个端口
  81.             server_name localhost;     #2.当前服务器ip
  82.             #root /www/server/nginx/hls;
  83.             location /live {
  84.            
  85.             #开启flv直播
  86.             flv_live on;
  87.             chunked_transfer_encoding  on;
  88.             # 这里是要负责跨域呀
  89.             add_header 'Access-Control-Allow-Origin' '*';
  90.             add_header 'Access-Control-Allow-Credentials' 'true';
  91.             
  92.       
  93.         }
  94.         }
  95. include /www/server/panel/vhost/nginx/*.conf;
  96. }
复制代码
13、你主要须要参加的是一下设置
这个是rtmp直播设置,可以照抄
  1. rtmp {
  2.     server {
  3.         listen 1935; #Nginx监听的RTMP推流/拉流端口
  4.         application live {
  5.             live on; #当推流时,RTMP路径中的APP(RTMP中一个概念)匹配myapp时,开启直播
  6.             record off; #不记录视频
  7.             gop_cache off;
  8.         }
  9.     }
  10. }
复制代码
这个是网页访问的设置。也可以照抄
  1. server {
  2.             listen 8432;     #1.你想让你的这个项目跑在哪个端口
  3.             server_name localhost;     #2.当前服务器ip
  4.             location /live {
  5.             #开启flv直播
  6.             flv_live on;
  7.             chunked_transfer_encoding  on;
  8.             #配置跨域
  9.             add_header 'Access-Control-Allow-Origin' '*';
  10.             add_header 'Access-Control-Allow-Credentials' 'true';
  11.         }
  12. }
复制代码
再修改完数据后,要重载设置,然后重启设置

15,开启1935和8435端口

2、下载设置obs

安装它就可以了
1、添加媒体源,就是摄像头的rtsp的链接。

任意填写就可以。

取消本地文件的勾选

然后再这个输入内里填写摄像头的rtsp的链接。

再本实验的rtsp为
  1. rtsp://admin:123456789a@211.64.41.218:554/h264/ch1/main/av_stream
复制代码

2、设置推流地址
点击文件内里的设置

点击推流

这里如果你的设置是和我的一样,那么就如此添加。
这里的live的是你设置的rtmp的application的名字。这里的串流密钥是index 你可以任意写。

然后,点击应用和确定
点击开始推流

如果这里是这样的有绿标,就说明推流成功。

3、运行拉流
这里有一个例子,有好多人说这个例子失效了,我上传到CSDN后,居然须要VIP才气下载,我想了一下,要不就用百度网盘吧。
   链接:https://pan.baidu.com/s/1pDmC5GpualMdrzSm85rsiApwd=qhhp
提取码:qhhp
  ??直播2.zip
这里说一下url的拼写
'http://211.64.41.229:8432/live?port=1935&app=live&stream=index’中port是rtmp端口,app是rtmp中application的名字,而stream就是推流时指定的。然后就可以得到了视频

3、关于在线播放的设置。

在线播放也较为简单,你须要调低码率,要不然,你的直播带宽会很大。
1、调低码率
(1)、先停止推流。然后打开文件

(2)、打开设置。打开输出

(3)、然后讲输出模式调到高级,然后将串流的比特率改为800Khps

(4)然后点击应用,然后确定即可

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

祗疼妳一个

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表