JAVA에서 FFmpeg을 사용하여 동영상 재생시간을 추출하려고 한다.
자바에서 영상을 읽어서 재생시간을 얻는 방법이다.
FFmpeg 를 사용하면 동영상 컨트롤이 가능 하지만,
단점은 내 로컬에 다운을 받아야한다.
실질적 프로젝트 경우 서버에 따로 다운받아야하는 번거로움이 있다.
xuggler 방법을 을 사용해서 영상 길이등, 영상의 정보를 추출하는 방법도있다.
블로그 에 포스팅 했다. 이방법을 사용하려면 여기로
(xuggler 또한.. 단점이 있다.)
먼저 https://ffmpeg.zeranoe.com/builds/에서 다운로드 한다.
다운받은 zip파일을 C드라이브에 압축 해제한다.

환경 변수 설정을 한다.
필자 경로는 C:\ffmpeg-20191109-0f89a22-win64-static\bin 이다.

커멘트 창을 실행해 테스트 해보자.
정상적으로 설치되면 아래 그림과 같이 나온다.
> ffmpeg

다음 코드로 테스트 해보자.
pom.xml에 추가해주자
<dependency> <groupId>net.bramp.ffmpeg</groupId> <artifactId>ffmpeg</artifactId> <version>0.6.2</version> </dependency>
Main 함수를 실행하니 재생 시간이 정상적으로 추출되었다.
import java.io.IOException; import net.bramp.ffmpeg.FFprobe; import net.bramp.ffmpeg.probe.FFmpegFormat; import net.bramp.ffmpeg.probe.FFmpegProbeResult; public class VideoTimeCut { public static String media_player_time() { System.out.println("@@ media_player_time start @@"); String returnData = "0"; try { FFprobe ffprobe = new FFprobe("C:/ffmpeg-20191109-0f89a22-win64-static/bin/ffprobe.exe"); // window에 설치된 ffprobe.exe 경로 FFmpegProbeResult probeResult = ffprobe.probe("C:/Users/Min/Desktop/test1/test.mp4"); // 동영상 경로 FFmpegFormat format = probeResult.getFormat(); double second = format.duration; // 초단위 returnData = second + ""; System.out.println("second==" + second); } catch (IOException e) { e.printStackTrace(); } finally { System.out.println("@@ media_player_time end @@"); } return returnData; } public static void main(String[] args) throws IOException { media_player_time(); } }

728x90
반응형
'Back-end > JAVA & Spring' 카테고리의 다른 글
[JAVA] xuggler 를 사용한 동영상 길이 추출 (0) | 2021.11.24 |
---|---|
[JAVA] FFmpeg로 Thumbnail 추출하기 (0) | 2021.11.24 |
[Java] 파일에서 확장자(File extension) 얻는 방법 (0) | 2021.11.23 |
[Java] 영상에서 썸네일(Thumbnail) 추출하기 (0) | 2021.11.23 |
[JAVA] image resize & crop (Thumbnail) (0) | 2021.11.23 |
댓글