【问题标题】:Converting a 24 khz mp3 audio to 16 khz wav using libmad library in C?使用 C 中的 libmad 库将 24 khz mp3 音频转换为 16 khz wav?
【发布时间】:2017-12-05 12:09:14
【问题描述】:

我正在用 C 语言编写一个小型应用程序,它从基于云的语音引擎接收 mp3 音频数据,并将其转换为 16 khz 采样率的 pcm 数据(wav 格式)。我正在使用 libmad 解码 mp3 数据,但我没有找到将其从 24 khz 下采样到 16 khz 的选项。我们可以使用 libmad 做到这一点,还是需要另一个单独的库来实现这一点?任何与此相关的信息都会有所帮助。谢谢,

~里夫

【问题讨论】:

标签: audio mp3 decoding


【解决方案1】:

lamehelper 库可用于此... 使用本网站可以帮助您: https://www.codeproject.com/Articles/656543/The-LAME-wrapper-An-audio-converter

你的代码应该看起来像这样-

#include "lameHelper.h"
struct settings_t //make a struct to store settings
{
    char* title;
    char* artist;
    char* album;
    char* comment;
    char* year;
    char* track;
    char* genre;
    char* albumart;

    encode_channel_e channels;
    bitrate_e abr_bitrate;
    bitrate_e cbr_bitrate;
    int quality;
    encode_mode_e enc_mode;
    samplerate_e resample_frequency; // This is what you are going to need
    samplerate_e in_samplerate;

    //The constructor: used to set default values
    settings_t();
};

int main()
{
    settings_t settings;
    settings.enc_mode = EM_ABR;
    settings.abr_bitrate = BR_128kbps;//If you are going to use ABR encode mode @ 128kbps
    settings.album = "The Album";//Setting the album (id3 tag)
    settings.albumart = "c:/.../art.jpg";//Setting the albumart
    settings.track = "01";//Setting the track

    //..and various other settings

    lameHelper lhHandle;
    lhHandle.encode("c:/.../song.mp3", "c:/.../song.wav", settings);

    return 0;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 2023-03-14
    • 1970-01-01
    • 2013-11-12
    相关资源
    最近更新 更多