오픈 소스 프로젝트 JAVAE 2 로 비디오 포맷 변환
6036 단어 오픈 소스 프로젝트JAVAE2비디오 포맷 변환자바
JAVAE 프로필:
JAVE(Java 오디 오 비디오 인 코더)라 이브 러 리 는 ffmpeg 프로젝트 의 자바 포장 기 입 니 다.개발 자 는 JAVE 2 를 이용 해 오디 오 와 동 영상 파일 을 한 형식 에서 다른 형식 으로 변환 할 수 있다.예 를 들 어 AVI 파일 MG 로 변환 할 수 있 습 니 다.DivX 비디오(유 튜브)Flash FLV 를 변경 할 수 있 습 니 다.WAV 오디 오 파일 을 MP3 와 Ogg Vorbis 로 변환 할 수 있 습 니 다.오디 오 와 비디오 추적 코드 를 분리 하고 변환 할 수 있 습 니 다.비디오 를 조정 하고 크기 와 비례 를 변경 할 수 있 습 니 다.JAVE 2 는 다른 형식,용기,조작 도 많이 지원 합 니 다.
홈 페이지 주소
github 주소:https://www.mvnjar.com/ws.schild/jave-all-deps/2.4.2/detail.html
maven 주소:https://github.com/a-schild/jave2/tree/master/jave-example
빠 른 속도 로 착수 하 다.
가이드 백
<dependency>
<groupId>ws.schild</groupId>
<artifactId>jave-all-deps</artifactId>
<version>2.4.2</version>
</dependency>
도구 클래스
package com.example.javae2.util;
import cn.hutool.core.util.ObjectUtil;
import ws.schild.jave.*;
import java.io.File;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.Map;
public class VideoUtils {
private static Map<String, Integer> sizeBitRateMap;
static {
sizeBitRateMap = new HashMap<>();
sizeBitRateMap.put("1920*1080", 4992);
sizeBitRateMap.put("1280*720", 2496);
sizeBitRateMap.put("1024*576", 1856);
sizeBitRateMap.put("840*480", 1216);
sizeBitRateMap.put("768*432", 1088);
sizeBitRateMap.put("640*360", 896);
sizeBitRateMap.put("424*240", 576);
}
public static void main(String[] args) {
VideoUtils videoUtils = new VideoUtils();
videoUtils.convertVideoToMP4(new File("C:\\temp\\javae2\\0001. - [ ].flv"),"C:\\temp\\javae2\\0001. - [ ].mp4");
//videoUtils.getVideoInfoAndGenerateThumbnail(new File("C:\\\\temp\\\\javae2\\\\0001. - [ ].mp4"), "C:\\\\temp\\\\javae2\\\\0001. - [ ]..jpg");
}
/**
*
*
* @param file
* @param thumbnailPath
* @return
*/
public void getVideoInfoAndGenerateThumbnail(File file, String thumbnailPath) {
MultimediaObject multimediaObject = new MultimediaObject(file);
try {
MultimediaInfo info = multimediaObject.getInfo();
VideoInfo videoInfo = info.getVideo();
logger.info(" :{}", info.getDuration() / 1000);
if (ObjectUtil.isNotNull(videoInfo)) {
VideoSize size = videoInfo.getSize();
int width = size.getWidth();
int height = size.getHeight();
logger.info(" :{} {}", width, height);
logger.info(" :{}", videoInfo.getBitRate() / 1000);
ScreenExtractor screenExtractor = new ScreenExtractor();
File target = new File(thumbnailPath);
//
/*
*
*
*
*
* 1-31
*
**/
screenExtractor.renderOneImage(multimediaObject, size.getWidth(), size.getHeight(), 3000, target, 31);
}
} catch (EncoderException e) {
e.printStackTrace();
}
}
/**
* @param source
* @param targetPath
*/
public void convertVideoToMP4(File source, String targetPath) {
MultimediaObject multimediaObject = new MultimediaObject(source);
try {
MultimediaInfo info = multimediaObject.getInfo();
VideoInfo videoInfo = info.getVideo();
VideoSize size = videoInfo.getSize();
System.out.println(" :" + size.getWidth());
System.out.println(" :" + size.getHeight());
System.out.println(" :" + videoInfo.getBitRate() / 1000);
System.out.println(" :" + videoInfo.getDecoder());
Integer bitRate = sizeBitRateMap.get(size.getWidth() + "*" + size.getHeight());
VideoAttributes video = new VideoAttributes();
//
video.setCodec("h264");
if (ObjectUtil.isNotNull(bitRate)) {
//
video.setBitRate(bitRate * 1000);
}
File target = new File(targetPath);
AudioAttributes audio = new AudioAttributes();
//
audio.setCodec("aac");
EncodingAttributes attrs = new EncodingAttributes();
//
attrs.setFormat("mp4");
attrs.setAudioAttributes(audio);
attrs.setVideoAttributes(video);
Encoder encoder = new Encoder();
encoder.encode(multimediaObject, target, attrs);
//
MultimediaObject multimediaObjectOfter = new MultimediaObject(Paths.get(targetPath).toFile());
MultimediaInfo info1 = multimediaObjectOfter.getInfo();
VideoInfo video1 = info1.getVideo();
VideoSize size1 = video1.getSize();
System.out.println(" :" + size1.getWidth());
System.out.println(" :" + size1.getHeight());
System.out.println(" :" + video1.getBitRate() / 1000);
System.out.println(" :" + video1.getDecoder());
} catch (EncoderException e) {
e.printStackTrace();
}
}
}
효과(flv 회전 MP4)이상 은 오픈 소스 프로젝트 JAVAE 를 사용 하여 영상 형식 전환 을 하 는 상세 한 내용 입 니 다.자바 영상 형식 전환 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 시기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
오픈 소스 프로젝트 JAVAE 2 로 비디오 포맷 변환오픈 소스 프로젝트 JAVAE 로 비디오 포맷 변환 JAVAE 프로필: JAVE(Java 오디 오 비디오 인 코더)라 이브 러 리 는 ffmpeg 프로젝트 의 자바 포장 기 입 니 다.개발 자 는 JAVE 2 를 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.