# 文件合并
本页说明 DDTV 中"录制文件分与合"的实际行为:什么时候一场直播会录成多个文件、断流重连时文件怎么处理,以及当你确实需要把多个文件合成一个时该怎么办。
# 先说结论:断流重连不会分文件
录制过程中遇到网络波动、推流卡顿导致的断流,DDTV 会自动重连续录,并且重连后是追加写入同一个文件,而不是新建一个文件。也就是说,一场直播中间不管断多少次流,录出来的依然是一个文件,不存在"分段文件需要合并"的问题,也就无需任何合并设置。
# 什么情况下会产生多个文件
只有触发切割时,一场直播才会被录成多个独立文件:
- 按文件大小或录制时长切割(全局或按房间设置,见自动切割)
- 直播间标题变更自动切割(需手动开启)
- HLS 录制中检测到分辨率/推流参数变化(如主播 PK 连线后画面参数改变),为了保证每个文件可正常播放而自动切割
- 主播停止推流后重新推流(B 站判定为重新开播)后再次触发的录制,属于新的录制任务
这些情况下产生的多个文件是有意为之的:每个文件都是完整可独立播放的,DDTV 不会(也不应该)把它们自动合成一个。
# 我想手动把多个文件合成一个,怎么办
如果你确实需要把同一场直播的多个分段合成一个文件,可以用 ffmpeg 的 concat 方式无损合并(要求各分段编码参数一致):
- 在分段文件所在目录新建
list.txt,按顺序逐行写入:
file '分段1_fix.mp4'
file '分段2_fix.mp4'
file '分段3_fix.mp4'
- 执行:
ffmpeg -f concat -safe 0 -i list.txt -c copy -bsf:a aac_adtstoasc -y 合并输出.mp4
注意
- 只有编码参数(分辨率、帧率、编码格式)一致的分段才能用
-c copy无损合并;参数不一致的分段强行合并会导致视频损坏,需要先转码统一参数。 - 建议合并
_fix.mp4(修复后)的文件而不是_original文件。