思路:
之前2020年在本科的時(shí)候,由于項(xiàng)目的需求需要將海康威視的攝像頭使用推流服務(wù)器到網(wǎng)頁(yè)進(jìn)行直播。這里將自己半個(gè)月琢磨出來的步驟給大家發(fā)一些。切勿轉(zhuǎn)載?。。?!
使用網(wǎng)絡(luò)攝像頭中的rtsp協(xié)議---------通過rtsp鏈接讓推流軟件獲取到視頻流------推流軟件推流到直播服務(wù)器-----直播服務(wù)器的搭建-----使用flv.js進(jìn)行直播
1、需要的設(shè)備。
1、攝像頭:必須是網(wǎng)絡(luò)攝像頭,支持rtsp協(xié)議。例如本教程中的??低晹z像頭
2、一個(gè)centos的服務(wù)器(由于只找到了centos的教程,這里沒有ubuntu的教程。不過后來使用了寶塔面板,所以其實(shí)都無所謂)
3、一臺(tái)window電腦(用于obs推流)
2、具體步驟
1、搭建直播服務(wù)器
1、配置centos的網(wǎng)絡(luò)服務(wù),讓該虛擬機(jī)以局域網(wǎng)的形式鏈接到實(shí)驗(yàn)室的網(wǎng)絡(luò)(網(wǎng)絡(luò)上進(jìn)行搜索,成功的標(biāo)準(zhǔn)是你的主機(jī)可以ping通你的虛擬機(jī)。例如下圖
2、安裝寶塔面板
寶塔Linux面板安裝教程 - 2023年5月11日更新 - 7.9.10正式版 - Linux面板 - 寶塔面板論壇
這里有執(zhí)行命令
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
2、登錄寶塔面板
安裝完成后,在你的shell頁(yè)面會(huì)有登錄的用戶名和密碼。還有登錄網(wǎng)址。登錄到寶塔網(wǎng)站后,會(huì)有建議讓你安裝一些軟件。不要安裝nginx,不要安裝nginx,不要安裝nginx。這里是我對(duì)我的寶塔配置,僅供參考。
3、安裝gcc-c++環(huán)境
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
這個(gè)大家在網(wǎng)上找一下,如果一定是這個(gè)模塊嗷,這里是我之前下載的東西
??winshining-nginx-http-flv-module-master.zip
5、把解壓后的里面的flv框架放在/www/server(這個(gè)路徑如果沒有,重新安裝寶塔)
6、接下來修改寶塔的nginx的安裝腳本,可以通過寶塔面板文件管理打開路徑
7、添加自定義模塊
8、在下面的框框里面輸入這些
--add-module=/www/server/nginx-http-flv-module
8、然后修改后點(diǎn)擊提交后,等待安裝
9、安裝完成后查看時(shí)候安裝成模塊輸入(記住V是大寫的)
nginx -V
10、如果你看到這著,恭喜你,已經(jīng)成功一半了。
11、然后編寫配置文件
你可以寶塔面板里面的首頁(yè)里面進(jìn)行修改。
12、然后對(duì)nginx進(jìn)行配置。
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監(jiān)聽的RTMP推流/拉流端口
application live {
live on; #當(dāng)推流時(shí),RTMP路徑中的APP(RTMP中一個(gè)概念)匹配myapp時(shí),開啟直播
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.你想讓你的這個(gè)項(xiàng)目跑在哪個(gè)端口
server_name localhost; #2.當(dāng)前服務(wù)器ip
#root /www/server/nginx/hls;
location /live {
#開啟flv直播
flv_live on;
chunked_transfer_encoding on;
# 這里是要負(fù)責(zé)跨域呀
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
}
}
include /www/server/panel/vhost/nginx/*.conf;
}
13、你主要需要加入的是一下配置
這個(gè)是rtmp直播配置,可以照抄
rtmp {
server {
listen 1935; #Nginx監(jiān)聽的RTMP推流/拉流端口
application live {
live on; #當(dāng)推流時(shí),RTMP路徑中的APP(RTMP中一個(gè)概念)匹配myapp時(shí),開啟直播
record off; #不記錄視頻
gop_cache off;
}
}
}
這個(gè)是網(wǎng)頁(yè)訪問的配置。也可以照抄
server {
listen 8432; #1.你想讓你的這個(gè)項(xiàng)目跑在哪個(gè)端口
server_name localhost; #2.當(dāng)前服務(wù)器ip
location /live {
#開啟flv直播
flv_live on;
chunked_transfer_encoding on;
#配置跨域
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
}
}
再修改完數(shù)據(jù)后,要重載配置,然后重啟配置
15,開啟1935和8435端口
2、下載配置obs
安裝它就可以了
1、添加媒體源,就是攝像頭的rtsp的鏈接。
隨便填寫就可以。
取消本地文件的勾選
然后再這個(gè)輸入里面填寫攝像頭的rtsp的鏈接。
再本實(shí)驗(yàn)的rtsp為
rtsp://admin:123456789a@211.64.41.218:554/h264/ch1/main/av_stream
2、設(shè)置推流地址
點(diǎn)擊文件里面的設(shè)置
點(diǎn)擊推流
這里如果你的配置是和我的一樣,那么就如此添加。
這里的live的是你配置的rtmp的application的名字。這里的串流密鑰是index 你可以隨便寫。
然后,點(diǎn)擊應(yīng)用和確定
點(diǎn)擊開始推流
如果這里是這樣的有綠標(biāo),就說明推流成功。
3、運(yùn)行拉流
這里有一個(gè)例子
??直播2.zip
這里說一下url的拼寫
'http://211.64.41.229:8432/live?port=1935&app=live&stream=index’中port是rtmp端口,app是rtmp中application的名字,而stream就是推流時(shí)指定的。然后就可以得到了視頻
3、關(guān)于在線播放的配置。
在線播放也較為簡(jiǎn)單,你需要調(diào)低碼率,要不然,你的直播帶寬會(huì)很大。
1、調(diào)低碼率
(1)、先停止推流。然后打開文件
(2)、打開設(shè)置。打開輸出
(3)、然后講輸出模式調(diào)到高級(jí),然后將串流的比特率改為800Khps
文章來源:http://www.zghlxwxcb.cn/news/detail-794639.html
(4)然后點(diǎn)擊應(yīng)用,然后確定即可文章來源地址http://www.zghlxwxcb.cn/news/detail-794639.html
到了這里,關(guān)于??低晹z像頭RTSP使用nginx推流到服務(wù)器直播教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!