JavaCV FFmpegFrameRecorder propriétés explication nécessaire

Je suis en utilisant FFmpegFrameRecorder pour obtenir l'entrée vidéo de ma webcam et de les enregistrer dans un fichier vidéo. Le problème est que je suis en train de construire mon application en utilisant un peu différent de la démo codes sources que j'ai trouvé et j'utilise les propriétés de certains ne sont pas complètement clair pour moi.

Tout d'abord, voici mon extrait de code :

FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(FILENAME,  grabber.getImageWidth(),grabber.getImageHeight());

        recorder.setVideoCodec(13);
        recorder.setFormat("mp4");
        recorder.setPixelFormat(avutil.PIX_FMT_YUV420P);
        recorder.setFrameRate(30);
        recorder.setVideoBitrate(10 * 1024 * 1024);

        recorder.start();
  • setVideoCodec(13) - Quel est le sens de cette (13) comment puis-je comprendre ce réel codec se trouve derrière n'importe quel nombre?
  • setPixelFormat - Juste obtenir cela, ne pas savoir ce qu'elle fait en général
  • setFrameRate(30) - je pense que cela devrait être assez clair, mais encore quelle est la logique derrière ce cadre, nous avons choisi (n'est-ce pas le haut de la meilleure?)
  • setVideoBitrate(10*1024*1024) de nouveau presque aucune idée de ce que cela fait, et quelle est la logique derrière ces chiffres?

À la fin, je veux juste mentionner un dernier problème que je reçois de l'enregistrement vidéo de ce genre. Si la longueur réelle de la vidéo est disons 20secs. Quand j'ai jouer le fichier vidéo créé à partir du programme, il fonctionne beaucoup plus rapidement. Peut pas dire si c'est exactement 2 fois plus vite qu'elle ne devrait l'être, mais en général, si j'enregistre un 20sec vidéo, puis il est joué pendant environ 10secs. Ce qui peut provoquer cela et comment puis-je résoudre ce problème?

OriginalL'auteur Leron | 2013-01-02