# 自动切割
自动切割是指 DDTV 在录制过程中,满足一定条件时主动结束当前文件并开始录制一个新文件,把一场长直播分成多个小文件。适合需要按固定时长/大小切片(方便上传网盘、剪辑)、或希望按直播内容段落分文件的用户。
# 有哪些切割方式
DDTV 目前有四种切割机制:
| 机制 | 说明 | 默认状态 |
|---|---|---|
| 按文件大小切割 | 当前文件超过设定大小(字节)时切割 | 关闭(0) |
| 按录制时长切割 | 当前分段录制超过设定时长(秒)时切割 | 关闭(0) |
| 标题变更切割 | 直播间标题变化时切割,新分段用新标题命名 | 关闭 |
| 分辨率/推流参数变化切割 | HLS 录制中检测到分辨率变化或推流参数(init segment)变化时自动切割,常见于主播 PK、连麦场景。这是内置保护行为,无开关——参数变化后继续写同一个文件会导致文件无法正常播放 | 始终生效 |
# 怎么配置
# 全局配置
配置文件 ./Config/DDTV_Config.ini(也可在 Desktop 设置页 / WEBUI 设置中修改):
| 配置项 | 默认值 | 说明 |
|---|---|---|
CutAccordingToSize | 0 | 按文件大小切割,单位字节,0 为关闭。例如 4GB 填 4294967296 |
CutAccordingToTime | 0 | 按录制时长切割,单位秒,0 为关闭。例如 1 小时填 3600 |
SplitOnTitleChange | false | 直播间标题变更时自动切割,新分段以新标题保存 |
Desktop 设置页中大小切割提供下拉选项:关闭 / 1G / 2G / 4G / 8G / 16G;时长切割提供:关闭 / 10 / 20 / 30 / 60 / 120 分钟。
# 按房间单独配置
每个房间可以单独设置切割阈值,保存在 ./Config/RoomListConfig.json(WEBUI 房间设置中可编辑):
| 字段 | 说明 |
|---|---|
RoomCutAccordingToSize | 该房间按大小切割阈值(字节),0 表示跟随全局 |
RoomCutAccordingToTime | 该房间按时长切割阈值(秒),0 表示跟随全局 |
房间级设置优先于全局:房间的阈值大于 0 时用房间的,等于 0 时回退到全局配置。例如全局 1 小时切一刀,但某个重要房间你想 10 分钟一刀,只改这个房间的 RoomCutAccordingToTime 为 600 即可。
# 切割后文件怎么命名
切割发生时,当前分段正常走完"录制完成"流程(包括时间轴修复),新分段会按当前时间重新生成文件名(使用文件名模板 DefaultFileName,默认 {DATE}_{TIME}_{TITLE}),所以各分段文件名中的时间戳就是该分段开始录制的时间。标题变更切割产生的新分段会使用变更后的新标题。
如果开启了弹幕录制,弹幕文件也会同步分段,文件名后缀的分段编号(_0、_1……)依次递增,与视频分段一一对应。
# 注意事项
- 切割判定在每个下载循环中进行,实际切割点会比阈值略超出一点(最多一个 HLS 分片/一次循环的下载量),不是精确切在阈值上。
- 切割是"无损"的:两个分段各自完整可播放,但中间可能有极少量内容缺失或重复(一个分片级别),不适合要求逐帧连续的场景。
- 按时长切割的计时从该分段开始录制起算;断流重连追加续录不会重置计时。
- 一场直播切成多个文件后,DDTV 不会自动合并它们(见文件合并)。