使用 FFmpeg 的命令把一种格式的视频转换为另一种格式的视频,例如把 test.avi 转为 test.mp4 的命令为 ffmpeg -i test.avi -vcodec h264 test.mp4
,Java 中可以用 ProcessBuilder 调用这个命令执行转换:
1 | public static void main(String[] args) throws IOException { |
直接调用命令转换虽然很方便,但是如果视频比较大,转换需要的时间比较长时,希望能够及时的得到转换进度并反馈给客户端,就要解析命令的输出获取转换进度,这时就比较麻烦了。接下来介绍 ffmpeg-cli-wrapper 的使用,它对 FFmpeg 的命令进行了封装,简化视频转换的开发难度。
ffmpeg-cli-wrapper: A fluent interface to running FFmpeg from Java.
使用案例介绍 ffmpeg-cli-wrapper 的三种操作:
- 视频转换
- 音频转换
- 提取视频中指定时间处的画面
一、安装 FFmpeg
首先当然是先安装好,FFmpeg 支持 Linux,Windows,Mac,安装步骤就不在此一一列举了,需要注意的是安装好后把 FFmpeg 的 bin 目录设置到系统环境变量中,方便调用。
二、Gradle 依赖
1 | compile "net.bramp.ffmpeg:ffmpeg:0.6.2" |
三、视频转换
1 | /** |
四、音频转换
1 | /** |
五、提取视频中指定时间处的画面
1 | /** |
六、参考资料
- ffmpeg-cli-wrapper Random Examples
- FFmpeg 的使用可参考文档 https://ffmpeg.org/ffmpeg.html