我想在每个.wav文件中添加一个时间标记。此标记会说明文件何时及时启动,如果可能的话,结束时间。时间可能与unix时代有关。我该如何做到这一点,甚至可以做到这一点?
由于
-Josh
答案 0 :(得分:3)
来自http://www.wotsit.org/download.asp?f=wave&sc=351595652:
WAVE文件是许多不同类型的块的集合。 ...其他可选块包括定义提示点,列出仪器参数,存储特定于应用程序的信息等。
您可以添加自己的块以供您参考,但只有您的工具才能读取和写入。您可能会发现与其他软件无法正确忽略未知块的互操作性问题,或者选择与您的块相同的ID。块ID是4个字节,因此在实践中应该有足够的空间来避免这个问题,甚至在最严格的意义上解释上述文档(“4个ASCII字节”)(“4个字节的可打印ASCII字符”)。
相反,您可以在wave文件旁边保留一个单独的文件和您的信息。没有互操作性问题,但用户需要将文件保存在一起。
答案 1 :(得分:3)
WAV文件支持有限的基于文本的标记,这可能对您有用。您可以在INFO块(http://en.wikipedia.org/wiki/Resource_Interchange_File_Format#Use_of_the_INFO_chunk)中指定用户定义的字段,这可能适合您的需要,但是没有比在FLAC中使用MP3中的ID3标签或VACbis评论更简单的方法。
我不知道任何使这更容易使用的库,因为我不使用WAV,但也许libsndfile可能适合你,或者你可以通过阅读自己操纵标题在文件中转换为字节流,然后使用规范中的信息自行处理标题:http://www.sonicspot.com/guide/wavefiles.html#wavefileheader
否则,在更简单的时间内,您可能希望将WAV文件转码为FLAC,然后将字段写入FLAC标记:完整的FLAC C和C ++ API文档:http://flac.sourceforge.net/api/index.html
答案 2 :(得分:0)
我不确定是否有一种常见的方法(如jpeg中的exif标签),但如果其他一切都失败了,你可以尝试使用http://en.wikipedia.org/wiki/Steganography
这是一种将消息编码到文件中的方法,特别是图片和音频文件,只是稍微改变了内容。但是我不知道将该消息编码/解码成文件会有多少efford。
答案 3 :(得分:0)
WAV文件是RIFF个文件,旨在允许添加任意数据块而不会破坏其他程序的文件(只要您选择的块标记不与其他任何人冲突)。
如果您使用的是Windows,则可以使用一些功能来帮助您操作此类文件,例如: mmioCreateChunk