현재 REST API를 사용하고 있습니다. 나는 자바를 통해 더 작은 해상도로 나에게받은 비디오 바이트의 크기를 조정하려고했습니다. 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 등에서 사용 가능) : 여기를 클릭하세요.
또는 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 페이지를 확인하십시오 . 감사합니다
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다