我想在我的每个.wav文件中添加一个时间标签。此标记将显示文件的启动时间,如果可能,还会显示结束时间。时间可以相对于unix纪元。我该如何着手做这件事,或者甚至是可以做到的?
谢谢
-Josh
发布于 2011-02-21 23:44:41
WAV文件支持有限的、基于文本的标记,这可能适合您。您可以在INFO块( http://en.wikipedia.org/wiki/Resource_Interchange_File_Format#Use_of_the_INFO_chunk)中指定用户定义的字段,这可能适合您的需要,但没有比在MP3中使用ID3标记或在FLAC中使用Vorbis注释更简单的方法了。
我不知道有什么库可以让这项工作变得更容易,因为我不使用WAV,但也许libsndfile可以为您工作,或者您可以通过将文件读入字节流,然后使用规范中的信息自己处理头文件来操作头文件:http://www.sonicspot.com/guide/wavefiles.html#wavefileheader
否则,为了简单起见,您可能需要将WAV文件代码转换为FLAC,然后将字段写入FLAC标签:完整的FLAC C和C++应用编程接口文档,请访问:http://flac.sourceforge.net/api/index.html
发布于 2011-02-21 23:38:32
来自http://www.wotsit.org/download.asp?f=wave&sc=351595652
波形文件是许多不同类型的块的集合。..。在其他可选块中,有定义提示点、列出仪器参数、存储特定于应用程序的信息等的块。
您可以为您的信息添加自己的块,但只有您的工具才能读写它。您可能会发现与其他软件的互操作性问题,这些软件不能正确忽略未知的块,或者选择与块相同的ID。块ID是4个字节,所以在实践中应该有足够的空间来避免这个问题,即使在最严格的意义上解释上面的文档("4个ASCII字节“) ("4字节的可打印ASCII字符”)。
相反,您可以在wave文件旁边保留一个单独的文件,其中包含您的信息。不会有互操作性问题,但用户需要将文件保存在一起。
发布于 2011-02-21 23:37:09
我不确定是否有通用的方法(就像jpeg中的exif标签),但是如果其他方法都失败了,你可以尝试使用http://en.wikipedia.org/wiki/Steganography。
这是一种将消息编码成文件的方法,特别是图片和音频文件,只对内容进行细微的修改。但我不知道将该消息编码/解码到一个文件中需要多少efford。
https://stackoverflow.com/questions/5067721
复制相似问题