|
我的实验如下
初始化流程
AVCodecContext *ctx;
AVFrame *frm;
AVPacket pkt;
enc_init()
{
codec = avcodec_find_encoder(AV_CODEC_ID_AAC);
ctx = avcodec_alloc_context3(codec );
avcodec_open2(ctx,codec,NULL);
}
编码流程
enc_start()
{
frm = av_frame_alloc();
av_init_packet(&pkt);
pkt.data = NULL;
pkt.size = 0;
avcodec_encode_audio2( ctx, &pkt, pfrm, &get);
if(get)
{
保存结果
}
}
采用单线程初始化后,反复调用编码过程,正常,播放aac声音很好。
采用4线程后,定义4组独立控制变量ctx/frm/pkt,将输入pcm每次分4段同时编码,每个通道编码均正常,
但4段aac编码结果的组合,播放声音很差!
难道ffmpeg不允许这么做?求大神们指点指点问题原因
|
|