Проблема
Предварительный просмотр камеры выглядит правильно (портрет, 9:16), но записанное видео по-прежнему сохраняется как полный выходной сигнал датчика (16:9) пейзаж).
Я также делюсь изображением, посмотрите, как я обрезаю видео. когда я загружаю видео через adb, оно выглядит как зелено-фиолетовая линия, но при записи с сенсором 16:9 оно записывает хорошо.
Я хочу запись WYSIWYG — это означает:
Что я пробовал
- Использование setOrientationHint(90)
- Установка фиксированного разрешения (например, 1080x1920)
- Применение матрицы преобразования TextView
- Попытка масштабирования предварительного просмотра в соответствии с аспектом соотношение
Требование
- Записывать видео в портретной ориентации (9:16)
- Обрезать по центру сенсора камеры (пейзаж 16:9 → портрет 9:16)
- Вывод должен точно соответствовать предварительному просмотру (лишняя область не записывается)
Это работает на устройстве на базе Rockchip (RK3568/RK3399) в режиме киоска.
Насколько я понимаю, камера Rockchip HAL по-прежнему выдает полные кадры сенсора и не поддерживает обрезку напрямую через Camera2.
Вопросы
- Как правильно обрезать видео во время записи с помощью Camera2 + MediaRecorder?
- Можно ли:
- Обрезать на уровне поверхности (например, через OpenGL / SurfaceTexture)?
- Или это нужно делать после записи с помощью MediaCodec / FFmpeg?
- Существуют ли какие-либо API-интерфейсы Rockchip или функции уровня HAL, которые позволяют обрезать перед кодированием?
- Если требуется постобработка, каков наиболее эффективный способ сделать это без проблем с производительностью при повторном кодировании?
Предварительный просмотр (портрет, правильный):
Код: Выделить всё
| |
| |
| |
| |
Код: Выделить всё
-----------------
| |
| |
| |
-----------------
Код: Выделить всё
| |
| |
| |
| |
Дополнительный контекст
- Минимальный SDK: 24+
- Использование Java
- Нет CameraX (требуется только Camera2)
- Производительность в реальном времени важна
- Лучший подход (в режиме реального времени или постобработка)
- Пример кода или архитектуры
- Любое работающее решение на встроенных устройствах, таких как Rockchip