0
재생을 위해 AAC 오디오 스트림을 변환하려고합니다. 나는 내가 AV_SAMPLE_FMT_FLTP에서 AV_SAMPLE_FMT_S16으로 변환 할 필요가 있음을 발견했다.하지만 그렇게 할 때, 오디오는 약 절반의 속도로 재생된다.FFmpeg AAC에서 변환 후 오디오가 천천히 재생됩니다.
swr = swr_alloc();
assert(av_opt_set_int(swr, "in_channel_layout", audioContext->channel_layout, 0) == 0);
assert(av_opt_set_int(swr, "out_channel_layout", audioContext->channel_layout, 0) == 0);
assert(av_opt_set_int(swr, "in_sample_rate", audioContext->sample_rate, 0) == 0);
assert(av_opt_set_int(swr, "out_sample_rate", 44100, 0) == 0);
assert(av_opt_set_int(swr, "in_sample_fmt", audioContext->sample_fmt, 0) == 0);
assert(av_opt_set_int(swr, "out_sample_fmt", AV_SAMPLE_FMT_S16, 0) == 0);
swr_init(swr);
변환 할 코드가 있습니다. 입력 샘플 속도는 44100이고 오디오는 스테레오입니다.
나는 당신이 실제 오디오 인코딩 코드를 보여주지 않았다
swr_convert(swr, &output, aDecodedFrame->nb_samples, (const uint8_t**)aDecodedFrame->extended_data, aDecodedFrame->nb_samples) >= 0)