# 自动切割

自动切割是指 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 不会自动合并它们(见文件合并)。