安卓媒体录制器在谷歌眼镜上不能录制长视频

14

我已经为Google眼镜编写了一个开源相机,但其中一些使用过它的人报告说,录制的视频对于长度较长的视频无法正确保存。

在Android文档中,我找不到任何关于这种限制的信息。

因此,在检查后,我发现对于超过26分钟的视频,视频文件会被保存在眼镜上,其大小约为2.7 GB,但其持续时间为0:00。并且不能使用任何视频播放器播放。

所以我想知道原因是什么?为什么对于duration < 26分钟的视频可以正确录制,而对于更长时间的视频则出现问题。

开始录制视频的代码如下:

/**
 * Initialize video recorder to record video
 */
private void initRecorder() {
    try {
        File dir = new File(Environment.getExternalStorageDirectory()
                + File.separator + Environment.DIRECTORY_PICTURES
                + File.separator + "My Videos");
        if (!dir.exists()) {
            dir.mkdirs();
        }
        videofile = new File(dir, "video.mp4");
        recorder.setCamera(mCamera);

        // Step 2: Set sources
        recorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
        recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

        // Step 3: Set a CamcorderProfile (requires API Level 8 or higher)
        recorder.setProfile(CamcorderProfile
                .get(CamcorderProfile.QUALITY_HIGH));
        // Step 4: Set output file
        recorder.setOutputFile(videofile.getAbsolutePath());
        // Step 5: Set the preview output
        recorder.setPreviewDisplay(mPreview.getHolder().getSurface());
        // Step 6: Prepare configured MediaRecorder
        recorder.setMaxDuration(3600* 1000);
        recorder.setMaxFileSize(-1);
        recorder.setOnErrorListener(new OnErrorListener() {

            @Override
            public void onError(MediaRecorder mr, int what, int extra) {
            Log.e("Error Recording", what+" Extra "+extra);

            }
        });
        recorder.setOnInfoListener(new OnInfoListener() {

            @Override
            public void onInfo(MediaRecorder mr, int what, int extra) {
                if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
                    endVideoRecording();
                }

            }
        });

        recorder.prepare();
        recorder.start();
        mOverlay.setMode(Mode.RECORDING);

    } catch (Exception e) {
        if (e != null && e.getMessage() != null)
            Log.e("Error Starting CuXtom Camera for video recording",
                    e.getMessage());
    }
}
1个回答

4

根据我的研究,似乎 Google Glass 只能录制小于 2GB 大小的视频,因此如果您想记录任何可能大于该大小的视频,则建议您将视频分成较小的部分,然后最终使用 mp4 parser 合并。


我可以录制高达4.1 GB的视频(在Windows上为3.8 GB),而本地记录器甚至可以录制更多(它记录了高达4.7 GB)。我不知道如何进一步录制4.1 GB。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接