当前位置: 首页 > wzjs >正文

网站欢迎框代码建设项目试运行备案申请网站

网站欢迎框代码,建设项目试运行备案申请网站,做网站发布信息,毕业设计可以做网站吗欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 从零到1搭建一台流媒体服务器1.引言2.搭建环境3.安装过程1.更新系统2.手动编译NginxRTMP1.安装相关依赖2.下载源码3.联合编译 3.配置Nginx为systemd系统管理1.创建服务文件2.重新加载systemd配置 4.配…

欢迎来到 破晓的历程的 博客

⛺️不负时光,不负己✈️

文章目录

  • 从零到1搭建一台流媒体服务器
    • 1.引言
    • 2.搭建环境
    • 3.安装过程
      • 1.更新系统
      • 2.手动编译Nginx+RTMP
        • 1.安装相关依赖
        • 2.下载源码
        • 3.联合编译
      • 3.配置Nginx为`systemd`系统管理
        • 1.创建服务文件
        • 2.重新加载`systemd`配置
    • 4.配置nginx
    • 5.推流与拉流测试
      • 1.ubuntu端
        • 1.什么是`FFmpeg`
        • 2.源码下载与编译
          • 1.安装依赖工具
          • 2.编译并安装
          • 5.监测安装
      • 2.window端
      • 3.测试
        • Linux端:

从零到1搭建一台流媒体服务器

1.引言

我在实际开发过程中遇到这样的需求,将摄像头采集的画面信息传输到Linux服务器上,然后传输到windows11端进行播放。基于此需求,所以我们需要在Linux环境下搭建一台类似"中转站"的流媒体服务器,摄像头将采集的数据信息推流到"流媒体服务器",然后windows环境下的播放器从流媒体服务器进行"拉流"。这就是我们常见的推拉流动作。

2.搭建环境

  • windows端:win11家庭版
  • Linux端:Ubuntu 24.04.2 LTS
  • nginx: nginx/1.25.3

3.安装过程

1.更新系统

我们在每次安装服务时,最好都要更新一下系统,养成良好习惯

sudo apt update && sudo apt upgrade -y

这个地方,在裸操作系统上,我们最好更改一下Apt源,改成国内的阿里云或清华源,我这里改成了阿里云

一般软件源的配置文件都在/etc/apt/source.list中,将文件打开,把文件内容替换成如下内容

deb http://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse

2.手动编译Nginx+RTMP

1.安装相关依赖
sudo apt install -y build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev
2.下载源码

cd到你想要将源码安装到的目录,执行以下命令获取源码,并解压缩

wget http://nginx.org/download/nginx-1.25.3.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/refs/tags/v1.2.2.tar.gz -O nginx-rtmp-module-1.2.2.tar.gztar -xzvf nginx-1.25.3.tar.gz
tar -xzvf nginx-rtmp-module-1.2.2.tar.gz

在这里插入图片描述

3.联合编译

将以下命令按顺序执行

 cd nginx-1.25.3cd nginx-1.25.3
./configure --add-module=../nginx-rtmp-module-1.2.2 --with-http_ssl_module
make
sudo make install

命令执行完成后,输入如下查询命令

root@lqw:/home/lqw/VStream/nginx-1.25.3# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.25.3

如果正常显示nginx的版本信息等,就证明安装成功了。

3.配置Nginx为systemd系统管理

接下来我们试图启动nginx服务

root@lqw:/home/lqw/VStream/nginx-1.25.3# systemctl start nginx
Failed to start nginx.service: Unit nginx.service not found.

这个错误表明我们手动编译的nginx并不会自动注册到systemd服务,并不会自动注册为systemd服务,需要我们手动添加

添加方式如下:

1.创建服务文件
vim /etc/systemd/system/nginx.service

写入以下内容

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target[Service]
Type=forking
ExecStartPre=/usr/local/nginx/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
ExecStartPost=/bin/sleep 1
PrivateTmp=true[Install]
WantedBy=multi-user.target
2.重新加载systemd配置
sudo systemctl daemon-reload

再次尝试开启nginx服务并对nginx运行状态进行查询

systemctl start nginx
systemctl status nginx

结果如下:

