mpv 章节导航:从 DVD 蓝光章节跳转到 EDL 自定义拼接的 3 条最短路径
【免费下载链接】mpv🎥 Command line media player项目地址: https://gitcode.com/GitHub_Trending/mp/mpv
你打开 4 小时蓝光想直接切到第三幕,或把散落的教学视频拼成带章节的一个视频?mpv 章节导航两件事都能做:光盘章节自动识别,编辑决策表(EDL, Edit Decision List)能拼接多段并命名章节。
它怎么跑起来:从 mpv 蓝光章节识别到 mpv EDL 自定义章节
mpv 没有单独的"章节格式",章节点最终统一为同一份内部列表,再以chapter/chapters属性和add chapter命令对外暴露。上游来源只有三类,互不冲突,同一时刻只有一个生效:
- DVD/蓝光光盘:disc demuxer 读取 IFO / BDMV 结构,章节点直接来自光盘元数据,逻辑见 demux_disc.c
- 普通容器:解析文件内章节元数据(如 MKV Chapters);CD 的 cue sheet 走 cue 解析路径
- EDL 文本:EDL demuxer 把文本列表当"虚拟时间线",默认每个片段插一个章节,见 demux_edl.c
任何时刻只有一个来源生效,数据流大致是:
DVD/蓝光光盘 ──► dvdnav / BDMV 解析 ──┐ MKV/MP4 等 ──► 容器章节解析 ──┼─► 统一章节列表 ─► chapter 属性 / add chapter 命令 EDL 文本文件 ──► EDL 虚拟时间线 ──┘⚡ 三步跑通:mpv DVD 章节播放 + mpv 快捷键切换章节
第 1 步:打开光盘。指向 DVD 根目录(含VIDEO_TS/)或蓝光根目录(含BDMV/)即可,章节自动解析:
mpv ./dvd_folder # DVD 根目录,或光驱 /dev/sr0 mpv ./bluray_folder/ # 蓝光根目录第 2 步:切章节。默认PGUP/PGDWN切下/上一章节,g-c打开章节选择菜单;想直接落到某处,命令行用--start:
mpv --start=3600 ./dvd_folder第 3 步:用 EDL 拼接。每行一个file,start,length片段,title=指定章节名,首行# mpv EDL v0必须写:
# mpv EDL v0 part1.mp4,0,60,title=第一章:介绍 part2.mp4,0,120,title=第二章:正文 part3.mp4,0,90,title=第三章:总结存为chapters.edl,执行mpv chapters.edl。EDL 和命令行传多个文件的区别:后者是播放列表,后者才是单条虚拟时间线,进度条、seek 和章节都作用在整体上。
🔧 把章节玩出花:mpv EDL 自定义章节的 3 个扩展
mpv 多视频拼接章节标题:用 title= 覆盖
章节默认以片段文件名为标题,文件名没含义时(比如cap_01.ts)用title=覆盖:
# mpv EDL v0 cap.ts,5,240 OP.mkv,0,90,title=Show Opening全局元数据:!global_tags 给整盘打标签
拼接出的虚拟文件默认没有标题、作者,统计页和文件信息里一片空白。!global_tags给整盘打标签,可重复使用来追加标签:
# mpv EDL v0 !global_tags,title=Python 编程教程,author=张三 lecture1/intro.mp4,0,300,title=1. 课程介绍 lecture1/basics.mp4,0,480,title=2. 基础语法标签值不能包含,;和换行,带标点的标题要用%长度%内容语法转义。
挂载外部音轨:!new_stream 让两文件并行走
视频文件没音轨,或解说音轨单独存在另一个文件时,!new_stream让两个文件的轨道并行播放而不是首尾拼接,效果类似--external-file叠加:
# mpv EDL v0 video.mkv !new_stream audio.mkv想给挂载的音轨命名,在它前面加一行!track_meta,title=解说轨。
⚠️ 踩坑:mpv 章节导航与 mpv EDL 自定义章节的 5 个易错点
完整 EDL 语法以官方文档 DOCS/edl-mpv.rst 为准,以下都是实测会踩的。
- EDL 找不到文件→ EDL 内路径相对 EDL 文件自身位置解析,某些安全策略下还会禁用相对/绝对路径 → 把 EDL 放进视频同目录,或改用
edl://f1.mkv;f2.mkv内联写法。 - **
【免费下载链接】mpv🎥 Command line media player项目地址: https://gitcode.com/GitHub_Trending/mp/mpv
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考