a-schild / jave2

The JAVE (Java Audio Video Encoder) library is Java wrapper on the ffmpeg project
GNU General Public License v3.0
1.2k stars 245 forks source link

Conversion of an HEVC file #205

Closed classicPintus closed 7 months ago

classicPintus commented 2 years ago

Hello, I'm using Jave but I've a problem with a HEVC video generated by an iPhone 12 Pro Max.

I'm trying to switch to the mp4 format using the H264 but the generated file cannot be opened in Safari.

Is there a format compatible with all browsers? I show you my code, maybe can be helpful

private void convert(File source, File destination) {
        Encoder encoder = new Encoder();
        MultimediaObject multimediaSource = new MultimediaObject(source);
        MultimediaInfo multimediaSourceInfo = multimediaSource.getInfo();

        AudioAttributes audio = new AudioAttributes();
        audio.setCodec("aac");
        audio.setBitRate(multimediaSourceInfo.getAudio().getBitRate());
        audio.setChannels(multimediaSourceInfo.getAudio().getChannels());
        audio.setSamplingRate(multimediaSourceInfo.getAudio().getSamplingRate());

        VideoAttributes video = new VideoAttributes();
        video.setCodec("h264");
        video.setBitRate(multimediaSourceInfo.getVideo().getBitRate());
        video.setFrameRate(Math.round(multimediaSourceInfo.getVideo().getFrameRate()));

        String rotate = multimediaSourceInfo.getVideo().getMetadata().get("rotate");
        if ("90".equals(rotate)) {
            VideoSize videoSize = multimediaSourceInfo.getVideo().getSize();
            video.setSize(new VideoSize(videoSize.getHeight(), videoSize.getWidth()));
        } else {
            video.setSize(multimediaSourceInfo.getVideo().getSize());
        }

        EncodingAttributes attrs = new EncodingAttributes();
        attrs.setOutputFormat("mp4");
        attrs.setAudioAttributes(audio);
        attrs.setVideoAttributes(video);

        encoder.encode(multimediaSource, destination, attrs);
}
mharper6008 commented 6 months ago

@classicPintus Were you ever able to find a solution to this? I'm having the same issue.