Android Stagefright не удается установить частоту кадров видео

#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