海康威視攝像頭RTSP使用nginx推流到服務器直播教程

思路:

之前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面板 - 寶塔面板論壇

這里有執行命令

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、在下面的框框里面輸入這些

--add-module=/www/server/nginx-http-flv-module

8、然后修改后點擊提交后,等待安裝

9、安裝完成后查看時候安裝成模塊輸入(記住V是大寫的)

nginx -V

10、如果你看到這著,恭喜你,已經成功一半了。

11、然后編寫配置文件

你可以寶塔面板里面的首頁里面進行修改。

12、然后對nginx進行配置。

user  www www;
worker_processes auto;
error_log  /www/wwwlogs/nginx_error.log  crit;
pid        /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;events{use epoll;worker_connections 51200;multi_accept on;}
rtmp {server {listen 1935; #Nginx監聽的RTMP推流/拉流端口application live {live on; #當推流時,RTMP路徑中的APP(RTMP中一個概念)匹配myapp時,開啟直播record off; #不記錄視頻gop_cache off;}}
}
http{include       mime.types;#include luawaf.conf;include proxy.conf;default_type  application/octet-stream;server_names_hash_bucket_size 512;client_header_buffer_size 32k;large_client_header_buffers 4 32k;client_max_body_size 50m;sendfile   on;tcp_nopush on;keepalive_timeout 60;tcp_nodelay on;fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;fastcgi_buffer_size 64k;fastcgi_buffers 4 64k;fastcgi_busy_buffers_size 128k;fastcgi_temp_file_write_size 256k;fastcgi_intercept_errors on;gzip on;gzip_min_length  1k;gzip_buffers     4 16k;gzip_http_version 1.1;gzip_comp_level 2;gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;gzip_vary on;gzip_proxied   expired no-cache no-store private auth;gzip_disable   "MSIE [1-6].";limit_conn_zone $binary_remote_addr zone=perip:10m;limit_conn_zone $server_name zone=perserver:10m;server_tokens off;access_log off;server{listen 888;server_name phpmyadmin;index index.html index.htm index.php;root  /www/server/phpmyadmin;#error_page   404   /404.html;include enable-php.conf;location ~ .*.(gif|jpg|jpeg|png|bmp|swf)${expires      30d;}location ~ .*.(js|css)?${expires      12h;}location ~ /.{deny all;}access_log  /www/wwwlogs/access.log;}
server {listen 8432;     #1.你想讓你的這個項目跑在哪個端口server_name localhost;     #2.當前服務器ip#root /www/server/nginx/hls;location /live {#開啟flv直播flv_live on;chunked_transfer_encoding  on;# 這里是要負責跨域呀add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Credentials' 'true';} }include /www/server/panel/vhost/nginx/*.conf;
}

13、你主要需要加入的是一下配置

這個是rtmp直播配置,可以照抄

rtmp {server {listen 1935; #Nginx監聽的RTMP推流/拉流端口application live {live on; #當推流時,RTMP路徑中的APP(RTMP中一個概念)匹配myapp時,開啟直播record off; #不記錄視頻gop_cache off;}}
}

這個是網頁訪問的配置。也可以照抄

 server {listen 8432;     #1.你想讓你的這個項目跑在哪個端口server_name localhost;     #2.當前服務器iplocation /live {#開啟flv直播flv_live on;chunked_transfer_encoding  on;#配置跨域add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Credentials' 'true';} }

再修改完數據后,要重載配置,然后重啟配置

15,開啟1935和8435端口

2、下載配置obs

安裝它就可以了

1、添加媒體源,就是攝像頭的rtsp的鏈接。

隨便填寫就可以。

取消本地文件的勾選

然后再這個輸入里面填寫攝像頭的rtsp的鏈接。

再本實驗的rtsp為

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)然后點擊應用,然后確定即可

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/896315.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896315.shtml
英文地址,請注明出處:http://en.pswp.cn/news/896315.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鴻蒙開發深入淺出03(封裝通用LazyForEach實現懶加載)

鴻蒙開發深入淺出03(封裝通用LazyForEach實現懶加載) 1、效果展示2、ets/models/BasicDataSource.ets3、ets/models/HomeData.ets4、ets/api/home.ets5、ets/pages/Home.ets6、ets/views/Home/SwiperLayout.ets7、后端代碼 1、效果展示 2、ets/models/Ba…

【Rust中級教程】2.8. API設計原則之靈活性(flexible) Pt.4:顯式析構函數的問題及3種解決方案

喜歡的話別忘了點贊、收藏加關注哦(加關注即可閱讀全文),對接下來的教程有興趣的可以關注專欄。謝謝喵!(・ω・) 說句題外話,這篇文章一共5721個字,是我截至目前寫的最長的一篇文章&a…

一周學會Flask3 Python Web開發-Jinja2模板過濾器使用

鋒哥原創的Flask3 Python Web開發 Flask3視頻教程: 2025版 Flask3 Python web開發 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili 在Jinja2中,過濾器(filter)是一些可以用來修改和過濾變量值的特殊函數,過濾器和變量用一個豎線 | &a…

數據庫 安裝initializing database不通過

出現一下情況時: 處理方法: 將自己的電腦名稱 中文改成英文 即可通過

嵌入式開發:傅里葉變換(5):STM32和Matlab聯調驗證FFT

目錄 1. MATLAB獲取 STM32 的原始數據 2. 將數據上傳到電腦 3. MATLAB 接收數據并驗證 STM32進行傅里葉代碼 結果分析 STM32 和 MATLAB 聯調是嵌入式開發中常見的工作流程,通常目的是將 STM32 采集的數據或控制信號傳輸到 MATLAB 中進行實時處理、分析和可視化…

Mobaxterm服務器常用命令(持續更新)

切換文件夾 cd path # for example, cd /gpu03/deeplearning/進入不同GPU ssh mgmt ssh gpu01 ssh gpu03尋找文件位置 find /path -name file_name #for example, find / -name lib #在根目錄下搜尋名為lib文件 #for example, find /home/deeplearning -name "lib"…

MFC文件和注冊表的操作

MFC文件和注冊表的操作 日志、操作配置文件、ini、注冊表、音視頻的文件存儲 Linux下一切皆文件 C/C操作文件 const char* 與 char* const const char* 常量指針,表示指向的內容為常量。指針可以指向其他變量,但是內容不能再變了 char szName[6]&qu…

微信小程序源碼逆向 MacOS

前言 日常工作中經常會遇到對小程序的滲透測試,微信小程序的源碼是保存在用戶客戶端本地,在滲透的過程中我們需要提取小程序的源碼進行問題分析,本篇介紹如何在蘋果電腦 MacOS 系統上提取微信小程序的源碼。 0x01 微信小程序提取 在蘋果電…

ubuntu-24.04.1-desktop 中安裝 QT6.7

ubuntu-24.04.1-desktop 中安裝 QT6.7 1 環境準備1.1 安裝 GCC 和必要的開發包:1.2 Xshell 連接 Ubuntu2 安裝 Qt 和 Qt Creator:2.1 下載在線安裝器2.2 在虛擬機中為文件添加可執行權限2.3 配置鏡像地址運行安裝器2.4 錯誤:libxcb-xinerama.so.0: cannot open shared objec…

告別 Freetype,擁抱高效字體處理新方案 - 純c#解析字體庫

在當今數字化的時代,字體處理在眾多領域中都扮演著至關重要的角色,無論是平面設計、網頁開發,還是移動應用、游戲制作,合適的字體選擇與精準的處理都能極大地提升用戶體驗。而在字體處理的技術領域,Freetype 庫一直是開…

React + TypeScript 復雜布局開發實戰

React TypeScript 復雜布局開發實戰 一、項目架構設計(基于最新技術棧) 1.1 技術選型與工程創建 # 使用Vite 5.x React 19 TypeScript 5.4 npx create-vitelatest power-designer-ui --template react-ts cd power-designer-ui && npm inst…

從最小依賴角度談靜態庫與動態庫的選擇及配置策略

文章目錄 1. 前言2. 靜態庫與動態庫:依賴最小化的抉擇2.1 靜態庫概述2.2 動態庫概述2.3 依賴最小化角度的選擇建議 3. 運行時庫配置策略:/MT 與 /MD 的取舍3.1 /MT 與 /MD 的優劣比較3.2 配置選擇的建議 4. 實際案例與配置示例4.1 靜態庫示例&#xff08…

深度學習pytorch之19種優化算法(optimizer)解析

提示:有謬誤請指正 摘要 本博客詳細介紹了多種常見的深度學習優化算法,包括經典的LBFGS 、Rprop 、Adagrad、RMSprop 、Adadelta 、ASGD 、Adamax、Adam、AdamW、NAdam、RAdam以及SparseAdam等,通過對這些算法的公式和參數說明進行詳細解析…

【深度學習神經網絡學習筆記(二)】神經網絡基礎

神經網絡基礎 神經網絡基礎前言1、Logistic 回歸2、邏輯回歸損失函數3、梯度下降算法4、導數5、導數計算圖6、鏈式法則7、邏輯回歸的梯度下降 神經網絡基礎 前言 Logistic 回歸是一種廣泛應用于統計學和機器學習領域的廣義線性回歸模型,主要用于解決二分類問題。盡…

002簡單MaterialApp主題和Scaffold腳手架

002最簡單的MaterialApp主題和Scaffold腳手架使用導航欄_嗶哩嗶哩_bilibilihttps://www.bilibili.com/video/BV1RZ421p7BL?spm_id_from333.788.videopod.episodes&vd_source68aea1c1d33b45ca3285a52d4ef7365f&p1501.MaterialApp純凈的 /*MaterialApp 是主題,自帶方向設…

DeepSeek開源周Day1:FlashMLA引爆AI推理性能革命!

項目地址:GitHub - deepseek-ai/FlashMLA 開源日歷:2025-02-24起 每日9AM(北京時間)更新,持續五天! ? 一、開源周震撼啟幕 繼上周預告后,DeepSeek于北京時間今晨9點準時開源「FlashMLA」,打響開源周五連…

17.C++類型轉換

1. C語言中的類型轉換 在C語言中,如果賦值運算符左右兩側類型不同,或者形參與實參類型不匹配,或者返回值類型與接收返回值類型不一致時,就需要發生類型轉換,C語言中共有兩種形式的類型轉換:隱式類型轉換和顯…

springboot志同道合交友網站設計與實現(代碼+數據庫+LW)

摘 要 現代經濟快節奏發展以及不斷完善升級的信息化技術,讓傳統數據信息的管理升級為軟件存儲,歸納,集中處理數據信息的管理方式。本志同道合交友網站就是在這樣的大環境下誕生,其可以幫助使用者在短時間內處理完畢龐大的數據信…

VMware中的linux常用指令

常用 Linux 基礎命令 文件與目錄操作 ls:查看當前目錄的文件和子目錄,ls -a顯示所有文件,包括隱藏文件。cd:切換目錄,如 **cd ~** 切換到個人家目錄。pwd:查看當前目錄。mkdir:創建文件夾&#…

20250212:https通信

1:防止DNS劫持:使用 https 進行通信。 因為是SDK授權開發,需要盡量壓縮so庫文件和三方依賴。所以第一想法是使用 head only 的 cpp-httplib 進行開發。 cpp-httplib 需要 SSL 版本是 3.0及以上。但本地已經在開發使用的是1.0.2a版本,不滿足需求。 方案1:升級OpenSSL 將Op…