解码Sonken卡拉OK DVD中的DKD文件
在处理Sonken卡拉OK DVD中的DKD文件时,我们需要了解这些文件的结构和内容,以便正确解码和播放其中的歌曲。以下将详细介绍相关的技术细节和操作步骤。
1. 数据文件概述
- 文件内容:DTSMUS00.DKD到DTSMUS07.DKD这些文件包含音乐文件,音乐有两种格式,即Microsoft WMA文件和MIDI文件。在歌曲本中,标记有歌手的歌曲对应的是WMA文件,没有歌手的则是MIDI文件。
- 文件特点:WMA文件可直接使用,而MIDI文件经过了轻微压缩,需要解码后才能播放。每个歌曲块开头都有包含歌词的部分,这些歌词也是压缩的,同样需要解码。
- 数据结构:一首歌曲的数据形成连续字节的记录,这些记录被收集成连续的块,块之间是分开的。存在一个指向这些块的“超级块”,歌曲编号的一部分是超级块的索引,用于选择块;其余部分是块中记录的索引。
2. 探索文件的过程
作者最初使用Unix命令strings来探索DTSMUS10.DKD中的歌曲信息,但在其他文件上效果不佳。不过,发现这些文件中存在ASCII字符串,且有些是重复的。于是编写了一个shell管道来对这些字符串进行排序和计数,以DTSMUS05.DKD文件为例,管道命令如下:
strings DTSMUS05.DKD | sort | uniq -c | so