Я пытаюсь транслировать экран с устройства iOS на устройство Android.
Я использую ReplayKit на iOS для захвата экрана и VideoToolbox для сжатия захваченных видеоданных в формат H.264 с помощью CMSampleBuffers. И iOS, и Android настроены на сжатие и распаковку H.264.
Хотя трансляция экрана работает безупречно на одной и той же платформе (с iOS на iOS или с Android на Android), я столкнулся с ошибкой. («не в режиме avi») на Android-приемнике при трансляции с iOS. Мои исследования показывают, что базовые форматы контейнеров для H.264 могут различаться в iOS и Android.
Передача данных через сокет TCP, похоже, работает правильно.
Мой вопрос:
Есть ли способ обеспечить общий формат контейнера для сжатия и распаковки H.264 на платформах iOS и Android?
Вот подробные сведения об отправителе iOS:
Устройство: iPhone 13 mini под управлением iOS 17. Разработка
Среда: Xcode 15 с минимальной целью развертывания iOS 16.
Снимок экрана: ReplayKit для захвата. экран и получение CMSampleBuffers
Сжатие видео: VideoToolbox для сжатия H.264 Свойства сжатия:
kVTCompressionPropertyKey_ConstantBitRate: 6144000 (битрейт) kVTCompressionPropertyKey_ProfileLevel: kVTProfileLevel_H264_Main_AutoLevel (профиль и уровень) KeyFrameInterval: 60 ( максимальный интервал ключевых кадров) kVTCompressionPropertyKey_RealTime: true (кодирование в реальном времени) kVTCompressionPropertyKey_Quality: 1 (самое низкое качество) Обработка единиц NAL: к единицам NAL добавляется пользовательский заголовок. Сведения о приемнике Android:
Устройство: RedMi 7A Декодирование видео Android 10:
API MediaCodec для приема и декодирования потока H.264.
Проверено с переключением на основной профиль в iOS.
Подробнее здесь: https://stackoverflow.com/questions/784 ... ding-issue
Проблема кодирования/декодирования H264 с iOS на Android ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение