免费转视频格式的软件(手机转码工具)

问题:原视频的编码格式为H265,在小程序上面无法播放,需要转为MPEG-4格式。

1、引入相关依赖

<dependency>     <groupId>org.bytedeco</groupId>    <artifactId>javacv</artifactId>    <version>1.4.1</version></dependency><dependency>    <groupId>org.bytedeco</groupId>    <artifactId>javacpp</artifactId>    <version>1.4.1</version></dependency><dependency>    <groupId>org.bytedeco.javacpp-presets</groupId>    <artifactId>opencv-platform</artifactId>    <version>3.4.1-1.4.1</version></dependency><dependency>    <groupId>org.bytedeco.javacpp-presets</groupId>    <artifactId>ffmpeg-platform</artifactId>    <version>3.4.2-1.4.1</version></dependency>

2、视频转码工具类

import org.bytedeco.javacv.Frame;import org.bytedeco.javacpp.avcodec;import org.bytedeco.javacv.FrameGrabber;import org.bytedeco.javacv.FrameRecorder;import org.bytedeco.javacv.FFmpegFrameGrabber;import org.bytedeco.javacv.FFmpegFrameRecorder;/** * 视频转码工具类 */public class VideoConvertUtil {    public void convert(String inputFile, String outputFile) throws Exception {        FFmpegFrameGrabber grabber = FFmpegFrameGrabber.createDefault(inputFile);        Frame captured_frame;        FFmpegFrameRecorder recorder = null;        try {            grabber.start();            recorder = new FFmpegFrameRecorder(outputFile, grabber.getImageWidth(), grabber.getImageHeight(), grabber.getAudioChannels());            recorder.setVideoCodec(avcodec.AV_CODEC_ID_MPEG4);            recorder.setFormat(\"mp4\");            recorder.setFrameRate(grabber.getFrameRate());            recorder.setSampleRate(grabber.getSampleRate());            recorder.setVideoBitrate(grabber.getVideoBitrate());            recorder.setAspectRatio(grabber.getAspectRatio());            recorder.setAudioBitrate(grabber.getAudioBitrate());            recorder.setAudioOptions(grabber.getAudioOptions());            recorder.setAudioCodec(avcodec.AV_CODEC_ID_AAC);            recorder.start();            while (true) {                captured_frame = grabber.grabFrame();                if (captured_frame == null) {                    System.out.println(\"转码完成\");                    break;                }                recorder.record(captured_frame);            }        } catch (FrameRecorder.Exception e) {            e.printStackTrace();        } finally {            if (recorder != null) {                try {                    recorder.close();                } catch (Exception e) {                    System.out.println(\"recorder.close异常\" + e);                }            }            try {                grabber.close();            } catch (FrameGrabber.Exception e) {                System.out.println(\"frameGrabber.close异常\" + e);            }        }    }}

3、调用工具类方法

VideoConvertUtil convertUtil = new VideoConvertUtil();convertUtil.convert(url, videoSavePath);

路漫漫其修远兮,吾将上下而求索

译文:在追寻真理方面,前方的道路还很漫长,但我将百折不挠,不遗余力地去追求和探索。

(0)
小多多的头像小多多创始人

相关推荐

发表回复

登录后才能评论