FFmpeg에서 비디오의 길이를 확인하는 방법은?
_____A1: FFmpeg 패키지에 포함된 `ffprobe` 도구를 사용하여 비디오 길이를 확인할 수 있습니다. 예를 들어, 터미널에서 다음 명령어를 실행합니다.
```
ffprobe -i input.mp4 -show_entries format=duration -v quiet -of csv="p=0"
```
이 명령은 `input.mp4`의 총 재생 시간을 초 단위로 출력합니다.
---
Q2: 출력되는 길이 값의 단위는 무엇인가요?
A2: 기본적으로 출력되는 길이는 초 단위이며, 소수점까지 포함된 실수형 숫자입니다. 예를 들어, `123.456789`는 123.456789초를 의미합니다.
---
Q3: ffprobe가 설치되어 있지 않은 경우 어떻게 하나요?
A3: FFmpeg 설치 시 `ffprobe`가 일반적으로 함께 설치됩니다. 설치되어 있지 않다면, OS에 맞는 FFmpeg 설치 패키지를 통해 `ffprobe`를 별도로 설치하거나 FFmpeg 전체를 재설치하는 것이 좋습니다.
---
Q4: ffprobe 대신 FFmpeg 명령어만으로 비디오 길이를 확인할 수 있나요?
A4: FFmpeg 명령어로도 가능하지만 직접 출력에서 길이 정보를 추출하기는 번거롭습니다. 예:
```
ffmpeg -i input.mp4 2>&1 | grep Duration
```
출력에서 `Duration: 00:02:34.56`와 같이 표시되며, 텍스트 파싱을 통해 길이를 확인할 수 있습니다.
---
A5: `ffprobe`를 사용하여 다음 명령어로 상세 정보를 얻을 수 있습니다.
```
ffprobe -v error -select_streams v:0 -show_entries stream=duration,nb_frames,r_frame_rate -of default=noprint_wrappers=1 input.mp4
```
여기서 `duration`은 비디오 길이, `nb_frames`은 프레임 수, `r_frame_rate`는 프레임 속도입니다.
---
Q6: 출력되는 시간 형식을 시:분:초 형태로 받고 싶으면?
A6: `ffprobe`는 기본적으로 초 단위를 출력하지만, `ffmpeg` 명령어의 출력에서 `Duration` 정보를 사용하면 시:분:초 형식으로 볼 수 있습니다.
```
ffmpeg -i input.mp4 2>&1 | grep Duration
```
출력 예: `Duration: 00:01:23.45, start: 0.000000, bitrate: ...`
---
Q7: 특정 라이브러리나 환경에서 프로그램 내에서 비디오 길이를 얻고 싶을 때는 어떻게 해야 하나요?
A7: FFmpeg 라이브러리(C API)를 직접 사용해 `AVFormatContext`를 열고, `duration` 값을 통해 비디오 길이를 얻을 수 있습니다. 또는 `ffprobe` 명령어를 subprocess로 호출해 파싱하는 방법을 많이 사용합니다.
---
요약:
- 가장 간편하고 정확한 방법은 `ffprobe`를 사용해 비디오 길이를 초 단위로 조회하는 것
- 다른 세부 정보는 추가 옵션으로 확인 가능
- `ffmpeg` 명령어로도 가능하지만 출력 파싱이 필요
- `ffprobe` 설치 여부 확인 후 사용 권장
작성자:
정재현 [비회원]
| 작성일자: 1년 전
2024-09-10 19:04:41
조회수: 172 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 172 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.