java ffmpeg 使用示例
private void outputMp4() {
String fileName = UUID.randomUUID().toString().replaceAll("-", "") + ".mp4";
log.info("录屏文件上传到文件服务器开始,文件名:{}", fileName);
try {
BufferedImage img = ImageIO.read(videos.get(0));
int width = img.getWidth();
int height = img.getHeight();
if (height % 2 != 0) {
height++;
}
if (width % 2 != 0) {
width++;
}
FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(fileName, width, height);
log.info("有异常?1111");
recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);
log.info("22222222");
recorder.setFrameRate(15.0);
log.info("3333333");
recorder.setVideoBitrate((int) ((width * height * 25.0) * 1 * 0.07));
log.info("4444444");
recorder.setPixelFormat(avutil.AV_PIX_FMT_YUV420P);
log.info("5555555");
// 视频格式
recorder.setFormat("mp4");
// recorder.setFormat("flv");
log.info("6666666");
recorder.start();
log.info("7777777");
OpenCVFrameConverter.ToIplImage conveter = new OpenCVFrameConverter.ToIplImage();
log.info("8888888");
for (File f : videos) {
opencv_core.IplImage image = cvLoadImage(f.getPath());
recorder.record(conveter.convert(image));
opencv_core.cvReleaseImage(image);
}
recorder.stop();
recorder.release();
File file = new File(fileName);
videoName = fileStorageOperate.fileStorageUploadFile(file);
log.info("录屏文件上传到文件服务器完成,文件名:{}", fileName);
file.delete();
} catch (Exception e) {
log.error("录屏文件上传到文件服务器异常,文件名:{}", fileName);
log.info(e.getMessage());
// recorder.stop();
try {
BufferedImage img = ImageIO.read(videos.get(0));
log.info(String.format("image1 width %d height %d", img.getWidth(), img.getHeight()));
} catch (IOException e1) {
log.info(e.getMessage());
}
}
}
CentOS 中使用,需要安装 ffmpeg
现在最新的FFMPEG 他自带有音频和视频解码的库,可能是因为版权的一些问题,它没有自带编码音频和视频的库,另外,如果需要使用ffplay 进行视频播放,还需要安装SDL。下面介绍在linux 下,以H264 和 MP3 视音频编码 SDL显示为例的安装。
1、下载最新的安装代码。
LAME 音频编码:http://lame.sourceforge.net/download.php
X264 视频编码 :http://www.videolan.org/developers/x264.html
SDL 显示库: http://www.libsdl.org/download-2.0.php
FFMPEG : http://www.ffmpeg.org/download.html
2、 安装MP3编码库
./configure
make
make install
3、安装X264视频编码库
./configure --enable-shared
make
make install
如果安装过程中提示yasm版本过低,可以使用 ./configure --enable-shared --disable-asm 关闭yasm,然后再安装。也可以自己先升级yasm后再安装。
4、SDL显示安装
./configure
make
make install
5、安装FFMPEG
./configure --enable-libmp3lame --enable-libx264 --enable-gpl
make
make install
安装测试:
可以使用下面命令进行测试编解码:
ffmpeg -i 2312.mp4 -vcodec libx264 -b:v 1200k -r 25 -acodec mp3 -ab 128k -ar 44100 output.mp4
编解码结果输出

本文提供了一个使用Java和FFmpeg录制MP4视频的示例代码,并详细介绍了在CentOS环境中安装配置FFmpeg及所需编解码库的过程。
1639

被折叠的 条评论
为什么被折叠?



