Я сделал Рекордер, который принимает CMSampleBuffers (видео или аудио), поступающие из разных источников, иногда кадры исходят от Камеры, иногда из Видеофайла, а иногда даже из Неподвижного Изображения, которое подает кадры со скоростью 30 кадров в секунду.
Все это прекрасно работает, и я получаю правильные видео (со звуком) от AVAssetWritter.Проблема в том, когда я добавляю аудио.По какой-то причине финальное видео имеет черную рамку в конце.
Я передаю только аудиокадры, как только поступил первый видеокадр.
Когда аудио sampleBuffer поступает из пользовательского канала, я заменяю временную метку sampleBuffer набыть меткой времени последнего полученного видеокадра.
Когда кадры исходят от родной Камеры, я ничего не делаю и просто добавляю это к автору.
В обоих случаяхЯ получаю черную рамку в конце.Если я вообще не добавляю аудио, мои видео не имеют черной рамки.
Я читаю через некоторые коды GitHub, и я вижу, что они делают некоторые махинации со смещением времени и добавлением времени приходящего кадра с помощьювремя предыдущего кадра и некоторые сумасшедшие вычисления.
Кто-нибудь знает, как правильно подавать аудио и видео кадры отдельно в AVAssetWriter?