编码wav到ogg vorbis的问题

时间:2011-03-03 21:07:29

标签: c++ audio data-conversion

我有一个MFC应用程序。我有以wav格式存储的音频数据。我的问题是,如何将这些字节数组编码为ogg vorbis格式?

我找到了一个例子:

http://svn.xiph.org/trunk/vorbis/examples/encoder_example.c

并尝试在我的应用程序中使用它。 首先,我尝试将其添加到我的项目中并进行编译。我不得不添加上面文件中包含的文件,所以我在库libvorbis和libogg中找到它们。我仍然无法联系:

Error 4 error LNK2019: unresolved external symbol _oggpack_writetrunc referenced in function _vorbis_bitrate_addblock bitrate.obj
Error 2 error LNK2019: unresolved external symbol _oggpack_write referenced in function _vorbis_bitrate_addblock bitrate.obj
Error 8 error LNK2019: unresolved external symbol _oggpack_read referenced in function _vorbis_staticbook_unpack codebook.obj
Error 10 error LNK2019: unresolved external symbol _oggpack_look referenced in function _decode_packed_entry_number codebook.obj
Error 7 error LNK2019: unresolved external symbol _oggpack_get_buffer referenced in function _vorbis_bitrate_flushpacket bitrate.obj
Error 5 error LNK2019: unresolved external symbol _oggpack_bytes referenced in function _vorbis_bitrate_addblock bitrate.obj
Error 9 error LNK2019: unresolved external symbol _oggpack_adv referenced in function _decode_packed_entry_number codebook.obj
Error 3 error LNK2001: unresolved external symbol _oggpack_write codebook.obj
Error 6 error LNK2001: unresolved external symbol _oggpack_bytes codebook.obj

我找不到这些家伙的定义。 我将不胜感激任何帮助。

感谢。

3 个答案:

答案 0 :(得分:0)

libsndfile是一个流行的图书馆,可以满足您的需求。

至于链接错误,看起来您正在使用依赖于定义以“oggpack”开头的符号的库的代码进行链接,因此您需要在链接中包含该库。但是使用libsndfile可能是更好的解决方案。

答案 1 :(得分:0)

我运气好了: gcc program.c -lvorbis -o program

我希望vorbis可以做一些小工作 那会有用。  我尝试了所有那些例子而且他们不是很好。

答案 2 :(得分:0)

gcc p.c -lvorbisenc -o p
 或
gcc p.c -lvorbis -lvorbisenc -o p

但是我还没有检查它是否会对wav进行编码。