官网下载jar包:http://www.sauronsoftware.it/projects/jave/manual.php
我下载版本是:jave-1.0.2.zip
转flv:
public static void main(String[] args) {
File source = new File("E:\\test\\source.mp4");
File target = new File("E:\\test\\target.flv");// 转flv
AudioAttributes audio = new AudioAttributes();
audio.setCodec("libmp3lame");
audio.setBitRate(new Integer(64000));
audio.setChannels(new Integer(1));
audio.setSamplingRate(new Integer(22050));
VideoAttributes video = new VideoAttributes();
video.setCodec("flv");// 转flv
video.setBitRate(new Integer(180000));// 180kb/s比特率
video.setFrameRate(new Integer(1));// 1f/s帧频,1是目前测试比较清楚的,越大越模糊
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("flv");// 转flv
attrs.setAudioAttributes(audio);
attrs.setVideoAttributes(video);
Encoder encoder = new Encoder();
long beginTime = System.currentTimeMillis();
try {
// 获取时长
MultimediaInfo m = encoder.getInfo(source);
long sTime = m.getDuration();
long minute = sTime / 60000;
long second = (sTime % 60000) / 1000;
System.out.println("视频时长:" + minute + ":" + (second < 10 ? "0" + second : second));
System.out.println("获取时长花费时间是:" + (System.currentTimeMillis() - beginTime));
beginTime = System.currentTimeMillis();
encoder.encode(source, target, attrs);
System.out.println("视频转码花费时间是:" + (System.currentTimeMillis() - beginTime));
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InputFormatException e) {
e.printStackTrace();
} catch (EncoderException e) {
e.printStackTrace();
}
}
转MP4:
public static void main(String[] args) {
File source = new File("E:\\test\\source.avi");
File target = new File("E:\\test\\target.mp4");// 转MP4
AudioAttributes audio = new AudioAttributes();
audio.setCodec("libmp3lame");
audio.setBitRate(new Integer(64000));
audio.setChannels(new Integer(1));
audio.setSamplingRate(new Integer(22050));
VideoAttributes video = new VideoAttributes();
video.setCodec("libxvid");// 转MP4
video.setBitRate(new Integer(180000));// 180kb/s比特率
video.setFrameRate(new Integer(1));// 1f/s帧频,1是目前测试比较清楚的,越大越模糊
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("mp4");// 转MP4
attrs.setAudioAttributes(audio);
attrs.setVideoAttributes(video);
Encoder encoder = new Encoder();
long beginTime = System.currentTimeMillis();
try {
// 获取时长
MultimediaInfo m = encoder.getInfo(source);
System.out.println(m.getDuration());
System.out.println("获取时长花费时间是:" + (System.currentTimeMillis() - beginTime));
beginTime = System.currentTimeMillis();
encoder.encode(source, target, attrs);
System.out.println("视频转码花费时间是:" + (System.currentTimeMillis() - beginTime));
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InputFormatException e) {
e.printStackTrace();
} catch (EncoderException e) {
e.printStackTrace();
}
}
获取某一帧作为png图片:
public static void main(String[] args) {
File source = new File("E:\\test\\flex.avi");
File target = new File("E:\\test\\target.png");//转图片
VideoAttributes video = new VideoAttributes();
video.setCodec("png");//转图片
video.setSize(new VideoSize(600, 500));
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("image2");//转图片
attrs.setOffset(3f);//设置偏移位置,即开始转码位置(3秒)
attrs.setDuration(0.01f);//设置转码持续时间(1秒)
attrs.setVideoAttributes(video);
Encoder encoder = new Encoder();
long beginTime = System.currentTimeMillis();
try {
//获取时长
MultimediaInfo m = encoder.getInfo(source);
System.out.println(m.getDuration());
System.out.println("获取时长花费时间是:" + (System.currentTimeMillis() - beginTime));
beginTime = System.currentTimeMillis();
encoder.encode(source, target, attrs);
System.out.println("视频转码花费时间是:" + (System.currentTimeMillis() - beginTime));
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InputFormatException e) {
e.printStackTrace();
} catch (EncoderException e) {
e.printStackTrace();
}
}
从官网下载的帮助文档中可以看到有很多编码格式,以此类推,相信可以转成你想要的格式
分享到:
相关推荐
用JAVA获取视频文件中的帧图片并等比缩放,java 获取视频中图片 缩放比例 javacv
java实现可以获取视频中某一帧的图片,并将图片保存至本地,自定义设置截取图片的宽度和高度,获取视频的总帧数,视频总时长。
利用java实现了Rtsp网络数据的拆包组帧转换为H264数据帧。
我们要将视频转化为字符画,那么就需要获取画面的每一帧,也就是每一张图片,然后将图片进行转化,变成字符串,然后进行打印。 1.获取视频 在 opencv 中提供了一个 函数 去获取视频 VideoCapture capture = new ...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
支持多种视频格式文件及多图片格式文件转换 高质量生成Gif 支持多种视频格转换图像高质量,画质清晰,高清无损 快速预览生成 编辑过程中可随时预览效果快速生成gif文件 功能介绍 一键录屏,快速成像 ...
matlab转换java代码车辆检测 用于视频帧中车辆检测的OpenCV Python程序 人脸检测基础 所给出程序的目的是检测视频帧中的感兴趣对象(汽车)并保持跟踪同一对象。 这是一个如何在Python中检测车辆的示例。 为什么要...
A)使用Open-CV获取有关视频中有多少帧以及哪些帧属于哪个场景的信息。 可以将这些信息写入一些文本文件中,并使用此文件将视频的所有帧转换为具有元信息(如图像索引,场景索引等)的大尺寸序列文件。此结果序列...
11.1.11 使用DownloadManager获取文件 11.2 使用Android服务 11.2.1 Android中的服务 11.2.2 本地服务 11.2.3 AIDL服务 11.2.4 在AIDL中定义服务接口 11.2.5 实现AIDL接口 11.2.6 从客户端...
11.1.11 使用DownloadManager获取文件 11.2 使用Android服务 11.2.1 Android中的服务 11.2.2 本地服务 11.2.3 AIDL服务 11.2.4 在AIDL中定义服务接口 11.2.5 实现AIDL接口 11.2.6 从客户端...
使用base64编码将图像文件转换为字符串。 然后,许多这样的框架之间用“ ”连接起来,并立即发送到我们的php服务器脚本。 php脚本在“ ”之间分割字符串以获取不同的字符串。 然后,将这些字符串解码为图像,并将其...
9.5.1 使用关键帧创建动画 177 9.5.2 通过拖动路径创建动画 179 9.5.3 时间轴的其他操作 180 9.6 Dreamweaver中的行为 181 9.6.1 行为概述 182 9.6.2 添加行为 183 9.6.3 更改行为 183 9.6.4 打开浏览器窗口...