자바,ffmpeg 로 동 영상 처리 하 는 방법

4910 단어 자바ffmpeg비디오
FFmpeg 는 디지털 오디 오,동 영상 을 기록 하고 변환 하 며 스 트림 으로 전환 할 수 있 는 오픈 소스 컴퓨터 프로그램 이다.LGPL 또는 GPL 허가증 을 채택 하 다.그것 은 녹음,전환,흐 르 는 음성 영상의 완전한 해결 방안 을 제공 했다.

홈 페이지 링크   
1.windows 버 전 설치 패키지 다운로드 및 압축 풀기
2.windows 로 컬 사용 명령 행 테스트
1.형식 변경 테스트(코드 변환)
  • 수정 해 야 할 동 영상 A.avi 를 bin 디 렉 터 리 에 미리 놓 습 니 다
  • bin 디 렉 터 리 에서 cmd 가 명령 행 에 들 어 갑 니 다
  • 명령 을 입력 하여 B.mp4 로 전환 합 니 다
  • ffmpeg.exe -i A.avi -y B.mp42.비디오 오디 오 결합 테스트
  • 수정 해 야 할 동 영상 A.avi 와 bgm.mp3 를 bin 디 렉 터 리 에 미리 놓 습 니 다
  • bin 디 렉 터 리 에서 cmd 가 명령 행 에 들 어 갑 니 다
  • 명령 을 입력 하여 8 초 로 합 친 new.avi
  •  ffmpeg.exe -i A.avi -i bgm.mp3 -t 8 -y new.avi3.자바 에서 도구 테스트 클래스 만 들 기
    
    package com.xc.utils;
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.List;
    public class FFMpegTest {
    	private String ffmpegEXE;
    	
    	public FFMpegTest(String ffmpegEXE) {
    		super();
    		this.ffmpegEXE = ffmpegEXE;
    	}
    	
    	public void convertor(String videoInputPath, String videoOutputPath) throws Exception {
    //		ffmpeg -i input.mp4 -y output.avi
    		List<String> command = new ArrayList<>();
    		command.add(ffmpegEXE);
    		
    		command.add("-i");
    		command.add(videoInputPath);
    		command.add("-y");
    		command.add(videoOutputPath);
    		
    		for (String c : command) {
    			System.out.print(c + " ");
    		}
    		
    		ProcessBuilder builder = new ProcessBuilder(command);
    		Process process = builder.start();
    		
    		InputStream errorStream = process.getErrorStream();
    		InputStreamReader inputStreamReader = new InputStreamReader(errorStream);
    		BufferedReader br = new BufferedReader(inputStreamReader);
    		
    		String line = "";
    		while ( (line = br.readLine()) != null ) {
    		}
    		
    		if (br != null) {
    			br.close();
    		}
    		if (inputStreamReader != null) {
    			inputStreamReader.close();
    		}
    		if (errorStream != null) {
    			errorStream.close();
    		}
    		
    	}
    	public static void main(String[] args) {
    		FFMpegTest ffmpeg = new FFMpegTest("C:\\ffmpeg\\bin\\ffmpeg.exe");
    		try {
    			ffmpeg.convertor("C:\\a.mp4", "C:\\b.avi");
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    }
    
    package com.xc.utils;
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.List;
    public class MergeVideoMp3 {
    	private String ffmpegEXE;
    	
    	public MergeVideoMp3(String ffmpegEXE) {
    		super();
    		this.ffmpegEXE = ffmpegEXE;
    	}
    	
    	public void convertor(String videoInputPath, String mp3InputPath,
    			double seconds, String videoOutputPath) throws Exception {
    //		ffmpeg.exe -i A.avi -i bgm.mp3 -t 7 -y new.avi
    		List<String> command = new ArrayList<>();
    		command.add(ffmpegEXE);
    		
    		command.add("-i");
    		command.add(videoInputPath);
    		
    		command.add("-i");
    		command.add(mp3InputPath);
    		
    		command.add("-t");
    		command.add(String.valueOf(seconds));
    		
    		command.add("-y");
    		command.add(videoOutputPath);
    		
    //		for (String c : command) {
    //			System.out.print(c + " ");
    //		}
    		
    		ProcessBuilder builder = new ProcessBuilder(command);
    		Process process = builder.start();
    		
    		InputStream errorStream = process.getErrorStream();
    		InputStreamReader inputStreamReader = new InputStreamReader(errorStream);
    		BufferedReader br = new BufferedReader(inputStreamReader);
    		
    		String line = "";
    		while ( (line = br.readLine()) != null ) {
    		}
    		
    		if (br != null) {
    			br.close();
    		}
    		if (inputStreamReader != null) {
    			inputStreamReader.close();
    		}
    		if (errorStream != null) {
    			errorStream.close();
    		}
    		
    	}
    	public static void main(String[] args) {
    		MergeVideoMp3 ffmpeg = new MergeVideoMp3("C:\\ffmpeg\\bin\\ffmpeg.exe");
    		try {
    			ffmpeg.convertor("C:\\a.avi", "C:\\bgm.mp3", 7.1, "C:\\javaNew.mp4");
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    }
    
     총결산
    자바 가 ffmpeg 를 사용 하여 동 영상 을 처리 하 는 방법 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 ffmpeg 처리 동 영상 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기