You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用HandbrakeCLI保存所有标题?及旧DVD批量转MKV的正确方法

HandBrakeCLI处理旧DVD:命令修正与全标题导出指南

当前命令的问题与修正

你的思路没问题,但命令里有两个小细节得调整,不然可能达不到预期效果:

  1. 循环语法错误:for i in 'seq 4'里的单引号会把seq 4当成一个单一字符串,循环只会执行一次,而不是遍历1-4这四个数字。得改成用反引号或者$()来执行命令:for i in $(seq 4)
  2. 输出格式不符:你想要转成MKV格式,但命令里输出的是.mp4,把输出后缀改成.mkv就对了

修正后的命令如下:

for i in $(seq 4); do 
  HandBrakeCLI --input /dev/dvd --title $i --preset Normal -e x264 -q 20 -w 1280 -l 720 --output NameOfDisc_Title$i.mkv; 
done

这个命令确实会把每个标题(对应你的每集内容)的所有章节合并成单个MKV文件——HandBrake默认会将指定标题下的所有章节打包进输出文件,而且MKV格式原生支持章节标记,播放时可以正常切换章节,完全符合你的需求。

如何保存HandBrakeCLI中的所有标题

如果你不确定DVD里的标题总数(比如可能包含菜单、预告片这类额外短标题),或者想批量导出所有标题,可以按以下步骤操作:

1. 先扫描DVD的所有标题信息

用扫描命令获取DVD里的所有标题详情,包括标题号、时长、章节数:

HandBrakeCLI --input /dev/dvd --scan

执行后会输出类似这样的内容:

title 1:
duration: 00:45:23
chapters: 12
title 2:
duration: 00:44:58
chapters: 11
...

通过这个输出你可以轻松区分:时长较长的是正片标题,短时长的大概率是菜单、版权页这类无用内容。

2. 批量导出所有标题(或筛选后的标题)

如果想导出所有标题,可以用命令自动提取标题号并循环处理:

# 自动提取所有标题号并批量转换
for title in $(HandBrakeCLI --input /dev/dvd --scan 2>&1 | grep "title" | awk '{print $2}'); do
  HandBrakeCLI --input /dev/dvd --title $title --preset Normal -e x264 -q 20 -w 1280 -l 720 --output NameOfDisc_Title${title}.mkv;
done

要是你确认只需要标题1-4,直接用前面修正后的循环命令就好。

补充:关于章节的小提示

如果你偶尔需要把单个章节单独导出成文件(而不是合并成单集),可以加上--chapter参数,比如导出标题1的第3章:

HandBrakeCLI --input /dev/dvd --title 1 --chapter 3 --preset Normal -e x264 -q 20 -w 1280 -l 720 --output NameOfDisc_Title1_Chapter3.mkv

不过看你的需求是合并章节成单集文件,默认的命令行为就完全够用啦。

内容的提问来源于stack exchange,提问作者Adam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:26:34