자바 와 ffmpeg 를 사용 하여 오디 오 와 동 영상 을 합성 하 는 조작 방법
FFmpeg 는 디지털 오디 오,동 영상 을 기록 하고 변환 하 며 스 트림 으로 전환 할 수 있 는 오픈 소스 컴퓨터 프로그램 이다.그것 은 현재 앞장 서 는 음/비디오 인 코딩 라 이브 러 리 libavcodec 를 포함한다.FFmpeg 는 Linux 에서 개 발 된 것 이지 만 윈도 우 를 포함 한 대부분의 운영 체제 에서 컴 파일 할 수 있 습 니 다.이 프로젝트 는 Fabrice Bellard 가 시 작 했 으 며 현재 Michael Niedermayer 가 진행 하고 있다.다양한 동 영상 형식 간 의 상호 전환 을 쉽게 실현 할 수 있다.예 를 들 어 촬영 한 동 영상 avi 등 을 현재 동 영상 사이트 에서 사용 하 는 flv 형식 으로 전환 할 수 있다.
주요 기능:
1.비디오 포맷 변환 기능
ffmpeg 영상 변환 기능.영상 형식 변환,예 를 들 어 여러 가지 영상 형식 을 flv 형식 으로 변환 할 수 있 으 며,영상 신호 변환 이 아 닙 니 다. 。
ffmpeg 는 다양한 동 영상 형식 간 의 상호 전환(wma,rm,avi,mod 등)을 쉽게 실현 할 수 있다.예 를 들 어 촬영 한 동 영상 avi 등 을 현재 동 영상 사이트 에서 사용 하 는 flv 형식 으로 바 꿀 수 있다.
2.영상 캡 처 기능
선택 한 동 영상 에 대해 서 는 지정 한 시간의 미리 보기 그림 을 캡 처 합 니 다.비디오 캡 처,정적 그림 과 동적 그림 을 가 져 오고 gif 파일 을 잡 는 것 을 권장 하지 않 습 니 다.캡 처 한 gif 파일 이 커서 재생 이 원활 하지 않 습 니 다.
3.동 영상 에 워 터 마크 기능 추가
ffmpeg 동 영상 으로 워 터 마크(로고)를 추가 합 니 다.
자,오늘 본문 을 시작 하 겠 습 니 다.
제3자 도 구 를 빌려 ffmpeg 합성 영상
수요:작은 터미널 에서 동 영상 을 다운로드 하 였 으 나 컴퓨터 에 넣 어 보 았 습 니 다.제 가 닦 았 습 니 다.음성 파일 과 동 영상 파일 은 분리 되 었 습 니 다.
다운 받 은 영상 과 오디 오 가 들 어 있 습 니 다.
나 는 코드 를 재 귀 했 습 니 다.정확 한 ffmpeg 명령 과 자바 로 ffmpeg.exe 프로그램 을 호출 하면 합성 할 수 있 습 니 다.
package com.lovely.test;
import java.io.BufferedReader;
import java.io.File;
//import java.io.FileInputStream;
//import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
/**
*
*
*
*/
public class TestFfmpeg {
// FFmpeg
private static final String FFMPEG_PATH = "D:\\softWare\\tools\\joyTool\\ffmpeg\\bin\\ffmpeg.exe";
public static void main(String[] args) {
String path = "E:\\StudyVedio\\ComputerScience\\US";
try {
getAll(path);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*
* @param videoInputPath
*
*
* @param audioInputPath
*
*
* @param videoOutPath
*
*/
public static void convetor(String videoInputPath, String audioInputPath, String videoOutPath)
throws Exception {
Process process = null;
InputStream errorStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader br = null;
try {
// ffmpeg
String command = FFMPEG_PATH + " -i " + videoInputPath + " -i " + audioInputPath
+ " -c:v copy -c:a aac -strict experimental " +
" -map 0:v:0 -map 1:a:0 "
+ " -y " + videoOutPath;
process = Runtime.getRuntime().exec(command);
errorStream = process.getErrorStream();
inputStreamReader = new InputStreamReader(errorStream);
br = new BufferedReader(inputStreamReader);
//
String str = "";
while ((str = br.readLine()) != null) {
System.out.println(str);
}
process.waitFor();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
br.close();
}
if (inputStreamReader != null) {
inputStreamReader.close();
}
if (errorStream != null) {
errorStream.close();
}
}
}
//
public static void getAll(String path) throws Exception {
String videoInputPath = "";
String audioInputPath = "";
String videoOutPath = "";
File file = new File(path);
if (file.isDirectory()) {
File[] files = file.listFiles();
for (File f : files) {
getAll(f.getPath());
if (f.isFile()) {
if (f.getName().endsWith(".m4s")) {
if (f.getName().endsWith("audio.m4s"))
audioInputPath = file.getPath() + "\\audio.m4s";
if (f.getName().endsWith("video.m4s"))
videoInputPath = file.getPath() + "\\video.m4s";
videoOutPath = file.getPath() + "\\all.mp4";
if (!videoInputPath.equals(""))
convetor(videoInputPath, audioInputPath, videoOutPath);
}
}
}
}
}
}
나 는 마지막 으로 몇 분 동안 30 개의 완전한 동 영상 을 합성 했다.귀환 의 강 함 을 체득 하 다.총결산
자바 와 ffmpeg 를 사용 하여 오디 오 와 동 영상 을 합성 하 는 방법 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.자바 ffmpeg 오디 오 합성 동 영상 콘 텐 츠 는 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.