分享一下字节面试被问的一个问题,
Java
使用FFmpeg
处理视频文件的相关内容
能进大厂真的香,你先搞定这些问题。
今天给大家带来用Java + FFmpeg
实现对视频文件的信息提取、码率压缩、分辨率转换等功能;在网上转了一大圈用Java
使用FFmpeg
处理音视频的文章,没有我特别满意的回答,于是自己上手来一篇。希望你们看到这些后能完美避坑!
1. 什么是FFmpeg
Fmpeg
是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL
或GPL
许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec
里很多code
都是从头开发的。
提醒一下,更多详情可以去百度了解一下
2. 开发前准备
在使用Java
调用FFmpeg
处理音视频之前,需要先安装FFmpeg
,安装方法分为两种:
- 引入封装了
FFmpeg
的开源框架 - 在系统中手动安装
FFmpeg
2.1 引入封装了FFmpeg的开源框架
JAVE.jar是一个封装了FFmpeg
的Java
框架,在项目中能直接调用它的API来处理音视频文件;
优点:使用方便,直接在项目中引入JAVE.jar
即可处理媒体文件,且开发完成后可以随工程一起打包发布,不需要在目标运行环境内手动安装FFmpeg
相关的类库
缺点:JAVE.jar
最后一次更新是2009年,其封装的FFmpeg
版本是09年或更早前的版本,比较老旧,无法使用一些新特性 (当然也可以看看有没有其他比较新的封装了FFmpeg
在这里插入代码片的框架) Maven
坐标如下:
<dependency