#android #stagefright
#Android #stagefright
Вопрос:
У меня есть приложение, которое передает потоковое видео с устройства на удаленный компьютер. При попытке установить частоту кадров я продолжаю получать:
ERROR/StagefrightRecorder(131): Failed to set frame rate to 15 fps. The actual frame rate is 30
Код, который я использую:
video = new MediaStreamer();
video.setVideoSource(MediaRecorder.VideoSource.CAMERA);
video.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
video.setVideoFrameRate(frameRate);
Есть идеи, как это исправить?
Ответ №1:
Декодеры обычно поставляются от поставщика полупроводников, таких как TI, Qualcomm и т. Д. Это зависит от декодеров, выполняют ли они вызов изменения частоты кадров или нет. На уровне приложений вы мало что можете с этим поделать. Вызовы, которые вы делаете, являются правильными. Если базовые декодеры поддерживают это, вы можете изменить то, что не можете.
Vibgyor
Ответ №2:
Я предполагаю, что в документации говорится, что вы можете или не можете установить частоту кадров с уровня приложения. Это зависит от базового декодера, дает ли он приложению такую гибкость или нет. Я хорошо помню, что я пытался установить частоту кадров даже на 3-4 кадра, но все же она дает только частоту кадров по умолчанию. Я видел в рамках Stagefright, что он передает вызов частоты кадров декодеру, а затем зависит от того, выполнит ли декодер вызов или нет.
Vibgyor