如何通过编程定位OBS Studio录制MKV文件的暂停与恢复点?
定位OBS录制MKV文件的暂停/恢复位置
核心逻辑
OBS Studio在暂停录制时,会自动给MKV文件添加章节标记——每一次暂停对应一个章节的结束,恢复则对应下一个章节的开始。所以解析MKV的章节信息,就能直接拿到所有暂停、恢复的时间点。
实操方法
1. 用FFmpeg命令行快速提取
FFmpeg可以直接输出MKV的章节JSON数据,命令如下:
ffmpeg -i your_recording.mkv -show_chapters -print_format json
输出结果里,每个chapter对象的start_time和end_time就是时间点(单位:秒)。比如第一个章节的end_time是第一次暂停的时间,第二个章节的start_time就是恢复的时间,以此类推。
2. Python编程解析(用pymkv库)
先安装依赖:
pip install pymkv
然后写代码提取并整理时间点:
import pymkv # 加载MKV文件 mkv = pymkv.MKVFile("your_recording.mkv") chapters = mkv.chapters # 遍历章节,输出暂停/恢复点 for idx, chap in enumerate(chapters): start_sec = chap.start_time / 1000 end_sec = chap.end_time / 1000 print(f"章节{idx+1}: 从{start_sec:.2f}s到{end_sec:.2f}s") # 相邻章节的衔接处就是暂停-恢复点 if idx > 0: prev_end = chapters[idx-1].end_time / 1000 print(f"恢复位置: {start_sec:.2f}s(上次暂停于{prev_end:.2f}s)")
3. 用MKVToolNix的mkvinfo工具
MKVToolNix是专门处理MKV的工具,执行命令筛选章节信息:
mkvinfo your_recording.mkv | grep -A 5 -B 5 "Chapter"
输出的时间戳单位是纳秒,除以1e9就能转换成秒。
注意点
- 确认OBS开启了章节功能:在
设置->输出->录制->更多选项里,勾选添加章节标记(默认是开启状态)。 - 7小时的大文件解析时,优先用pymkv或FFmpeg这类底层调用高效库的工具,避免内存溢出。
内容的提问来源于stack exchange,提问作者Furkan Gözükara
相关产品推荐
相关产品推荐

