c++ - 将静音音频数据写入文件ffmpeg C++

标签 c++ audio ffmpeg mu-law

我想将静音/清零音频采样数据写入音频数据内的 mov 媒体容器文件中。我的音频数据是一个 channel 的G711线性PCM-mulaw编码数据。目前我的代码如下所示:

AVFrame* pSilentData = av_frame_alloc();
memset(&pSilentData->data[0], 0, iDataSize);
pkt.data = (uint8_t*) pSilentData;
pkt.size = iDataSize;

// ...

av_freep(&pSilentData->data[0]);
av_frame_free(&pSilentData);

但这听起来像点点噪音,而不是沉默。有什么问题吗?

最佳答案

对于µ-law音频零值表示为0xff,因此更改:

memset(&pSilentData->data[0], 0, iDataSize);

至:

memset(&pSilentData->data[0], 0xff, iDataSize);

关于c++ - 将静音音频数据写入文件ffmpeg C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32006821/

相关文章:

C++ random_shuffle 总是给出相同的结果

c++ - 交互类 - 组织代码

macos - OS X 环境中的音频文件 FFT

winapi - 如何检测系统中是否存在默认记录设备?

video - HEVC:从输入二进制流中获取输入宽度和高度

c++ - 派生类错误 'no type named my_data in <base class>'

c++ - 有什么工具可以将c/c++源代码转换成html吗?

android - 实时播放来自麦克风的音频

python-3.x - Matplotlib:使用跟踪保存的动画

FFMpeg - 将覆盖从点 a 移动到 b 到 c 到 d