Обработка изображений и запись видео с использованием Javacv и Android Camera2 Api
Я создал приложение Android, которое будет обрабатывать каждый кадр, добавляя значок приложения к доступному кадру, а затем записывать этот измененный растровый кадр в видео, используя JavaCV FFMPEGFrameRecorder. Я использую поверхность устройства чтения изображений и получаю новые кадры внутри I mageReader.OnImageAvailableListener, формат изображения - JPEG. Мое приложение работает нормально, как требуется, за исключением 2 устройств, Panasonic P50 и Galaxy Note Edge. В обоих этих устройствах сгенерированный окончательный файл является только аудио и не содержит никакого видео, поскольку я вижу, что OnI mageAvailableListener никогда не вызывается.
Вот код для инициализации FFMPEGFrameRecorder:-
recorder = new FFmpegFrameRecorder(videoFileName, videoSize.getWidth(), videoSize.getHeight(), 1);
recorder.setVideoMetadata("rotate", rotation);
recorder.setFormat("mp4");
recorder.setSampleRate(sampleAudioRateInHz);
recorder.setVideoCodec(28);
recorder.setFrameRate(20);
recorder.setVideoOption("preset", "veryfast");
recorder.setVideoQuality(1);
В первую очередь я предсказал, что проблема может заключаться в разрешении видео, т. Е. Максимально поддерживаемое значение 1280X720 пикселей для медиаформата H.264 (mp4) по этой ссылке, но после исправления разрешения видео оно не работает только на этих двух устройствах.