【发布时间】:2016-01-10 16:48:57
【问题描述】:
我是 FFMPEG API 的初学者,我需要处理音频样本。 我看到音频样本数据存储在 AVFrame->data[0] 中,但我不知道音频样本如何存储在 FFMPEG AVFrame 中。
例如: 有2个频道,
frame->nb_samples = 64,
frame->linesize[0] = 256.
我不知道音频样本数据如何存储在 frame->data[0] 中。 谢谢,
【问题讨论】:
我是 FFMPEG API 的初学者,我需要处理音频样本。 我看到音频样本数据存储在 AVFrame->data[0] 中,但我不知道音频样本如何存储在 FFMPEG AVFrame 中。
例如: 有2个频道,
frame->nb_samples = 64,
frame->linesize[0] = 256.
我不知道音频样本数据如何存储在 frame->data[0] 中。 谢谢,
【问题讨论】:
音频样本被指向
frame->data[0]
frame->data[1]
它们的长度为 frame->linesize[0] 字节
AVCodecContext 的 sample_fmt 将告诉您样本的格式,该格式将是以下之一:
AV_SAMPLE_FMT_FLTP
AV_SAMPLE_FMT_FLT
AV_SAMPLE_FMT_S16P
AV_SAMPLE_FMT_S16
对于FLT,您将指针转换为float*,对于S16,您将其转换为int16_t*
【讨论】: