오픈 소스 프로젝트 JAVAE 2 로 비디오 포맷 변환

오픈 소스 프로젝트 JAVAE 로 비디오 포맷 변환
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 를 사용 하여 영상 형식 전환 을 하 는 상세 한 내용 입 니 다.자바 영상 형식 전환 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 시기 바 랍 니 다!

좋은 웹페이지 즐겨찾기