Проблема
Предварительный просмотр камеры выглядит правильно (портрет, 9:16), но записанное видео по-прежнему сохраняется как полный выходной сигнал датчика (16:9 ландшафт).
Я также делюсь изображением, посмотрите, как я обрезаю видео. когда я загружаю видео через adb, оно выглядит как зеленая и фиолетовая линия, но при записи сенсора 16:9 оно записывает хорошо

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