把WebDAV和流媒体放到一起讨论,很多人第一反应会疑惑二者能不能搭配使用。WebDAV本身属于文件传输协议,设计目标是让用户像操作本地文件夹一样管理远程文件,和RTMP、HLS这类流媒体专用协议完全不是一类。实际部署之后能发现,WebDAV在流媒体场景实用性很强,自建媒体库圈子里经常用到。
背后原因不难理解。WebDAV基于HTTP运行,支持Range请求,这项特性对流媒体播放至关重要。拖动进度条跳转到视频中段,播放器需要通知服务器只读取对应时间点之后的数据,Range请求就是实现这个功能。缺少这项能力,每次拖动进度条都需要从头下载视频,播放体验很差。WebDAV原生支持该特性,资源占用很低,路由器或者低配VPS都能部署。

WebDAV同样存在短板。有人实测局域网播放40G大容量影片,部分播放器上WebDAV的稳定性比不上SMB,根源是HTTP协议自带开销。WebDAV更适合跨网络访问场景,比如在外使用手机连接家里媒体库,或是挂载云盘到WebDAV供播放器读取。局域网内播放大体积文件,SMB、NFS体验通常更省心。
聊相关软件,要分清两类产品:WebDAV服务器软件和流媒体服务器软件。WebDAV服务器负责对外暴露文件,流媒体服务器负责把文件转成可播放的流。很多场景需要两者配合,或者选用整合两类能力的工具。
Alist在自建媒体圈子使用频率很高。它不属于媒体服务器,更像统一网关,把阿里云盘、百度网盘、夸克、115等存储源挂载到WebDAV接口。部署Alist之后,播放器通过WebDAV接入,看到整合多个网盘资源的文件目录。搭配alist-strm脚本,自动生成.strm文件,Emby、Jellyfin、VLC播放器可以直接读取播放,不用挂载整个网盘。Alist资源占用低,一条Docker命令即可部署,适合有闲置设备、不想搭建NAS的用户。
rclone是另一种方案。它的serve命令可以把任意远程存储暴露为WebDAV端点,DLNA、FTP、HTTP协议也可以一并开启。一条命令就能将Google Drive、OneDrive转为本地WebDAV服务,客户端看到标准媒体服务,感知不到后端是云存储。rclone优势在于支持大量云存储后端,几乎覆盖主流网盘、对象存储。搭配RcloneView图形界面,配置操作比纯命令行简单。
想要完整媒体服务器能力,不想自行拼接组件,Lunarr值得尝试。专门针对电影、剧集媒体库开发,支持本地磁盘、SFTP、WebDAV媒体源,自动拉取TMDb元数据生成海报墙,支持直接播放和HLS实时转码,兼容Chromecast、AirPlay远程播放。Docker部署,配置端口映射、环境变量之后即可运行,适合不熟悉命令行操作的用户。
Remux是比较特别的项目,伪装成Jellyfin兼容API,后端可以混合Stremio插件、本地文件、WebDAV资源。使用Infuse或者Jellyfin客户端直接连接,客户端不需要额外改动。已经在用Jellyfin生态的用户,Remux相当于给现有播放器新增WebDAV内容源,不用适应新工具。
播放器选择比服务器端更多。nPlayer是老牌移动端播放器,支持WebDAV、FTP、SFTP、SMB、NFS,视频格式兼容性好。NOVA是安卓开源播放器,面向平板、安卓电视优化,可以直接从WebDAV服务器播放视频。SenPlayer、ANNA属于全能播放器,整合WebDAV、SMB、云盘、Emby、Jellyfin,不用来回切换多个App。苹果生态有Zwind,可以把iPhone、iPad作为WebDAV服务器,内置播放器、浏览器、RSS阅读器,服务端和客户端集成在同一台设备。
Nginx、Apache这类老牌Web服务器也可以搭建WebDAV服务。Nginx需要安装dav_ext_methods模块,新增location配置指向媒体目录。Apache的mod_dav模块成熟,配置直观。但单纯局域网播放影片,使用Nginx、Apache属于过度部署,配置复杂度高于Alist、rclone。只有已经部署Nginx或者Apache,想要额外增加WebDAV目录,这个方案才合适。
Docker是大部分方案的主流部署方式。NzbDAV是典型例子,将Usenet的NZB文档挂载虚拟文件系统,经由WebDAV对外暴露,搭配Sonarr、Radarr搭建零本地存储媒体库。NzbDAV提供SABnzbd兼容API,可以直接替换现有下载工具。rclone挂载NzbDAV到本地文件系统,记得添加--links参数,不然WebDAV链接文件无法正确转为符号链接。
安全性需要单独说明。WebDAV默认HTTP传输属于明文,账号密码直接在网络传输。外网访问必须启用HTTPS,可以在WebDAV前端部署Nginx做SSL终止,或是直接选用原生支持TLS的WebDAV程序。Alist、rclone都支持配置SSL证书,Zwind手机端服务支持密码、Face ID保护。WebDAV权限管控一般比较基础,不需要写入权限的客户端,尽量设置只读,不要开放写权限。
性能调优有几项参数值得关注。rclone serve webdav,--vfs-cache-mode设置full,常用数据本地缓存,减少重复请求云端;--vfs-read-ahead调大到128M,顺序播放时预加载更多数据,降低卡顿。Nginx搭建WebDAV,开启create_full_put_path,支持自动创建多层目录,大文件上传配合chunked transfer encoding稳定性更好。
实际使用下来,WebDAV在流媒体场景更像中间连接层。它本身不提供转码、播放列表、自适应码率,这些功能交给上层媒体服务器或者播放器。但协议简单通用,几乎全部播放器、媒体服务器都支持。用来对接云盘和本地播放器,或是整合分散存储内的媒体文件,都能胜任。不要指望WebDAV单独构成完整流媒体平台,把它当成稳定传输通道就足够。