관리 메뉴

피터의 개발이야기

[FFmpeg] FFprobe 사용법: 멀티미디어 파일 분석하기 본문

Linux

[FFmpeg] FFprobe 사용법: 멀티미디어 파일 분석하기

기록하는 백앤드개발자 2025. 1. 9. 07:35
반응형

ㅁ 들어가며 

  스트림을 트랜스코드하는 작업을 하면서 FFprobe를 사용하게 되었다. FFprobe는 FFmpeg 프로젝트의 일부로, 멀티미디어 파일의 상세 정보를 분석하고 출력하는 강력한 도구이다. 이 글에서는 FFprobe의 기본 사용법과 유용한 옵션들을 정리하였다.

 

ㅁ 기본 사용법

ffprobe [옵션] 입력파일

 

ㅁ 주요 옵션

스트림 정보 표시

ffprobe -show_streams 입력파일

ㅇ 이 명령어는 파일의 모든 스트림(비디오, 오디오, 자막 등)에 대한 상세 정보를 출력한다.

 

포맷 정보 표시

ffprobe -show_format 입력파일

ㅇ 파일 컨테이너 포맷에 대한 정보를 보여준다.

 

간단한 정보만 표시

ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 입력파일

ㅇ 이 명령어는 파일의 재생 시간만을 초 단위로 출력한다.

 

JSON 형식으로 출력

ffprobe -v quiet -print_format json -show_format -show_streams 입력파일

ㅇ 정보를 JSON 형식으로 출력하여 프로그래밍적으로 쉽게 파싱할 수 있게 한다.

 

ㅁ 활용 예시

비디오 해상도 확인

ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 입력파일

 

오디오 비트레이트 확인

ffprobe -v error -select_streams a:0 -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 입력파일

 

파일 생성 시간 확인

ffprobe -v quiet -print_format json -show_format 입력파일 | grep creation_time

 

 

네트워크 스트림 분석 시 시간 조절

ffprobe -analyzeduration <value> <input_file>

ㅇ 값은 마이크로초 단위로 지정한다. 예를 들어, 5초는 5000000이다.

ㅇ 기본값은 5000000 마이크로초(5초)이다.
ㅇ 값이 클수록 더 정확한 정보를 얻을 수 있지만, 분석 시간이 길어진다.
ㅇ 일반적으로 10M (10,000,000 마이크로초 = 10초) 정도로 설정하면 충분하다.
ㅇ 복잡한 파일이나 스트리밍 소스의 경우 더 큰 값이 필요할 수 있다.

 

ffprobe -analyzeduration 10000000 input.mp4

ㅇ  input.mp4 파일을 10초 동안 분석한다.

ㅇ 값을 너무 크게 설정하면 분석 시간이 길어져 전체적인 처리 속도가 느려질 수 있으므로 적절한 값을 선택해야 한다

 

ㅁ 주의사항

ㅇ FFprobe는 파일을 실제로 재생하지 않고 메타데이터만 분석하므로 빠르게 정보를 얻을 수 있다.

ㅇ 그래서 일부 파일 형식이나 손상된 파일의 경우 정확한 정보를 얻지 못할 수 있다.

ㅇ 네트워크 스트림 분석 시 -analyzeduration 옵션을 사용하여 분석 시간을 조절할 수 있다.

 

ㅁ 마무리

  FFprobe는 멀티미디어 파일 처리 워크플로우에서 매우 유용한 도구다. 파일 정보를 빠르게 확인하고 스크립트에 통합하여 자동화된 처리를 구현할 수 있다.

 

ㅁ 함께 보면 좋은 사이트

 ffprobe Documentation

 [탐험] ffmpeg-ffprobe로 AWS S3에 있는 Video 파일 메타데이터 추출: 비디오 스트림, AWS Presigned URL 방식 이해 2

[FFMPEG] ffprobe에 나오는 동영상 정보들 php 변수로 만들기

 

반응형
Comments