ubuntu18流媒体服务器搭建

ubuntu18流媒体服务器搭建
搭建流媒体服务器
NGINX的流媒体插件 nginx-rtmp-module
战⽃民族俄罗斯⼈民开发的⼀款NGINX的流媒体插件,除了直播发布⾳视频流之外具备流媒体服务器的常见功能⽐如推拉流媒体资源基于HTTP的FLV/MP4 VOD点播 HLS (HTTP Live Streaming) M3U8的⽀持基于http的操作(发布、播放、录制)可以很好的协同现有的流...
安装Nginx和nginx-rtmp-module
sudo apt-get update  # 更新软件源
sudo apt-get upgrade
sudo apt-get install nginx # 安装Nginx
sudo apt-get install libnginx-mod-rtmp  # 安装libnginx-mod-rtmp
sudo apt-get install vlc  # 流媒体播放器,window和linux都可⽤
sudo apt-get install obs-studio  # 推流拉流⼯具
nginx常⽤操作
sudo service  nginx reload  #不重启重新载⼊最新配置⽂件内容
sudo service  nginx stop    #停⽌服务
sudo service  nginx restart  #重启服务
蒙砂膏安装ffmpeg
sudo apt install ffmpeg
测试流媒体服务器
# 推流到流媒体服务器
ffmpeg -re -i "video.mp4" -vcodec libx264 -vprofile baseline -acodec aac -ar44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://localhost:1935/live/test
# 从流媒体服务器中拉流
ffplay "rtmp://localhost:1935/live/test live=1"
Nginx配置预览
修改完配置⽂件后需要进⾏reload重载 sudo vi /etc/f
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;  # 包含模块,不加的话会有:unknown directive "rtmp" in /etc/f
events {
worker_connections 768;
# multi_accept on;
}
rtmp {
server {
listen 1935;
chunk_size 4096;
application vod {    # 点播配置
play /opt/video/vod;
}
application live {  # 直播配置
live on;
hls on; #这个参数把直播服务器改造成实时回放服务器。
wait_key on; #对视频切⽚进⾏保护,这样就不会产⽣马赛克了。
hls_path /opt/video/live; #切⽚视频⽂件存放位置。
hls_fragment 10s;    #每个视频切⽚的时长。
hls_playlist_length 60s;  #总共可以回看的事件,这⾥设置的是1分钟。
hls_continuous on; #连续模式。
hls_cleanup on;    #对多余的切⽚进⾏删除。
hls_nested on;    #嵌套模式。
}
}
}
http {
include      pes;
default_type  application/octet-stream;
sendfile        on;
keepalive_timeout  65;
server {
listen      80;
server_name  localhost;
location /live {  # 回放配置,需在直播配置的基础上
types {
application/vnd.apple.mpegurl m3u8;
种子包装袋video/mp2t ts;
}
alias /home/ztf/Videos;
expires -1;
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *; # ⼀定要加,不加后⾯视频播放就会显⽰跨域
}
}
}
车载广告
点播
sudo vi /etc/f  ,修改完配置⽂件后需要进⾏reload重载
worker_processes 1;
include /etc/nginx/modules-enabled/*.conf;  # 包含模块,不加的话会有:rtmpunknown directive "rtmp" in /etc/f
events {
worker_connections  1024;
}
rtmp {
server {
listen 1935;
chunk_size 4096;
application vod {
play /opt/video/vod;
}
}
}
配置⽬录/opt/video/vod为存放视频⽂件的位置了,那我们就往⾥⾯放⼀个⽂件吧。我放了⼀个video.mp4⽂件。打开视频播放软件选⽤的是VLC media-> open network stream….,如图填写我们要点播的节⽬地址rtmp://localhost/vod/video.mp4如图
点击play就可以播放了。当然点播不使⽤RTMP插件nginx⾃⾝也是可以实现点播服务的。那就是配置location部分,由于下⾯我们要配置直播和回看功能所以选⽤了RTMP服务。
直播
本次测试:
1、OBS推流到流媒体服务器
2、VLC播放
sudo vi /etc/f  ,修改完配置⽂件后需要进⾏reload重载
worker_processes 1;
include /etc/nginx/modules-enabled/*.conf;  # 包含模块,不加的话会有:rtmpunknown directive "rtmp" in /etc/f
events {
worker_connections  1024;
}
rtmp {
server {
listen 1935;
触摸笔chunk_size 4096;
application live {
live on;
hls on; #这个参数把直播服务器改造成实时回放服务器。
wait_key on; #对视频切⽚进⾏保护,这样就不会产⽣马赛克了。
hls_path /opt/video/live; #切⽚视频⽂件存放位置。
hls_fragment 10s;    #每个视频切⽚的时长。卵黄磷蛋白
hls_playlist_length 60s;  #总共可以回看的事件,这⾥设置的是1分钟。
hls_continuous on; #连续模式。
hls_cleanup on;    #对多余的切⽚进⾏删除。
hls_nested on;    #嵌套模式。
}
}
}
使⽤OBS(Open Broadcaster Software)推流
添加媒体源:+  --> media source --> OK
设置输出流:输出到指定URL
Controls-->Start Recording,开始推流后,/opt/video/live⽬录下会⽣成以下⽂件。
使⽤VLC播放
历史回放
本次测试
1、OBS推流到流媒体服务器,如地址:rtmp://localhost/live/test,则/opt/video/live/test会出现index.m3u8⽂件,index.m3u8⽂件仅仅是⽬录。
我们想⼀想如果直播服务能够把节⽬录制在本地,我们不就可以直接进⾏回看先前的节⽬了吗?回看⼀分钟、⼀⼩时甚⾄⼀天的。nginx的配置:
worker_processes 1;
include /etc/nginx/modules-enabled/*.conf;  # 包含模块,不加的话会有:rtmpunknown directive "rtmp" in /etc/f
events {
worker_connections  1024;
}
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
hls on; #这个参数把直播服务器改造成实时回放服务器。
wait_key on; #对视频切⽚进⾏保护,这样就不会产⽣马赛克了。
hls_path /opt/video/live; #切⽚视频⽂件存放位置。
hls_fragment 10s;    #每个视频切⽚的时长。
hls_playlist_length 60s;  #总共可以回看的事件,这⾥设置的是1分钟。
hls_continuous on; #连续模式。
hls_cleanup on;    #对多余的切⽚进⾏删除。
hls_nested on;    #嵌套模式。
}
}
}
http {
include      pes;
背光片
default_type  application/octet-stream;
sendfile        on;
keepalive_timeout  65;
server {
listen      80;
server_name  localhost;
location /live {  #这⾥也是需要添加的字段。
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias /opt/video/live;
expires -1;
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *; # ⼀定要加,不加后⾯视频播放就会显⽰跨域
}
}
}
海康摄像头测试
1、从摄像头拉流,并推流到流媒体服务器
2、通过浏览器观看摄像头监控
rtsp 转 rtmp 推流
ffmpeg -i "rtsp://admin:superton128@192.168.1.197:554/h264/ch1/main/av_stream?videoCodecType=H.264" -vcodec libx264 -vprofile baseline -acodec aac -ar44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://192.168.1.54:1935/live/test rtsp 转 hls 推流
ffmpeg -i "rtsp://admin:superton128@192.168.2.176:554/h264/ch1/main/av_stream?videoCodecType=H.264" -vcodec libx264 -vprofile baseline -acodec aac -ar44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://localhost:1935/live/test demo
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8"/>
<title>Player</title>
<link href="unpkg/video.js/dist/video-js.css" rel="stylesheet">
</head>
<body>
<video id="video" class="video-js vjs-default-skin" controls autoplay="autoplay" width="640" height="320" data-setup='{}'>
<source src="192.168.1.54/live/test/index.m3u8" type="application/x-mpegURL"/>
</video>
<script src="unpkg/video.js/dist/video.js"></script>
<script src="cdnjs.cloudflare/ajax/libs/videojs-contrib-hls/5.12.1/videojs-contrib-hls.min.js"></script>
</body>
</html>
⽕狐浏览器测试
问题集
root@ubuntu:~$ sudo service nginx reload
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
root@ubuntu:~$ journalctl -xe
-- Unit nginx.service has begun reloading its configuration
Jul 23 18:33:57 ubuntu nginx[24772]: nginx: [emerg] unknown directive "rtmp" in /etc/f:8
Jul 23 18:33:57 ubuntu systemd[1]: nginx.service: Control process exited, code=exited status=1
Jul 23 18:33:57 ubuntu systemd[1]: Reload failed for A high performance web server and a reverse proxy server. -- Subject: Unit nginx.service has finished reloading its configuration
解决⽅式:/etc/f缺少配置
include /etc/nginx/modules-enabled/*.conf;  # 包含模块,不加的话会有:rtmpunknown directive "rtmp" in /etc/f
参考地址:
主要转⾃:

本文发布于:2024-09-22 16:41:11,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/150932.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:服务器   配置   流媒体   直播   视频   播放   需要
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议