将音频附加到AVAssetWritter时,视频末尾出现黑框

时间:2019-02-14 07:14:38

标签: ios swift avfoundation core-audio video-processing

我制作了一个记录器,该记录器使用CMSampleBuffers(视频或音频) 来自不同的来源,有时帧来自相机,有时来自视频文件,有时甚至来自以30fps传输帧的静止图像。

所有这些都可以正常工作,并且我可以从AVAssetWritter获得适当的视频(带有音频)。 问题是当我添加音频时。由于某种原因,最终视频的末尾有一个黑框。

第一个视频帧到达后,我只会输入音频帧。

  • 当音频sampleBuffer来自自定义提要时,我将替换 sampleBuffer的时间戳记是最后一个视频的时间戳记 帧已收到。

  • 当帧来自本地相机时,我什么也不做, 只需将其附加到作者即可。

在这两种情况下,最后我都会出现黑框。 如果我根本不添加任何音频,则我的视频没有黑框。

我读了一些github代码,发现它们用偏移时间做一些恶作剧,并将到达帧的时间与前一帧的时间相加,并且进行了一些疯狂的计算。

有人知道将音频和视频帧分别馈送到AVAssetWriter的正确方法是什么吗?

0 个答案:

没有答案