WebDAV搭建和全流程使用
背景
家里的TV看一些老电影投屏清晰度很低,还有开了VIP还有隐藏广告。
经过思考搭建nova-video-player
和WebDAV
直接来进行自己动手来无缝畅享视频音频资源。
nova-video-player 是什么
Nova Video Player 是一款用于 Android 平台的视频播放器应用程序。它提供了一系列功能,包括播放本地视频文件、在线流媒体的播放、支持多种视频格式、字幕支持、播放列表管理等。Nova Video Player 的用户界面简洁直观,易于使用,并且具有一些额外的功能,如调整播放速度、屏幕亮度和音量控制等。该应用通常被用户用作他们的主要视频播放器之一,以满足他们的娱乐需求。
Nova Video Player 开源地址
https://github.com/nova-video-player/aos-AVP
最新版下载地址https://github.com/nova-video-player/aos-AVP/releases
, 我使用的是v6.2.70 release
WebDAV是什么
WebDAV(Web 分布式作者和版本控制)是一种基于 HTTP(Hypertext Transfer Protocol)的协议,用于在网络上进行文件管理和协作。它扩展了 HTTP 协议,允许用户通过网络对远程服务器上的文件进行读取和写入操作,以及执行文件管理任务,如创建、删除和重命名文件等。WebDAV 最初设计用于支持协作编辑和版本控制,但现在已被广泛用于许多不同的网络应用中,如网络存储、协作文档管理等。
安装环境
- 客户端,Android客户端, 我的电视是
海信
,需要开启商城模式
安装,原则上其他系统稍微有差异或一致。 - 服务端, 我在
PVE8.1
上安装,原则上其他linux系统有稍微差异。
服务端安装
- nginx安装,安装支持
nginx-dav-ext-module
本安装已经要从源码安装以支持
nginx-dav-ext-module
资源下载 nginx源码下载
https://nginx.org/download/nginx-1.26.0.tar.gz
nginx-dav-ext-module 下载
https://codeload.github.com/arut/nginx-dav-ext-module/tar.gz/refs/tags/v3.0.0
, 文档地址和开源地址https://github.com/arut/nginx-dav-ext-module
安装nginx脚本
sudo apt update
sudo apt install build-essential
sudo apt install libxml2-dev libxslt1-dev
sudo apt install libpcre3-dev zlib1g-dev openssl libssl-dev
# 解压nginx
tar -zxvf nginx-1.26.0.tar.gz
cd nginx-1.26.0
mv ../nginx-dav-ext-module-3.0.0.tar.gz .
tar -zxvf nginx-dav-ext-module-3.0.0.tar.gz
# 配置
./configure --prefix=/etc/nginx \
--conf-path=/etc/nginx/nginx.conf \
--sbin-path=/usr/sbin/nginx \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-stream --with-http_dav_module --with-http_ssl_module --with-http_v2_module \
--add-module=./nginx-dav-ext-module-3.0.0
# 编译
make
# 安装
make install
nginx -V
nginx version: nginx/1.26.0
built by gcc 12.2.0 (Debian 12.2.0-14)
built with OpenSSL 3.0.11 19 Sep 2023
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin/nginx --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-stream --with-http_dav_module --with-http_ssl_module --with-http_v2_module --add-module=./nginx-dav-ext-module-3.0.0
配置nginx服务
vim /lib/systemd/system/nginx.service
# Stop dance for nginx
# =======================
#
# ExecStop sends SIGSTOP (graceful stop) to the nginx process.
# If, after 5s (--retry QUIT/5) nginx is still running, systemd takes control
# and sends SIGTERM (fast shutdown) to the main process.
# After another 5s (TimeoutStopSec=5), and if nginx is alive, systemd sends
# SIGKILL to all the remaining processes in the process group (KillMode=mixed).
#
# nginx signals reference doc:
# http://nginx.org/en/docs/control.html
#
[Unit]
Description=A high performance web server and a reverse proxy server
Documentation=man:nginx(8)
After=network.target nss-lookup.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid
TimeoutStopSec=5
KillMode=mixed
[Install]
WantedBy=multi-user.target
开机启动
systemctl daemon-reload
systemctl enable nginx.service
systemctl start nginx.service
systemctl status nginx.service
- nginx 配置WebDAV
server {
listen 30001;
listen [::]:30001;
server_name localhost;
# 认证方式
auth_basic realm_name;
# 存放认证用户名、密码文件
auth_basic_user_file /etc/nginx/.webdav/auth.list;
# webdav服务访问的根目录
root /TV;
# dav allowed method
dav_methods PUT DELETE MKCOL COPY MOVE;
# Allow current scope perform specified DAV method
dav_ext_methods PROPFIND OPTIONS LOCK UNLOCK;
# In this folder, newly created folder or file is to have specified permission. If none is given, default is user:rw. If all or group permission is specified, user could be skipped
dav_access user:rw group:rw all:r;
# Temporary folder
client_body_temp_path /tmp/webdav;
# MAX size of uploaded file, 0 mean unlimited
client_max_body_size 0;
# Allow autocreate folder here if necessary
create_full_put_path on;
}
添加用户
echo -n 'adminUser:' | tee -a auth.list
openssl passwd -apr1 | tee -a auth.list
重启nginx
nginx -t
nginx -s reload
客户端安装和配置
- 在TV端安装
nova-video-player
- 在软件
网络快捷方式
, 选择WebDAV
配置相应信息即可畅享