播放列表
本节介绍 mpv 的播放列表功能和管理方法。
创建播放列表
命令行播放列表
bash
# 播放多个文件
mpv file1.mp4 file2.mp4 file3.mp4
# 使用通配符
mpv *.mp4
# 使用目录
mpv /path/to/videos/播放列表文件
mpv 支持多种播放列表格式:
M3U/M3U8
m3u
#EXTM3U
#EXTINF:123,Artist - Title
file1.mp4
#EXTINF:456,Artist - Title 2
file2.mp4PLS
pls
[playlist]
File1=file1.mp4
Title1=Title 1
Length1=120
File2=file2.mp4
Title2=Title 2
Length2=180
NumberOfEntries=2
Version=2其他格式
- CUE - 音频 CD 镜像
- PLS - Winamp 播放列表
- XSPF - XML 播放列表
播放列表控制
快捷键
| 快捷键 | 功能 |
|---|---|
< | 上一个 |
> | 下一个 |
Enter | 下一个 |
Shift+Home | 第一个 |
Shift+End | 最后一个 |
Shift+< | 跳转到指定位置 |
命令行控制
bash
# 播放指定文件
mpv --playlist-start=2 playlist.m3u
# 循环播放列表
mpv --loop-playlist=inf playlist.m3u
# 随机播放
mpv --shuffle playlist.m3u播放列表选项
循环控制
bash
# 单文件循环
loop-file=inf
# 播放列表循环
loop-playlist=inf
# 循环次数
loop-playlist=3随机播放
bash
# 启用随机播放
shuffle=yes
# 禁用随机播放
shuffle=no播放顺序
bash
# 按名称排序
playlist-sort=yes
# 按修改时间排序
playlist-sort=mtime播放列表脚本
Lua 脚本示例
lua
-- 播放列表管理脚本
local mp = require 'mp'
-- 保存当前播放列表
mp.add_key_binding('ctrl+s', 'save-playlist', function()
local playlist = mp.get_property_native('playlist')
local file = io.open('playlist.m3u', 'w')
file:write('#EXTM3U\n')
for i, entry in ipairs(playlist) do
file:write('#EXTINF:0,' .. entry.filename .. '\n')
file:write(entry.filename .. '\n')
end
file:close()
mp.osd_message('播放列表已保存')
end)
-- 加载播放列表
mp.add_key_binding('ctrl+l', 'load-playlist', function()
mp.command('loadlist playlist.m3u')
end)JavaScript 脚本示例
javascript
// 播放列表管理脚本
mp.add_key_binding('ctrl+s', 'save-playlist', function() {
const playlist = mp.get_property_native('playlist');
let content = '#EXTM3U\n';
playlist.forEach(entry => {
content += `#EXTINF:0,${entry.filename}\n`;
content += `${entry.filename}\n`;
});
// 注意:JavaScript 中无法直接写文件
mp.osd_message('播放列表功能需要 Lua 脚本');
});播放列表命令
命令列表
bash
# 加载播放列表
loadlist playlist.m3u
# 添加到播放列表
playlist-add file.mp4
# 移除当前文件
playlist-remove current
# 清空播放列表
playlist-clear
# 播放指定文件
playlist-play-index 2交互式命令
bash
# 显示播放列表
show-text ${playlist}
# 显示当前文件
show-text ${filename}
# 显示播放位置
show-text ${playlist-pos}/${playlist-count}播放列表模板
模板变量
bash
# 当前文件名
${filename}
# 当前文件路径
${path}
# 播放列表位置
${playlist-pos}
# 播放列表总数
${playlist-count}
# 播放列表标题
${media-title}自定义显示
bash
# 显示播放列表信息
show-text "播放列表: ${playlist-pos}/${playlist-count}\n当前: ${filename}"播放列表调试
查看播放列表
bash
# 显示播放列表内容
mpv --playlist=playlist.m3u --term-playing-msg='Playlist: ${playlist}'调试信息
bash
# 显示播放列表信息
mpv --msg-level=all=v playlist.m3u
# 显示文件信息
mpv --identify playlist.m3u