Java任意视频转MP4

Java任意视频转MP4

在做视频上传功能时候,用户可能上传不同类型的视频文件,导致需要特定播放器才能播放,为了解决视频格式统一问题需要把视频转码一下 ,转换成统一的MP4格式。我们直接使用第三方工具 FFmpeg

FFmpeg介绍

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案

总之使用就可完美 实现 视频转换。

环境准备

名称 内容说明

官网下载FFmpeg 官网:http://ffmpeg.org/download.html

项目导入依赖 可以去maven仓库搜索 https://mvnrepository.com/search?q=net.bramp.ffmpeg 各版本

这个0.7.0是最新版

<dependency>

<groupId>net.bramp.ffmpeg</groupId>

<artifactId>ffmpeg</artifactId>

<version>0.7.0</version>

</dependency>

下载FFmpeg

网站地址:http://ffmpeg.org/download.html

windows 版解压使用

将下载好的文件解压到一个常用的目录下

测试案例代码

import net.bramp.ffmpeg.FFmpeg;

import net.bramp.ffmpeg.FFmpegExecutor;

import net.bramp.ffmpeg.FFprobe;

import net.bramp.ffmpeg.builder.FFmpegBuilder;

/**

* @Date: 2023/9/22 18:58

* @Description: ffmpeg测试案例

*/

public class TestFFmpeg {

public static void main(String[] args) throws Exception {

System.err.println("---------开始执行----------------");

//将下载后并解压的 "ffmpeg.exe,ffprobe.exe" 执行文件路径填写进去

FFmpeg ffmpeg = new FFmpeg("D:/install/ffmpeg-master-latest-win64-gpl/bin/ffmpeg.exe");

FFprobe ffprobe = new FFprobe("D:/install/ffmpeg-master-latest-win64-gpl/bin/ffprobe.exe");

FFmpegBuilder builder = new FFmpegBuilder()

// 源视频文件

.setInput("D:/ffmpeg/video222.mov")

// 目标视频文件

.addOutput("D:/ffmpeg/video222.mp4")

.done();

FFmpegExecutor executor = new FFmpegExecutor(ffmpeg, ffprobe);

executor.createJob(builder).run();

System.err.println("---------执行完毕----------------");

}

}

Linux 版解压使用

注:方式同上,唯一不同的就是Linux中的路径不同和没有".exe"

相关推荐
庸俗今天不摸鱼10 分钟前
Canvas进阶-4、边界检测(流光,鼠标拖尾)
开发语言·前端·javascript·计算机外设
菠菠萝宝11 分钟前
【Java八股文】10-数据结构与算法面试篇
java·开发语言·面试·红黑树·跳表·排序·lru
奔跑吧邓邓子14 分钟前
【Python爬虫(36)】深挖多进程爬虫性能优化:从通信到负载均衡
开发语言·爬虫·python·性能优化·负载均衡·多进程
不会Hello World的小苗18 分钟前
Java——链表(LinkedList)
java·开发语言·链表
lsx20240630 分钟前
Perl 面向对象编程指南
开发语言
Macdo_cn36 分钟前
Infuse Pro for Mac v8.1 全能视频播放器 支持M、Intel芯片
macos·音视频
Allen Bright1 小时前
【Java基础-46.3】Java泛型通配符详解:解锁类型安全的灵活编程
java·开发语言
柃歌1 小时前
【UCB CS 61B SP24】Lecture 7 - Lists 4: Arrays and Lists学习笔记
java·数据结构·笔记·学习·算法
柃歌1 小时前
【UCB CS 61B SP24】Lecture 4 - Lists 2: SLLists学习笔记
java·数据结构·笔记·学习·算法
画个逗号给明天"1 小时前
C++STL容器之list
开发语言·c++