Соответствующая единица времени данных MediaCodec — (наносекунда/1000), что аналогично 610 729 613 772, 7-я цифра снизу представляет второй уровень.
описывать:Не удалось записать данные
Этот тип ошибки в основном связан с временными метками
Феномен | решать |
---|---|
выплюнуть временную метку задом наперед | Отбрасывать ненормальные кадры (проверено, что они не оказывают никакого влияния, а величина невелика) |
выплюнуть временные метки равные | Отбрасывать ненормальные кадры (некоторые машины могут принимать одинаковые данные, но отбрасывают их ради универсальности) |
Чтобы проанализировать проблему, необходимо различать временные метки аудио и видео.
Пример
ТС второго ряда меньше, чем ТС первого ряда, а третий ряд нормальный.
размер writeSampleData = 186, ts = 621441165854
размер writeSampleData = 186, ts = 621441065854
размер writeSampleData = 185, ts = 621441131957
Это неправильный журнал записи звука. writeSampleData Failed появится только при записи третьей строки. Поэтому для анализа такого рода проблем может потребоваться поиск еще нескольких кадров. Данные кадра, в котором возникает проблема, не обязательно являются текущим кадром.
Две очереди управляют входом и выходом из очереди. Исходные данные передаются на вход и выводятся на выход.
Если ввод и вывод находятся в разных потоках,Потому что скорость обработки с обеих сторон непоследовательна.,Это приведет к тому, что входные данные будут слишком запоздалыми для использования.,Вызывает перезапись (удаление) части исходных данных.,Окончательное формирование Феномен - Аудио ускорится,Призрачный зверь. видео Он замерзнет, если вы его выбросите.
Проблемы такого типа обычно возникают в двух ситуациях: неправильная временная метка и некоторые кадры данных отброшены.
Рекомендуемое время:dequeueOutputBufferвозвращатьсяMediaCodec.INFO_OUTPUT_FORMAT_CHANGEDвозобновлятьMediaMuxer.addTrack, Старт срабатывает после завершения всех треков.
Аудио:dequeueOutputBufferвозвращатьсяMediaCodec.INFO_OUTPUT_FORMAT_CHANGEDвызвать новыйMediaMuxer.addTrack видео:dequeueOutputBufferвозвращатьсяMediaCodec.INFO_OUTPUT_FORMAT_CHANGEDвызвать новыйMediaMuxer.addTrack MediaMuxer:всеtrack запуск срабатывает после завершения добавления
В некоторых моделях инициализация аудио или видео идет очень медленно и время сдвинуто. В результате после поступления данных другого канала из-за того, что MediaMuxer не запускается, эта часть данных по умолчанию отбрасывается.
Как правило, сценарии возникновения таких проблем следующие: требуется логическая защита.