본문 바로가기
카테고리 없음

FFmpeg

by Mecodata 2025. 12. 3.

RTSP(Real Time Streaming Protocol)

- 실시간 멀티미디어 데이터 스트리밍을 제어하기 위한 네트워크 프로토콜

- 영상과 음성 스트림의 재생, 일시정지 등을 제어할 수 있음

- 기본적으로 TCP 554번 포트를 사용

- 상태 기반 프로토콜로 client와 server 간의 세션을 유지함

기본 URL 구조

rtsp://[username:password@]hostname[:port]/path

 

FFmpeg

- 오디오·비디오를 인코딩, 디코딩, 변환, 스트리밍, 분석할 수 있는 멀티미디어 프레임워크

- 비디오/오디오 파일을 변환(인코딩/디코딩)하거나 녹화하거나 스트리밍할 때 사용

- 주요 실행파일로 ffmpeg, ffplay, ffprobe가 있음

ffmpeg

- FFmpeg의 멀티미디어 변환기 (FFmpeg에서 파일 인코딩/디코딩에 특화되어 있는 도구)

- 설정값

파라미터 위치 의미 예제
y 전역 출력 파일 덮어쓰기 (overwrite) -i input.mp4
re 입력 앞 실시간 속도로 읽기 -re -i input.mp4
-i - 입력 파일 지정 (input) -af "volume=2.0"
-c:v 출력 코덱 지정 (codec) -c:v libx264
-af 출력 오디오 필터 사용 (audio filter) ffmpeg -y ...
ffmpeg [전역옵션] [입력옵션] -i input.mp4 [출력옵션] output.mp4

 

- 결과값

항목 의미  단위
frame 처리된 프레임 수
fps 초당 처리 프레임 수 (인코딩 속도) frames/sec
q 품질 지표 (낮을수록 고품질) -
size 현재까지 생성된 파일 크기 kB, MB
time 처리된 미디어 시간 HH:MM:SS.ms
bitrate 평균 비트레이트 kbits/s
speed 실시간 대비 처리 속도 (1.0x = 실시간) 배속 (x)
frame= 7500 fps= 60 q=23.0 size= 102400kB time=00:05:00.00 bitrate=2800kbits/s speed=2.4x
상태 fps speed q 판단
정상 30~60+ 1.0x 이상 18~28 안정적
느림 10 이하 0.5x 이하 - CPU 부족
고품질 - - 18 이하 우수한 화질
저품질 - - 35 이상 압축률 높음

ffprobe

- FFmpeg의 파일 정보 분석 도구 (FFmpeg에서 파일 분석에 특화되어 있는 도구)

 

ffplay

- FFmpeg의 실시간 멀티미디어 플레이어 (FFmpeg에서 영상 실행에 특화되어 있는 도구)

- 빠른 속도, 다양한 코덱 지원

- 설정값

파라미터 설정값 의미
use_wallclock_as_timestamps 1 실제 시스템 시간을 타임스탬프로 사용
i rtsp url RTSP 통신 URL 지정
fflags nobuffer 버퍼링 비활성화
probesize 숫자 스트림 분석에 사용할 데이터 크기
analyzeduration 숫자 스트림 분석 시간
rtbufsize 숫자 실시간 버퍼 크기
sync audio, video 동기화 기준 설정
framedrop 없음 프레임 드랍 허용
flags low_delay 저지연 모드
window_tilte 문자 재생창 제목 설정
top 숫자 재생창 좌표 설정(모니터 기준)
left 숫자

 

ffplay -i rtsp://[아이디]:[패스워드]@[IP]:554
-rtsp_transport tcp -fflags nobuffer -flags low_delay 
-use_wallclock_as_timestamps 1 -probesize 32 -analyzeduration 1 -window_title Camera1 
-noborder -x 640 -y 480 -left 0 -top 0

 

- 결과값

항목 의미 단위
A-V Audio-Video 동기화 차이
fd dropped frames / total frames 개수
aq Audio Queue - 오디오 버퍼 크기 KB
vq Video Queue - 비디오 버퍼 크기 KB
sq Subtitle Queue - 자막 버퍼 크기 Bytes

 

1765156965.51 A-V: -0.001 fd=  67 aq=    0KB vq=   40KB sq=    0B

 

  • 정상: vq, aq가 적절한 값 유지 (수십~수백 KB)
  • 버퍼링 부족: vq나 aq가 0에 가까움
  • 지연 발생: vq나 aq가 계속 증가
  • 동기화 문제: A-V 값이 크면 오디오/비디오 싱크 안 맞음

 

댓글