如何在 java 中将视频字节调整为更小的分辨率?
How can i resize the video bytes to smaller resolution in java?
我目前正在使用 REST API。我一直在尝试通过 java 将接收到的视频字节调整为更小的分辨率。我可以在 java 中使用 BufferedImage 和 ImageIO 调整图像大小,但无法对视频字节执行相同的操作。
这是调整图像大小的代码。请建议我们如何调整视频字节大小
private ByteArrayOutputStream resizeImage(byte[] x) throws IOException {
BufferedImage originalImage = ImageIO.read(new ByteArrayInputStream(x));
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
if (x.length / 1024 > 500) {
int type = originalImage.getType() == 0 ? BufferedImage.TYPE_INT_ARGB : originalImage.getType();
BufferedImage resizedImage = new BufferedImage(1280, 720, type);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, 1280, 720, null);
g.dispose();
ImageIO.write(resizedImage, "jpeg", outputStream);
} else {
ImageIO.write(originalImage, "jpeg", outputStream);
}
return outputStream;
}
我也需要一些类似的视频逻辑,以便我可以将压缩或更小分辨率的视频字节流作为响应发回
我以某种方式找到了解决问题的方法。我使用了一些工具并构建了一个自定义项目来处理此类问题。
此神器可用于调整图像和视频的大小以降低分辨率且质量非常好
URL 用于项目依赖(可用于 Maven、Gradle、Scala 等):Click Here
或者您可以将以下依赖项添加到 pom.xml
<dependency>
<groupId>io.github.techgnious</groupId>
<artifactId>IVCompressor</artifactId>
<version>1.0.1</version>
</dependency>
用法::
IVCompressor compress=new IVCompressor();
byte[] Imageoutput=compress.resizeImage(data, fileFormat, resolution); //for image compression
byte[] VideoOutput=compress.reduceVideoSize(videoData, fileFormat, resolution);//for video compression
它可以在默认设置下将 25MB 的视频转换为 300-400kb。它有许多其他带有自定义设置的方法。请查看此页面 IVCompressor 了解更多信息。谢谢
我目前正在使用 REST API。我一直在尝试通过 java 将接收到的视频字节调整为更小的分辨率。我可以在 java 中使用 BufferedImage 和 ImageIO 调整图像大小,但无法对视频字节执行相同的操作。
这是调整图像大小的代码。请建议我们如何调整视频字节大小
private ByteArrayOutputStream resizeImage(byte[] x) throws IOException {
BufferedImage originalImage = ImageIO.read(new ByteArrayInputStream(x));
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
if (x.length / 1024 > 500) {
int type = originalImage.getType() == 0 ? BufferedImage.TYPE_INT_ARGB : originalImage.getType();
BufferedImage resizedImage = new BufferedImage(1280, 720, type);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, 1280, 720, null);
g.dispose();
ImageIO.write(resizedImage, "jpeg", outputStream);
} else {
ImageIO.write(originalImage, "jpeg", outputStream);
}
return outputStream;
}
我也需要一些类似的视频逻辑,以便我可以将压缩或更小分辨率的视频字节流作为响应发回
我以某种方式找到了解决问题的方法。我使用了一些工具并构建了一个自定义项目来处理此类问题。
此神器可用于调整图像和视频的大小以降低分辨率且质量非常好
URL 用于项目依赖(可用于 Maven、Gradle、Scala 等):Click Here
或者您可以将以下依赖项添加到 pom.xml
<dependency>
<groupId>io.github.techgnious</groupId>
<artifactId>IVCompressor</artifactId>
<version>1.0.1</version>
</dependency>
用法::
IVCompressor compress=new IVCompressor();
byte[] Imageoutput=compress.resizeImage(data, fileFormat, resolution); //for image compression
byte[] VideoOutput=compress.reduceVideoSize(videoData, fileFormat, resolution);//for video compression
它可以在默认设置下将 25MB 的视频转换为 300-400kb。它有许多其他带有自定义设置的方法。请查看此页面 IVCompressor 了解更多信息。谢谢