Приложение Camera2 на основе медиа-рекордера записывает видео низкого качества. Кто-нибудь знает почему?

Я разрабатывал приложение для камеры с использованием камеры 2 и принимал коды из этих видеороликов: https://www.youtube.com/watch?v=69J2ycNCtpE&lc=z23lu3jo4xuwzjataacdp43bf4ywaag5x2tpbiljkf1w03c010c Мне пришлось обновить коды со временем выполнения.

Качество видео, которое я получаю, ужасно, и я не знаю почему. Я пытался играть с выходным форматом, видеокодером, битрейтом (в соответствии с тем, что я нашел в других ответах), но качество не меняется, и оно намного хуже по сравнению с исходным приложением камеры. При сравнении двух похожих видео одинаковой длины, разрешения одинаковы (1080x1920), но размер видео, полученного с помощью этого приложения, составляет 0,95 МБ, а у видео, снятого с помощью оригинального приложения камеры, - 12 МБ. Понятно, что-то там не работает, но я не знаю что. PS: это явление, кажется, не происходит с парнем из учебника, когда он пытается приложение на своем телефоне. Любая помощь будет высоко ценится!

2 ответа

Решение

Если вы попробуете официальный пример видеозаписи Camera2Video, он также записывает плохое видео?

Если это так, вероятно, имеется ошибка устройства, из-за которой оно игнорирует настроенное качество видео. Если Camera2Video работает нормально, то посмотрите, чем она отличается от вашего собственного приложения.

Я рекомендую вам посмотреть этот образец https://github.com/googlesamples/android-Camera2Basic

Может быть, с этой конфигурацией можно решить

// For still image captures, we use the largest available size.
            Size largest = Collections.max(
                    Arrays.asList(map.getOutputSizes(ImageFormat.JPEG)),
                    new CompareSizesByArea());
            mImageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(),
                    ImageFormat.JPEG, /*maxImages*/2);
            mImageReader.setOnImageAvailableListener(
                    mOnImageAvailableListener, mBackgroundHandler);
Другие вопросы по тегам