ffmpeg-1.2+SDL解码视频文件时声音失真有大量噪音

livecsd 2013-05-07 09:37:11
本人新手,按照网上的教程在VS2010环境下编写了一个ffplay的小程序。由于原来的avcodec_decode_audio2函数不能使用了,就按照自己的理解改用了avcodec_decode_audio3,但是现在解码时声音有大量噪音,不知道是哪里出了问题,求指教。



int audio_decode_frame(VideoState *is, uint8_t *audio_buf, int buf_size, double *pts_ptr)
{
int len1, data_size,n;
AVPacket pkt = is->audio_pkt;
double pts;

for(;;)
{
while(is->audio_pkt_size > 0)
{

data_size = buf_size;



// int16_t * audio_buf = new int16_t[AVCODEC_MAX_AUDIO_FRAME_SIZE * 2];

len1 = avcodec_decode_audio3(is->audio_st->codec,(int16_t *)audio_buf, &data_size, &pkt);
if(len1 < 0)
{
/* if error, skip frame */
is->audio_pkt_size = 0;
break;
}
is->audio_pkt_data += len1;
is->audio_pkt_size -= len1;
if(data_size <= 0)
{
/* No data yet, get more frames */
continue;
}

pts = is->audio_clock;
*pts_ptr = pts;
n = 2 * is->audio_st->codec->channels;
is->audio_clock += (double)data_size / (double)(n*is->audio_st->codec->sample_rate);

/* We have data, return it and come back for more later */
return data_size;
}
if(pkt.data)
av_free_packet(&pkt);

if(is->quit)
{
return -1;
}
/* next packet */
if(packet_queue_get(&is->audioq, &pkt, 1) < 0)
{
return -1;
}

if(pkt.data == flush_pkt.data)
{
avcodec_flush_buffers(is->audio_st->codec);
continue;
}



is->audio_pkt_data = pkt.data;
is->audio_pkt_size = pkt.size;
/* if update, update the audio clock w/pts */
if(pkt.pts != AV_NOPTS_VALUE)
{
is->audio_clock = av_q2d(is->audio_st->time_base)*pkt.pts;
}

}
}
...全文
1932 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhxstrive 2014-01-02
  • 打赏
  • 举报
回复
我也遇到类似的问题,完全按照教程弄得,结果噪声太大,求解决
guohuanrong521 2013-12-24
  • 打赏
  • 举报
回复
我也遇到类似的问题,有解决了的吗
guohuanrong521 2013-11-07
  • 打赏
  • 举报
回复
我也遇到相同的问题,求解~~~
雷霄骅 2013-11-07
  • 打赏
  • 举报
回复
我自己写的基于FFMPEG的音频播放器,希望对你有帮助~ http://blog.csdn.net/leixiaohua1020/article/details/10528443
HX_world 2013-07-15
  • 打赏
  • 举报
回复
楼主,你搞定了吗?我也遇到这样的问题,不知道哪里出问题了,求救, QQ 707763833
记录在案 2013-06-26
  • 打赏
  • 举报
回复
ffmpeg-1.2 支持AAC的解码嘛? 是内置的还是应用外部的呢?
maohualin2012 2013-06-03
  • 打赏
  • 举报
回复
我也遇到了相同的问题,请问楼主解决了么?

2,542

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