관리 메뉴

피터의 개발이야기

Transcoding이란? ffmpeg 기본 사용법 본문

개발이야기

Transcoding이란? ffmpeg 기본 사용법

기록하는 백앤드개발자 2024. 11. 2. 10:10
반응형

ㅁ Transcoding이란?

transcoding은 하나의 인코딩을 다른 인코딩으로 직접 디지털-디지털로 변환하는 과정이다. 일반적으로 대상 장치가 지원하는 포맷으로 변환하기 위해 사용할 수 한다.(wiki사전)

동영상 트랜스코딩 작업이 필요한 경우는 원본 동영상의 코덱을 변경하거나, 영상 혹은 오디오 품질을 변경할 때, 영상 또는 음성에 효과를 추가하는 등의 경우가 있다.

ㅁ ffmpeg 기능

ㅇ 다양한 형식의 오디오/비디오 파일 변환
ㅇ 오디오/비디오 인코딩 및 디코딩
ㅇ 스트리밍
ㅇ 필터 적용 (크기 조정, 자르기 등)

 

ㅁ 설치

# mac
brew install ffmpeg

# Linux
sudo apt-get install ffmpeg

 

ㅁ 기본 사용법

# 포멧변경
ffmpeg -i input.mp4 output.avi

#오디오 추출
ffmpeg -i input.mp4 -vn output.mp3

#해상도 변경
ffmpeg -i input.mp4 -s 1280x720 output.mp4​

-i: 입력 파일 지정
마지막 인자: 출력 파일명
-vn: 비디오 제거
-an: 오디오 제거
-ar: 오디오 샘플링 레이트 설정
-ac: 오디오 채널 수 설정
-b:a: 오디오 비트레이트 설정
-r: 프레임 레이트 설정
-s: 해상도 설정

 

ㅁ Spring 기본 사용법

Spring에서 FFmpeg를 사용하여 동영상 썸네일을 생성 방법

 

ㅇ Java Spring 설정

net.bramp.ffmpeg:ffmpeg:0.6.2

라이브러리를 Gradle에 추가하여 FFmpeg와 FFprobe를 사용할 수 있도록 설정

 

ㅇ 썸네일 생성 코드 작성

   FFmpeg ffmpeg = new FFmpeg("/path/to/ffmpeg");
   FFprobe ffprobe = new FFprobe("/path/to/ffprobe");

   FFmpegBuilder builder = new FFmpegBuilder()
           .setInput("input.mp4")
           .addOutput("thumbnail.jpg")
           .setFrames(1)
           .setVideoFilter("select='gte(n\\,10)'") // 10초 지점에서 캡처
           .done();

   FFmpegExecutor executor = new FFmpegExecutor(ffmpeg, ffprobe);
   executor.createJob(builder).run();

이 코드는 동영상의 10초 지점에서 썸네일을 캡처하여 저장한다.

 

ㅁ 함께 보면 좋은 사이트

[Spring boot] FFmpeg로 영상 배속 설정하기

자바 스프링에서 FFmpeg 사용하기

 

반응형
Comments