개요

영상 미러링 테스트 중 Delay Variation(Jitter) 문제가 발생하여 이를 측정하고 개선하기 위한 테스트 방법을 구현한 사례입니다.
기존에는 시계 영상을 사용해 비교했지만, 화면 변화가 큰 일반 영상에서는 분석이 어려웠습니다.
이를 해결하기 위해 각 프레임에 프레임 번호(Frame Number) 또는 타임스탬프를 삽입한 테스트 영상을 생성했습니다.

 

문제 상황

  • 문제
    • 미러링 기능에서 Delay 변동폭(Variation, Jitter) 발생
    • 기존 방법: 시계 영상 기반 비교
    • 한계: 일반 영상에서는 화면 변화가 많아 정확한 분석 어려움
  • 개선 방향
    • 영상 자체에 프레임 번호 또는 타임스탬프 삽입
    • 비교 시 육안 확인이 가능하고, 자동 분석에도 활용 가능
    • FFmpeg을 사용하면 간단하고 빠르게 처리 가능

 

해결 방안

  • FFmpeg의 drawtext 필터를 이용하여 영상에 Frame Number 또는 Timestamp 삽입
  • 입력 영상의 코덱을 분석하여 적절한 인코딩 코덱 자동 선택
  • 원본 오디오 스트림은 그대로 복사하여 변환 속도 단축

 

FFmpeg 빌드 종류 비교

구분 일반 FFmpeg 빌드 Axiom 빌드
출처 공식 FFmpeg 프로젝트 Axiom(서드파티) 최적화 버전
목적 범용 코덱 지원, 안정성 최신 코덱·하드웨어 가속·최적화
코덱 지원 H.264, HEVC, VP9, AV1 등 표준 지원 동일 + 추가 최적화된 AV1, GPU 가속 라이브러리 통합
속도 CPU 기반 변환이 일반적 GPU/하드웨어 가속 적극 활용, 더 빠른 처리 가능
설치 용이성 대부분 OS에서 패키지 설치 가능 직접 빌드 또는 배포 파일 다운로드 필요
활용 사례 범용 영상 변환, 서버 작업 실시간 방송, 고해상도 대량 변환, AI/ML 영상 처리

Tip:

  • 일반 빌드는 안정성이 높아 서버 배포용으로 적합
  • Axiom 빌드는 최신 하드웨어와 함께 사용 시 속도 이점 큼
  • AV1, HEVC 등 고효율 코덱 테스트 시 Axiom이 유리

스크립트 주요 기능

1. 인자 처리

  • --input: 입력 영상 경로 (기본값: input.mp4)
  • --output: 출력 영상 경로 (기본값: output_with_frame.mp4)
  • --fontsize: 글자 크기 (기본값: 120)
  • --mode: 표시 방식 (frame → 프레임 번호, timestamp → 시간 정보)

2. 비디오 코덱 확인

def get_video_codec(input_path):
    ffprobe로 입력 영상의 codec_name 추출

3. 코덱 매핑

def map_codec_to_encoder(codec_name):
    h264 → libx264, hevc/h265 → libx265, vp9 → libvpx-vp9, av1 → libaom-av1

4. 재인코딩 & drawtext 적용

ffmpeg -i input.mp4 \
  -vf "drawtext=text='Frame\: %{n}':x=10:y=10:fontsize=120:fontcolor=white:box=1:boxcolor=black@0.5" \
  -c:v libx264 -preset fast -crf 23 -c:a copy output.mp4

 

사용 예시

python add_timestamp_3.py \
  --input test.mp4 \
  --output test_with_frame.mp4 \
  --fontsize 120 \
  --mode frame

타임스탬프 모드:

python add_timestamp_3.py \
  --input test.mp4 \
  --output test_with_time.mp4 \
  --fontsize 100 \
  --mode timestamp

 

 

기대 효과

  • Delay/Jitter 측정을 위한 정량적 비교 가능
  • 일반 영상에서도 프레임 단위 분석 용이
  • FFmpeg 활용으로 다양한 코덱 지원 & 빠른 처리
  • Axiom 빌드 사용 시 하드웨어 가속을 통한 성능 향상

+ Recent posts