FFmpeg在解码时重新采样音频

时间:2017-07-10 23:24:40

标签: c++ audio video ffmpeg mpeg2-ts

我有一项任务是构建一个解码器,从编码的mpegts网络流中为1个原始视频帧生成1个原始音频帧,以便用户可以通过调用getFrames()来使用API​​,并准确接收这两个帧

目前我正在线程中使用av_read_frame进行读取,解码为数据包来源,音频或视频;收集直到视频包被击中。问题通常是在看到视频之前收到多个音频数据包。

av_read_frame正在阻塞,当收集到一定数量的音频数据时返回(mp2为1152个样本);并且解码该分组给出具有持续时间T的原始AVFrame(取决于采样率);而视频帧的持续时间通常大于T(取决于fps),因此在它之前接收多个音频帧。

我猜我必须找到一种方法,在收听视频时将收集的音频帧合并为1个单帧。我想还需要重新采样和设置时间戳以与视频对齐。我不知道这是否有效。

以这种方式同步视频和音频的最流畅的方法是什么?

0 个答案:

没有答案