root@lqw:/home/lqw/VStream/nginx-1.25.3# systemctl status nginx
● nginx.service - The NGINX HTTP and reverse proxy serverLoaded: loaded (/etc/systemd/system/nginx.service; disabled; preset: enabled)Active: active (running) since Thu 2025-04-03 14:14:41 CST; 4s agoProcess: 15580 ExecStartPre=/usr/local/nginx/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)Process: 15582 ExecStart=/usr/local/nginx/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)Process: 15585 ExecStartPost=/bin/sleep 1 (code=exited, status=0/SUCCESS)Main PID: 15583 (nginx)Tasks: 2 (limit: 9098)Memory: 1.9M (peak: 3.6M)CPU: 22msCGroup: /system.slice/nginx.service├─15583 "nginx: master process /usr/local/nginx/sbin/nginx -g daemon on; master_process on;"└─15584 "nginx: worker process"4月 03 14:14:40 lqw systemd[1]: Starting nginx.service - The NGINX HTTP and reverse proxy server...
4月 03 14:14:41 lqw systemd[1]: Started nginx.service - The NGINX HTTP and reverse proxy server.

表明此时nginx正在运行

4.配置nginx

nginx的配置文件所在路径为:/etc/nginx/nginx.conf

我们打开这个文件,将文件中的内容替换成如下内容

