티스토리 뷰

IT

대용량 영상 압축(WebM/ZIP) 품질 유지 팁: 품질 저하를 최소화하는 압축 실전 팁

happyblissday 2025. 10. 17. 12:02

목차


    대용량 영상을 화질 저하 최소화로 압축하는 실전 가이드를 제공합니다. FFmpeg로 VP9/AV1(웹엠) 인코딩, CRF·두 패스·키프레임·오디오(Opus) 최적값, 언제 ZIP을 쓰고 언제 쓰지 말아야 하는지, 드라이브 미리보기 호환까지 한 번에 정리했습니다1,2,3.

     

    대용량 영상 압축(WebM/ZIP) 품질 유지 팁

     

    1) 빠른 요약

     

     

    • 코덱 선택 호환성 우선: H.264/MP4, 효율 우선: VP9/AV1(WebM). 드라이브 미리보기 지원 형식 확인 필수1
    • 품질비용 균형 CRF 기반 VBR 권장(목표체감화질 고정). VP9/AV1은 같은 용량에 더 나은 화질 기대2,3
    • ZIP의 역할 이미 압축된 영상은 ZIP로 크기 거의 감소 없음. ZIP은 묶기/전송 안정화/원본 아카이브 용도1

    2) 컨테이너·코덱 선택 가이드

    용도 권장 컨테이너·코덱 장점 주의
    최대 호환/빠른 공유 MP4 (H.264 + AAC) 대부분 기기/플레이어 호환 효율 낮음(용량 큼), 장시간/4K 비효율
    용량 절감·웹 업로드 WebM (VP9 + Opus) H.264 대비 고효율, 웹 친화2 인코딩 시간↑
    최고 효율·장기 보관 WebM (AV1 + Opus) 동급 대비 최고 압축 효율2,3 인코딩 매우 느림, 구형 기기 재생 이슈

    Google Drive 미리보기 지원 형식은 공식 문서를 참고하세요. 일부 코덱/컨테이너는 미리보기 대신 다운로드만 가능할 수 있습니다1.

    3) FFmpeg 실전 레시피(품질 유지 중심)

    3-1) VP9(WebM) — 빠르고 안정적인 고효율

    # 단일 패스(품질 우선, 비교적 빠름)
    ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 28 -b:v 0 -row-mt 1 -pix_fmt yuv420p \
      -g 240 -aq-mode 0 -c:a libopus -b:a 128k output.webm
    
    # 두 패스(비트 분배 최적화, 느리지만 효율↑)
    ffmpeg -y -i input.mp4 -c:v libvpx-vp9 -b:v 0 -crf 30 -pass 1 -row-mt 1 -an -f webm /dev/null
    ffmpeg    -i input.mp4 -c:v libvpx-vp9 -b:v 0 -crf 30 -pass 2 -row-mt 1 -pix_fmt yuv420p \
      -g 240 -c:a libopus -b:a 128k output.webm
    
    • -crf 26~32 범위가 1080p 일반 콘텐츠의 무난한 타깃(낮을수록 고화질/용량↑)
    • -b:v 0 → CRF+VBR 모드(품질 기반)
    • -g 240 → 키프레임 간격(24/30fps 기준 8~10초 근처). 컷편집/시킹 고려2
    • 오디오: Opus 96~160 kbps 권장(스테레오 음악은 160k 쪽 유리)

    3-2) AV1(WebM) — 최고 효율(느림)

    # libsvtav1 기반(권장). preset 낮을수록 느리지만 효율↑
    ffmpeg -i input.mp4 -c:v libsvtav1 -crf 28 -preset 6 -pix_fmt yuv420p \
      -g 240 -c:a libopus -b:a 128k output_av1.webm
    
    • -crf 24~32 조정, -preset 4~8(6 기본권장)
    • 하드웨어 지원/재생 호환성 확인(구형 브라우저/기기 주의)3

    3-3) 호환성 안전빵 — H.264/MP4

    # 고호환 저용량 타협안: CRF 20~23, High 프로파일
    ffmpeg -i input.mp4 -c:v libx264 -crf 22 -preset slow -profile:v high -pix_fmt yuv420p \
      -g 240 -c:a aac -b:a 160k output_compat.mp4
    

    프리뷰/재생 호환이 최우선이면 MP4(H.264)를 보조로 유지하세요1.

    4) 해상도·프레임·CRF 감각값(가이드)

    콘텐츠 해상도/프레임 권장 코덱 시작 CRF 비고
    발표/강의(화면녹화) 1080p/30 VP9 28 글자 또렷함 우선, -g 240
    브이로그/일반 1080p/30 VP9 28~30 노이즈 많으면 CRF 낮춰
    고화질 여행/자연 4K/30 AV1 26~28 시간 여유 시 두 패스 고려
    게임/액션 1080p/60 VP9 26~28 고모션: 키프레임 간격 단축(예 g=120)

    CRF는 숫자↓ = 화질↑·용량↑. 1~2씩 바꿔 가며 A/B 테스트하세요2.

    5) ZIP은 언제 쓰나? (줄이는 게 아니라 ‘묶기’)

    • 이미 압축된 영상(H.264/VP9/AV1)은 ZIP로 거의 줄지 않음
    • ZIP의 용도: 여러 파일 묶기, 전송 안정(무결성 체크), 무손실 원본/프로젝트 폴더 보관
    • 원본이 무손실/중간코덱(ProRes, DNxHR)이면 ZIP/7z로 유의미하게 줄 수 있음
    # 표준 ZIP 최대로(호환 우선)
    zip -r -9 archive.zip folder_or_file
    
    # 7z(압축률↑, 호환성은 ZIP보다 낮음)
    7z a -t7z -mx=9 archive.7z folder_or_file
    

    업로드/미리보기 목적이면 영상은 WebM 또는 MP4로 인코딩한 뒤 올리고, 원본/프로젝트는 ZIP/7z로 별도 보관하는 구성이 합리적입니다1.

    6) 드라이브 업로드 워크플로우(안전·호환)

    1. 러프 컷: 불필요 구간을 -c copy로 무손실 트리밍(재인코딩 방지)
      ffmpeg -ss 00:00:10 -to 00:02:40 -i input.mp4 -c copy trimmed.mp4
    2. 인코딩: 목적에 맞는 코덱/CRF로 출력(WebM 권장)
    3. 검증: 로컬 플레이어로 화질/시킹/오디오 확인
    4. 업로드: 드라이브 전송. 미리보기 안 되면 호환 프로파일(예: MP4/H.264) 보조 업로드1
    5. 아카이브: 원본/프로젝트는 ZIP/7z로 보관, 체크섬 기록(md5/sha256)

    7) 흔한 함정과 체크리스트

    • 이중 인코딩: 이미 낮은 비트레이트 영상을 또 낮추면 아티팩트 급증 → 원본 또는 고품질 마스터에서 인코딩
    • 픽셀 포맷: yuv420p로 표준화(브라우저·플레이어 호환)
    • 오디오: 음악 위주면 Opus 160 kbps 이상 고려, 말 위주면 96~128k
    • 키프레임: 너무 길면 시킹/프레임드롭 이슈, 너무 짧으면 비트낭비 → 2~10초 내 조정
    • ZIP 과신: 용량 절감 수단 아님. 묶기·안정·아카이브 용도1

     

     

    9) 결론

    인코딩(코덱/CRF)으로 실질 용량을 줄이고, ZIP은 묶기/아카이브에 쓰는 것이 정석입니다. 목적에 맞춰 VP9/AV1(WebM)을 우선 검토하고, 미리보기·호환이 필요하면 MP4(H.264) 보조본을 병행하세요. 작은 CRF 조정과 올바른 오디오 설정이 체감 품질을 크게 좌우합니다1,2,3.

    10) FAQ

    Q1. 유튜브 권장 설정과 같은가요?
    근본 원리는 유사합니다(CRF/VBR, 키프레임, 색공간 등). 다만 유튜브는 재인코딩이 전제라 권장치가 플랫폼 특화입니다. 자체 배포/보관이면 본문 레시피를 기준으로 A/B 테스트하세요4.
    Q2. 하드웨어 인코더(Quick Sync, NVENC) 써도 되나요?
    속도는 빠르지만 동급 소프트웨어 인코더 대비 효율이 낮을 수 있습니다. 시급할 때 임시본으로 쓰고, 최종본은 소프트웨어(특히 AV1/VP9)로 권장합니다.
    Q3. 4K HDR는 어떻게 하나요?
    색공간·전달함수(HDR10/HLG) 보존이 필요합니다. ffmpeg의 -color_primaries, -color_trc, -colorspace를 올바르게 지정하고, 호환성 이슈가 있으면 SDR 톤매핑본을 병행하세요.

    출처

    1. Google Drive 도움말 — 미리보기/지원 파일 형식 1
    2. FFmpeg 위키 — VP9 인코딩 가이드 / FFmpeg 위키 — AV1 인코딩 가이드 2
    3. WebM Project — 코덱/컨테이너 개요 3
    4. YouTube 도움말 — 업로드 인코딩 권장 설정 4