2017-08-21 4 views
0

J'utilise le code suivant pour demander que mon téléphone (LG G5) enregistre en utilisant le profil High Speed ​​High Quality, qui spécifie 120FPS et 720p.Enregistrement avec FPS correct dans Android (120FPS CamcorderProfile ne fonctionne pas)

CamcorderProfile mProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH_SPEED_HIGH); 

    mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE); 
    mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
    if (mNextVideoAbsolutePath == null || mNextVideoAbsolutePath.isEmpty()) { 
     mNextVideoAbsolutePath = getVideoFilePath(getActivity()); 
    } 
    mMediaRecorder.setOutputFile(mNextVideoAbsolutePath); 
    mMediaRecorder.setVideoEncodingBitRate(mProfile.videoBitRate); 
    mMediaRecorder.setVideoFrameRate(mProfile.videoFrameRate); 
    mMediaRecorder.setVideoSize(mProfile.videoFrameWidth, mProfile.videoFrameHeight); 
    mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); 
    mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 

Malheureusement, les images par seconde spécifiées sont complètement ignorées. Ma vidéo sort aux environs de 25FPS! Que puis-je faire pour résoudre ce problème?

Merci!

Répondre

0

Sur la plate-forme, media_profiles.xml a défini la capacité du codeur vidéo/audio. Prenez QC msm8998 par exemple:

<EncoderProfile quality="high" fileFormat="mp4" duration="30"> 
    <Video codec="h264" 
     bitRate="42000000" 
     width="3840" 
     height="2160" 
     frameRate="30" /> 

    <Audio codec="aac" 
     bitRate="156000" 
     sampleRate="48000" 
     channels="2" /> 
</EncoderProfile> 

Je pense que cela peut causer votre vidéo autour 25FPS.

Selon http://www.theandroidsoul.com/lg-g4-hacks-improve-camera-performance-60-fps-recording/, il semble augmenter fps en modifiant le fichier de configuration du téléphone est possible.