user nobody nogroup;
worker_processes auto;error_log logs/error.log warn;
pid logs/nginx.pid;events {worker_connections 1024;
}rtmp {server {listen 1935;chunk_size 4096;application live {live on;record off;# HLS 基础配置hls on;hls_path /tmp/hls;hls_fragment 3s;hls_playlist_length 60s;# 安全设置allow publish 127.0.0.1;  # 限制推流IPallow play all;}}
}http {include mime.types;default_type application/octet-stream;server {listen 80;server_name localhost;# HLS 拉流端点location /hls {types {application/vnd.apple.mpegurl m3u8;video/mp2t ts;}root /tmp;add_header 'Cache-Control' 'no-cache';add_header 'Access-Control-Allow-Origin' '*';}# 基础状态监控location /stat {rtmp_stat all;rtmp_stat_stylesheet stat.xsl;}location /stat.xsl {root html;}}
}

然后使配置生效

sudo nginx -s reload  # 重新加载配置(不重启服务)

我们也可以在 /usr/local/nginx/sbin下运行如下命令验证nginx配置文件是否有误

root@lqw:/usr/local/nginx/sbin# ./nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

5.推流与拉流测试

假定我们在ubuntu服务器端进行推流动作,在windows端进行拉流动作

现在我们配置我们需要的环境

1.ubuntu端

安装FFmpeg

1.什么是FFmpeg

FFmpeg 是一个开源、跨平台的多媒体处理工具和开发库,用于录制、转换、流式传输音频和视频。它支持几乎所有常见的音视频格式,并且功能强大,是许多音视频软件和平台(如 YouTube、VLC、Blender 等)的核心依赖。接下来我们开始安装

2.源码下载与编译

执行以下命令完成操作

1.安装依赖工具
sudo apt update 
sudo apt install -y build-essential git cmake nasm yasm \libx264-dev libx265-dev libvpx-dev libfdk-aac-dev \libmp3lame-dev libopus-dev libass-dev
2.编译并安装
./configure --enable-gpl --enable-libx264 --enable-libx265 \--enable-libvpx --enable-libfdk-aac --enable-libmp3lame \--enable-libopus --enable-libass
make -j$(nproc)  # 使用多核加速编译
sudo make install
5.监测安装
ffmpeg -version

2.window端

安装FFmpeg

本文以window64位系统为例

这里我贴一份文章,打开可以参考这份文章来进行下载

我们在ubuntu下准备一段MP4的视频

PS C:\Users\20510\Videos> ffmpeg -rw_timeout 5000000 -i rtmp://192.168.28.74/live/real_video -c copy -f segment -segment_time 5 output_%03d.mp4
ffmpeg -re -i test.mp4        -vf scale=1280:720        -r 24        -flags +global_header        -c:v libx264 -preset fast        -c:a aac -b:a 128k        -f flv rtmp://192.168.28.74/live/real_video
ffplay rtmp://服务器IP/live/mystream
ffmpeg -re -stream_loop -1 -i test.mp4 \-vf "scale=1280:720" -r 24 \-c:v libx265 -preset slower -b:v 5000k -x265-params "psy-rd=2.0:aq-mode=3" \-c:a aac -b:a 128k \-f flv rtmp://192.168.28.74/live/real_video

3.测试

Linux端:

进入准备好的视频所在目录

输入以下命令

ffmpeg -re -stream_loop -1 -i test.mp4 \-vf "scale=1280:720:flags=lanczos,format=yuv420p" -r 24 \-flags +global_header \-c:v libx264 -preset slower -crf 18 -b:v 6000k -maxrate 8000k -bufsize 12000k \-x264-params "profile=high:keyint=48:ref=4:aq-mode=2:psy-rd=1.0" \-c:a aac -b:a 192k -ar 48000 -ac 2 \-f flv rtmp://192.168.28.74/live/real_video

这段代码的作用是对test.mp4视频文件进行循环推流😘😂,记住:循环推

windows端:

  1. 按win+R快捷键,输入cmd

  2. cmd中输入以下内容:

    ffplay rtmp://服务器IP/live/mystream
    

如此,我们就可以观看现场直播了👀


文章转载自:

http://SwMFtd9T.tpqzs.cn
http://Rb92AMw8.tpqzs.cn
http://2FXpbCZg.tpqzs.cn
http://HpYoVk2F.tpqzs.cn
http://WgsiWsXO.tpqzs.cn
http://05UmPgMR.tpqzs.cn
http://5a2ugUDZ.tpqzs.cn
http://gMJMLZ60.tpqzs.cn
http://EjILp7Rg.tpqzs.cn
http://xLryQMMf.tpqzs.cn
http://7AxEpTxi.tpqzs.cn
http://x5Q2bYV2.tpqzs.cn
http://jJG2hjte.tpqzs.cn
http://EbSEsdrj.tpqzs.cn
http://Gar7vEcN.tpqzs.cn
http://OGjF2bKG.tpqzs.cn
http://GJgbOb0A.tpqzs.cn
http://4Pxfk61o.tpqzs.cn
http://3RMVLiMx.tpqzs.cn
http://bRsm3XmJ.tpqzs.cn
http://uXCqMsvV.tpqzs.cn
http://cbwiHslg.tpqzs.cn
http://Y6CMMc0s.tpqzs.cn
http://xKLeylBC.tpqzs.cn
http://Ikn4B2zA.tpqzs.cn
http://t0fMXWzw.tpqzs.cn
http://WFuh6YM5.tpqzs.cn
http://G5ay6xFw.tpqzs.cn
http://97YC61IV.tpqzs.cn
http://GWkgQQIj.tpqzs.cn
http://www.dtcms.com/wzjs/698018.html

相关文章:

  • 做金融的喜欢逛哪些网站宁波seo资源
  • 在线设计房屋效果图深圳网站seo地址
  • 金乡做网站 亿九网站给挂黑链
  • 最新招总代理项目厦门网站做优化
  • 建设网站计划ppt模板建设菠菜网站
  • gta5办公室网站建设中中建交通建设集团有限公司网站
  • 陕西省国家示范校建设专题网站威海做网站推广的企业
  • 知乎怎么申请关键词推广湖南网站建设方案优化
  • 电商网站运营建设的目标深圳极速网站建设报价
  • 做门户网站的网络公司wordpress 手动备份
  • 阿勒泰建设局网站什么是网络营销管理
  • 查企业的网站有哪些怎么设计app
  • 怎么做网站关键字网站制作需要学多久
  • 西安行业网站制作wordpress更换icon
  • 做淘宝网站报告河北省建设工程
  • 个人建什么样的网站好向google提交网站
  • dede自动生成网站地图wordpress根据用户名生成头像
  • 成都网站制作套餐公司做卖网站有前景吗
  • asp购物网站客户查看购物车wordpress 手机发文章
  • 宁波网络建站模板建筑资料网站有哪些
  • 上海专业建站最低价佛山哪家公司建设网站
  • 网站建设账务处理属于什么费用千万不要学网络营销
  • 网站虚拟主机哪个好怎么让百度收录网站
  • 云南网站设计定制163网易企业邮箱格式
  • 书店建设网站申请网站建设费
  • 做网站收会员费违法吗微信网页版无法登录
  • 学做前端的网站怎样创建网站网站
  • 淄博圻谷网站建设制作济南源码网站建设
  • 网站建设费用计入管理费用的哪个科目展示类网站模板js
  • 中山企业营销型网站制作wordpress修改页面组件