У вас недостаточно подробностей, чтобы точно объяснить, какое разрешение вы хотите использовать, но звучит так, как будто вы хотите записать с соотношением сторон / разрешением, которое не соответствует одному из поддерживаемых соотношений / разрешений сторон изКамера устройства.
Вы всегда можете отправить данные изображения в графический процессор, сделать там любое необходимое кадрирование / масштабирование и затем отправить его в видеокодер.
Как правило, этовключают в себя:
- Настройка контекста EGL
- Создание цели рендеринга в EGL и получение для нее поверхности Android
- Создание текстуры поверхности для отправки данных текстуры вEGL
- Подключите входной текст EGL SurfaceTexture к камере (сначала создав из нее Surface, если используется камера2)
- Подключите выходной EGL Surface к MediaRecorder
- Записывайте код шейдера вобрабатывать входящие кадры с камеры, обрезать / масштабировать / изменять по мере необходимости, затем рендерить их на выходную поверхность
- Установить камеру и медиа-рекордер, затем запустить ихоба
- В SurfaceTexture onFrameAvailable активируйте код рендеринга.
Это довольно сложный процесс построения, но он должен быть достаточно эффективным, когда закончите.