PROTOCOLS(协议)
mpv 支持多种协议用于播放不同来源的媒体内容。
协议列表
mpv:// 协议
mpv://...mpv 协议。这用于从 URL 处理程序启动 mpv。协议被剥离,其余部分作为正常打开参数传递给播放器。只允许以这种方式打开安全的网络协议。
http:// 和 https://
http://...
https://...支持许多网络协议,但必须始终指定协议前缀。mpv 永远不会尝试猜测文件名是否实际上是网络地址。始终需要协议前缀。
请注意,并非所有前缀都在此处记录。未记录的前缀要么是已记录协议的别名,要么只是重定向到 FFmpeg 中实现和记录的协议。
data: 受支持,但需要格式为 data://。这是为了避免与文件名的歧义。您也可以使用 lavf:// 或 ffmpeg:// 作为前缀。
ytdl://
ytdl://...默认情况下,youtube-dl 钩子脚本仅查看 http(s) URL。在 URL 前加上 ytdl:// 会强制它始终由脚本处理。这也可以用于调用特殊的 youtube-dl 功能,如按 ID 播放视频或调用搜索。
请记住,您无法通过此传递 youtube-dl 命令行选项,而必须使用 --ytdl-raw-options。
标准输入
-从 stdin 播放数据。
smb://
smb://PATH从 Samba 共享播放路径。(需要 FFmpeg 支持。)
bd://(蓝光)
bd://[title][/device] --bluray-device=PATH播放蓝光光盘。自 libbluray 1.0.1 起,您可以通过将 ISO 文件传递给 --bluray-device 来读取它们。
title 可以是:
longest或first(选择默认播放列表)mpls/<number>(选择第 number 个 mpls 播放列表)<number>(选择具有相同索引的播放列表)
mpv 将在加载时列出可用的播放列表。bluray:// 是一个别名。
dvd://
dvd://[title][/device] --dvd-device=PATH播放 DVD。不支持 DVD 菜单。如果未给出标题,则自动选择最长的标题。不使用 --dvd-device 时,它可能会尝试打开实际的光驱(如果可用且为 OS 实现)。
dvdnav:// 是 dvd:// 的旧别名,功能完全相同。
dvb://(数字电视)
dvb://[cardnumber@]channel --dvbin-...通过 DVB 的数字电视。(仅限 Linux。)
mf://(图像序列)
mf://[@listfile|filemask|glob|printf-format] --mf-...将一系列图像作为视频播放。
如果 URL 路径以 @ 开头,则将其解释为包含以换行符分隔的图像路径列表的文件路径。如果 URL 路径包含 ,,则将其解释为以 , 分隔的图像路径列表。如果 URL 路径不包含 % 且在 POSIX 平台上,则被解释为 glob,如果未指定则自动附加 *。
例如,mf://image-%d.jpg 播放类似 image-1.jpg、image-2.jpg 和 image-10.jpg 的文件。
cdda://(CD 音频)
cdda://[device] --cdda-device=PATH播放 CD。您可以使用 --start 和 --end 选项指定章节来选择要播放的特定音轨范围。
# 从第 4 音轨开始,播放第 5 音轨,然后结束
mpv cdda:// --start=#4 --end=#6lavf://
lavf://...访问任何 FFmpeg libavformat 协议。基本上,这将 // 之后的字符串直接传递给 libavformat。
av://(libavdevice)
av://type:options这用于 libavdevice 输入。type 是 libavdevice demuxer 名称,options 是传递给 demuxer 的(伪)文件名。
# 从第一个 v4l 输入播放视频,几乎以最低延迟
mpv av://v4l2:/dev/video0 --profile=low-latency --untimedavdevice:// 是一个别名。
file://
file://PATH作为 URL 的本地路径。在某些特殊用例中可能有用。请注意,PATH 本身应以第三个 / 开头以使路径成为绝对路径。
appending://
appending://PATH播放本地文件,但假定它正在被追加。这对于当前正在下载到磁盘的文件很有用。这将阻塞播放,并且仅在超时约 2 秒后没有新数据追加时才停止播放。
fd://
fd://123从给定的文件描述符读取数据(例如 123)。这类似于通过 - 将数据通过管道传输到 stdin,但可以使用任意文件描述符。
fdclose://
fdclose://123类似于 fd://,但文件描述符在使用后关闭。使用此功能时,需要确保相同的 fd URL 只使用一次。
edl://
edl://[edl specification]将多个文件的部分拼接在一起并播放它们。
slice://
slice://start[-end]@URL读取流的切片。start 和 end 表示字节范围,并接受 KiB 和 MiB 等后缀。end 是可选的。
# 从 cap.ts 寻找 1 GiB 后开始读取,然后读取到 2 GiB 或文件结尾
mpv slice://1g-2g@cap.ts
# 从 cap.ts 寻找 1 GiB 后开始读取,然后读取到 3 GiB 或文件结尾
mpv slice://1g-+2g@cap.tsnull://
null://模拟空文件。如果以写入模式打开,它将丢弃所有数据。
memory://
memory://data使用 data 部分作为源数据。
hex://
hex://data类似于 memory://,但字符串被解释为十六进制转储。
archive://
archive://[ARCHIVE PATH]|[FILE PATH IN ARCHIVE]打开归档文件中指定路径的文件。需要启用 libarchive 功能。
# 播放 file.zip 归档中的 video.mkv
mpv "archive://file.zip|video.mkv"