android / media-samples

Multiple samples showing the best practices in media APIs on Android (audio, video, etc.).
Apache License 2.0
1.27k stars 741 forks source link

How to record videos in HEVC in Android #83

Open arianaa30 opened 3 years ago

arianaa30 commented 3 years ago

I trying to write a simple video app in Android that captures video and saves it locally. Looking at the recorded videos on my device, apparently it uses H264 AVC1 codec by default. I know my particular device supports HEVC (Samsung S10). How can I record videos using H265 (probably first check if it supports HEVC through some API, then do it)?

This is what I use right now to capture video with camera. It doesn't specify the codec to use.

       private void recordVideo() {
            Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);

            fileUri = getOutputMediaFileUri(MEDIA_TYPE_VIDEO);

            // set video quality
            intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);

            intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the video file name

            // start the video capture Intent
            startActivityForResult(intent, CAMERA_CAPTURE_VIDEO_REQUEST_CODE);
        }