Android - запись видео и установка размера видео (размеры)

Я нахожусь в процессе рефакторинга фрагмента кода, который записывает видео (с камеры) обычно в пределах от 3 до 30 секунд, чтобы уменьшить общий размер (в байтах) видео.

Мы ранее использовали CamcorderProfile, но он не обеспечивает достаточной степени детализации для нашего приложения, поэтому я перешел к ручной настройке всех параметров (источника звука, источника видео, частоты кадров видео, аудиокодера и т. д.).

Проблема в том, что я не могу найти надежный метод для выбора оптимального размера видео, поскольку не существует (насколько мне известно) универсального списка размеров, который поддерживаются всеми устройствами Android. Мне бы хотелось, чтобы видео было как можно ближе к 480x360px, так как мы помещаем наше видео в Amazon Elastic Transcoder, который делает видео 480x360px в различных форматах (mp4, webm и т. Д.).

Ниже приведен фрагмент кода моей общей идеи:

List<Camera.Size> sizes = camera.getParameters().getSupportedVideoSizes();
Camera.Size s;

//
// select size from sizes???
//

recorder = new MediaRecorder();
camera.stopPreview();
camera.unlock();
recorder.setCamera(camera);

// configure recorder
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);

recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

// WHAT IS THE SIZE??    
recorder.setVideoSize(s.width, s.height);

recorder.setVideoFrameRate(15);

recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);

Я просмотрел множество сообщений здесь, а также Документы с определениями совместимости Android для 4.4 - 6.0.

Любые идеи или ресурсы с благодарностью.

0 ответов

Другие вопросы по тегам