gpt4 book ai didi

c++ - 在输入和输出之间使用不同数量的样本编码音频 ffmpeg C++

转载 作者:行者123 更新时间:2023-11-28 05:56:31 25 4
gpt4 key购买 nike

我正在尝试制作一个音频编码器来对实时流进行编码。我从 webrtc 源获取音频流。源音频缓冲区的属性是(我无法更改它):

number of samples: 480 
sample size: 2 bytes
sample rate: 44100Hz
number of channels: 1

我正在使用 MP2 编解码器对音频进行编码。它期望音频样本数为 1152(不能更改),这与源(480)不同

我使用以下方法生成音频帧:

frame->nb_samples = 480;
avcodec_fill_audio_frame(frame, nb_channels(=1), sample_fmt(=AVCodecContext sample_fmt), temp_audio_buffer(=source), 480, 0);

我听到“断断续续”的声音。据我所知,这是因为每帧中的样本数量不同。

有没有办法以某种方式填充整个帧(1152 个样本)?我可以对这个直播进行编码吗?

谢谢

最佳答案

填充缓冲区,直到您拥有必要数量的样本,然后对缓冲区进行编码。使用余数开始下一个缓冲区。

关于c++ - 在输入和输出之间使用不同数量的样本编码音频 ffmpeg C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34075568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com