Черная рамка в конце видео при добавлении аудио в AVAssetWritter - PullRequest
0 голосов
/ 14 февраля 2019

Я сделал Рекордер, который принимает CMSampleBuffers (видео или аудио), поступающие из разных источников, иногда кадры исходят от Камеры, иногда из Видеофайла, а иногда даже из Неподвижного Изображения, которое подает кадры со скоростью 30 кадров в секунду.

Все это прекрасно работает, и я получаю правильные видео (со звуком) от AVAssetWritter.Проблема в том, когда я добавляю аудио.По какой-то причине финальное видео имеет черную рамку в конце.

Я передаю только аудиокадры, как только поступил первый видеокадр.

  • Когда аудио sampleBuffer поступает из пользовательского канала, я заменяю временную метку sampleBuffer набыть меткой времени последнего полученного видеокадра.

  • Когда кадры исходят от родной Камеры, я ничего не делаю и просто добавляю это к автору.

В обоих случаяхЯ получаю черную рамку в конце.Если я вообще не добавляю аудио, мои видео не имеют черной рамки.

Я читаю через некоторые коды GitHub, и я вижу, что они делают некоторые махинации со смещением времени и добавлением времени приходящего кадра с помощьювремя предыдущего кадра и некоторые сумасшедшие вычисления.

Кто-нибудь знает, как правильно подавать аудио и видео кадры отдельно в AVAssetWriter?

...