VP9 비트 전송률 모드 세부정보
소개
기본 인코딩 페이지에서는 비트 전송률 모드에 관한 개요를 제공하지만 CQ (제약된 품질) 모드만 다룹니다.
이 문서에서는 다양한 시나리오에 맞게 최적화하기 위해 VP9 비트 전송률을 맞춤설정할 수 있는 다른 실용적인 방법을 자세히 설명합니다. 아래 예시에서는 FFmpeg를 사용합니다.
압축
VP9와 같은 동영상 압축 기술은 최종 사용자에게 이해할 수 있는 이미지와 움직임 감각을 전달하는 데 필요한 데이터 양을 줄이는 것을 목표로 합니다.
이를 달성하는 데 사용되는 주요 기법 중 하나는 양자화입니다. 양자화기는 이미지의 다양한 디지털화된 요소를 수학적으로 단순화합니다. 예를 들어 사용되는 색상 범위를 줄일 수 있으며, 축소된 색상 범위 내에서 미세한 해상도가 부족한 것으로 인식되는 부분을 '부드럽게' 만들기 위해 데이터에 수학 함수를 적용할 수도 있습니다. 이러한 함수는 많이 있습니다.
양자화('Q')는 위키백과 문서에 잘 설명되어 있습니다.
VP9에서는 변환 계수에 양자화가 수행됩니다. 이렇게 하면 인코딩에 추가하여 인식된 품질을 유지하는 데 필요한 비트 전송률이 줄어듭니다.
결국 양자화가 많을수록 (Q 수가 높을수록) 세부정보가 손실되고 품질이 낮아지지만 프레임을 저장하는 데 필요한 데이터는 적어집니다. 대부분의 경우 VP9 인코더는 각 프레임의 복잡성에 따라 시간 경과에 따라 Q를 변경하여 비트 전송률 목표를 달성합니다.
사용 사례 최적화
사용자가 특정 요구사항에 맞게 VP9 압축을 '조정'할 수 있도록 여러 프로그래밍 인터페이스를 통해 초기 압축 시 품질과 비트 전송률의 균형을 조정할 수 있습니다.
인코더는 속도, 품질, 비트 전송률 간에 슬라이딩 트레이드오프가 있습니다.
사용자가 품질에 중점을 두는 경우 인코딩 시간이 길어지거나 더 빠르고 풍부한 처리 리소스를 제공할 준비가 되어 있어야 합니다.
사용자가 출력 VP9 인코딩 파일이 작고 빠르게 전송될 수 있도록 하는 데 중점을 두는 경우 이미지의 양자화 처리에 걸리는 시간을 줄여야 하며, 이로 인해 양자화가 작동할 수 있는 세부정보가 줄어듭니다.
사용자가 전송 속도에만 집중하는 경우 (예: 라이브 웹캐스트 또는 양방향 화상 회의) 양자화는 네트워크를 통해 전송할 수 있는 사용 가능한 데이터 바이트의 속도 (즉, '비트 전송률')에 대한 제약 조건에 완전히 종속될 수 있습니다.
올바른 선택은 각 사용 사례에 따라 매우 구체적입니다. 이 균형을 사용 사례에 맞게 더 간단하게 조정할 수 있도록 VP9는 네 가지 '비트 전송률 모드'에서 간단한 구성을 지원합니다.
VP9 비트 전송률 모드
VP9에서 지원하는 주요 비트 전송률 모드를 살펴보겠습니다.
모드 | |
---|---|
상수 양자화기 (Q) | 고정 양자화기 값을 지정할 수 있습니다. 비트 전송률은 달라집니다. |
제한된 품질 (CQ) | 최대 품질 수준을 설정할 수 있습니다. 비트 전송률 매개변수 내에서 품질이 다를 수 있음 |
가변 비트 전송률 (VBR) | 비트 전송률 제약 조건 내에서 시간 경과에 따른 품질과 비트 전송률의 균형을 유지합니다. |
고정 비트 전송률 (CBR) | 품질이 달라지는 동안 비트 전송률을 비교적 일정하게 유지하려고 시도합니다. |
Q
상수 양자화기 모드는 파일 크기와 비트 전송률에 대한 우려가 최종 품질에 완전히 종속되는 시나리오에 적합합니다.
Q 설정의 사용 사례는 콘텐츠가 실제 사용되기 훨씬 전에 물리적 저장 매체나 시간 제약이 없는 방식으로 제공될 수 있고 원하는 출력이 최고의 시각적 품질이어야 하는 디지털 영화관, 디지털 편집 스위트 또는 디지털 사이니지 애플리케이션에서 찾을 수 있습니다.
VP9 Q 모드 비트 전송률 최적화
상수 양자화기 모드에는 최소한의 구성만 필요합니다. 이름에서 알 수 있듯이 Q 모드는 양자화기를 타겟 '품질' 수준으로 유지하고 양자화기가 처리하려는 데이터 흐름을 결정하도록 허용하는 데 중점을 둡니다. 사용자가 정의해야 하는 것은 타겟 품질뿐입니다.
이미지 처리 중심 (비트 전송률 중심 아님)의 타겟 품질에 관한 자세한 내용은 기본 인코딩 도움말을 참고하세요.
Q 모드 비트 전송률 최적화에는 다음 FFmpeg 명령줄 매개변수를 사용하세요.
ffmpeg | |
---|---|
-b:v 0 |
동영상 비트 전송률을 0 로 표시하면 'Q' 모드가 명시적으로 설정됩니다. |
-g <arg> |
프레임 단위로 키프레임 간격을 설정합니다 (기본값은 240). |
-crf <arg> |
최대 품질 수준을 설정합니다. 유효한 값은 0~63입니다. 숫자가 낮을수록 품질이 높음 |
-quality good -speed 0 |
대부분의 애플리케이션에 기본값으로 권장됩니다. best 는 -quality good -speed 0 에 비해 약간 개선된 연구 도구에 가깝습니다. |
-lossless |
무손실 모드 |
Q 모드 비트 전송률 : FFmpeg 예
첫 번째 예는 매우 극단적인 Q 모드 설정이며 설명용으로만 제공됩니다. (이 예의 120초 클립을 처리하는 데도 몇 시간이 걸리며 생성되는 출력 파일은 일반적으로 원본 소스보다 훨씬 큽니다.)
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -g 1 -b:v 0 -crf 0 -quality good \
-speed 0 -lossless 1 -c:a libvorbis Q_g_1_crf_0_120s_tears_of_steel_1080p.webm.webm
-crf
의 효과를 비교하기 위해 다음 예에서는 -crf
만 다릅니다. -g
가 정의되지 않았으므로 기본값은 240
이고, 실제로 -crf
의 기본값은 10
이므로 세 가지 예 중 두 번째 예에 매개변수를 포함하지 않아도 결과는 동일합니다.
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 0 -crf 0 -quality good \
-speed 0 -c:a libvorbis Q_crf_0_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 0 -crf 10 -quality good \
-speed 0 -c:a libvorbis Q_crf_10_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 0 -crf 63 -quality good \
-speed 0 -c:a libvorbis Q_crf_63_120s_tears_of_steel_1080p.webm
이러한 예의 출력은 디스크에서 크기가 다릅니다. -crf
를 0
로 설정한 경우 파일 크기는 711.8MB였고, -crf
를 10
로 설정한 경우 파일 크기는 125.3MB였으며, -crf
를 63
로 설정한 경우 파일 크기는 4.5MB였습니다. 매우 간단히 말해 이는 -crf
인수 값을 높여 결과 VP9 인코딩 파일의 품질을 낮췄음을 강조합니다. 모든 출력 파일의 전체 요약은 아래 결과 표에 있습니다.
이제 -g
설정을 변경했을 때의 효과를 비교해 보겠습니다.
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -g 1 -b:v 0 -quality good \
-speed 0 -c:a libvorbis Q_g_1_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -g 240 -b:v 0 -quality good \
-speed 0 -c:a libvorbis Q_g_240_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -g 480 -b:v 0 -quality good \
-speed 0 -c:a libvorbis Q_g_480_120s_tears_of_steel_1080p.webm
-g 1
설정으로 생성된 파일의 크기가 25.9MB로 매우 큰 것으로 확인됩니다.
-g 240
(기본값과 동일하게 명시적으로 설정)를 변경하면 4.5MB 파일이 생성되고 -g 480
을 변경하면 4.4MB 파일이 생성됩니다.
CQ
CQ는 파일 기반 동영상에 권장되는 모드입니다.
대부분의 콘텐츠 유형의 경우 비트 전송률 제한이 있는 제한된 품질 (CQ) 모드를 사용하는 것이 좋습니다. 대부분의 동영상에는 움직임이 많은 장면 (예: 액션 시퀀스)과 세부정보가 적은 장면 (예: 대화)이 혼합되어 있습니다. CQ 모드를 사용하면 인코더가 더 길고 쉬운 장면에서는 비트를 낭비하지 않고 적절한 품질 수준을 유지하면서 어려운 시퀀스에는 더 많은 비트를 할당할 수 있습니다.
하지만 상한 범위를 제공하여 프로세스를 제한해야 합니다. 그렇지 않으면 압축이 전혀 없을 수도 있습니다. 낮은 범위를 설정할 수도 있습니다. 이 경우 이미지가 검은색이고 인코딩 프로세스가 거의 관련이 없더라도 데이터를 처리합니다. 효율성은 떨어질 수 있지만 검은색이 크게 압축되지 않고 '매우 검은색'으로 보이는 최종 결과가 나옵니다.
또한 양자화기 기준점도 설정해야 합니다. VP9에서 양자화기 임계값은 0
에서 63
까지 다양하게 지정할 수 있습니다.
CQ 모드에는 다음 FFmpeg 명령줄 매개변수가 사용됩니다.
ffmpeg | |
---|---|
-b:v <arg> |
타겟 비트 전송률을 설정합니다 (예: 500k). |
-minrate <arg> -maxrate <arg> |
최소 및 최대 비트 전송률을 설정합니다. |
-crf <arg> |
최대 품질 수준을 설정합니다. 유효한 값은 0 ~63 이며, 숫자가 낮을수록 품질이 높습니다. |
CQ 비트 전송률 모드: FFmpeg 예시
첫 번째 예에서는 적당히 넓은 제약 조건을 제공합니다. 하지만 Q에 대해 위에 제시된 예와 비교하면 비트 전송률이 더 높은 범위로 강제되고 출력 품질이 눈에 띄게 높아집니다. 파일 크기가 눈에 띄게 큽니다.
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
-minrate 1000k -maxrate 4000k -crf 10 -c:a libvorbis \
CQ_4000_1000_crf_10_120s_tears_of_steel_1080p.webm
이 인스턴스의 출력 파일은 디스크에서 20.2MB로, 위의 예에 나온 Q 모드 인코딩보다 훨씬 작았습니다.
다음 예에서는 비트 전송률을 훨씬 더 명확하게 정의된 범위로 제한했습니다.
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
-minrate 1500k -maxrate 2500k -crf 10 -c:a libvorbis \
CQ_2500_1500_crf_10_120s_tears_of_steel_1080p.webm
이 경우 출력 파일 크기는 24.1MB이며 복잡성과 동작이 높은 시간대에는 이전 예와 비교할 때 동영상 품질이 눈에 띄게 감소합니다.
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 1000k \
-minrate 750k -maxrate 1400k -crf 10 -c:a libvorbis \
CQ_1400_750_crf_10_120s_tears_of_steel_1080p.webm
이 마지막 예에서는 출력 크기가 크게 줄어 디스크에서 13.2MB로 떨어졌습니다.
VBR
움직임이 많은 콘텐츠 (예: 스포츠)의 주문형 비디오 파일을 스트리밍하는 경우 가변 비트 전송률 모드 (VBR)가 권장됩니다. HTTP 기반 전송에 적합합니다.
VBR 모델에서 액션 장면은 키프레임과 일치하는 '더 쉬운' 장면보다 높은 비트 전송률로 인코딩될 수 있습니다.
대규모 스트리밍 전송 모델의 경우 VBR 이점이 배포 및 인프라 측면에서 크게 누적될 수 있습니다. 동일한 인프라에서 많은 VBR 스트림을 제공하는 경우 시스템을 사용하는 모든 시청자에게 이점이 있습니다.
VP9 VBR은 움직임이 많은 스포츠 및 기타 콘텐츠를 인코딩하는 데도 권장됩니다. 이러한 고복잡성 콘텐츠의 경우 VBR은 동작이 적은 기간 동안 더 높은 품질을 달성합니다.
VBR 모드에는 다음 FFmpeg 명령줄 매개변수가 사용됩니다.
ffmpeg | |
---|---|
-quality good |
good 품질은 주문형 비디오에 적합합니다. |
-speed <arg> |
주문형 비디오의 경우 유효한 값은 0~5이며, 0이 가장 높은 품질이고 5가 가장 낮은 품질입니다. (라이브 스트리밍의 경우 5~9입니다. 아래의 CBR 참고) |
VBR 비트 전송률 모드: FFmpeg 예
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
-minrate 1500k -maxrate 2500k -quality good -speed 0 -c:a libvorbis \
VBR_good_0_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
-minrate 1500k -maxrate 2500k -quality good -speed 5 -c:a libvorbis \
VBR_good_5_120s_tears_of_steel_1080p.webm
CBR
VP9를 사용한 라이브 스트리밍에는 고정 비트 전송률 모드 (CBR)가 권장됩니다.
CBR은 기본적으로 상한 비트 전송률을 '하드 상한'으로 설정합니다. 즉, 인코딩 프로세스에서 네트워크에서 전송할 수 없는 속도로 데이터를 생성할 수 없습니다.
예를 들어 실시간 통신 (화상 회의) 스트림의 경우 인코딩 애플리케이션이 전송할 수 있는 것보다 많은 데이터로 네트워크를 범람시키지 않는 것이 중요합니다. 이러한 문제가 발생하면 압축 효율성 감소보다 오디오/동영상 동기화 문제나 프레임 멈춤이 사용자 환경에 훨씬 더 큰 영향을 미칩니다. 상한이 정의되어 있으면 VP9는 상한에 도달할 때 품질을 낮춥니다.
CBR 모드에는 다음 FFmpeg 명령줄 매개변수가 사용됩니다.
ffmpeg | |
---|---|
-quality realtime |
realtime 품질은 라이브 스트리밍에 적합합니다. |
-speed <arg> |
라이브 스트리밍의 경우 유효한 값은 5~9이며, 5가 가장 높은 품질이고 9가 가장 낮은 품질입니다. (주문형 동영상의 경우 0~5) 위의 VBR 참고) |
-minrate <arg> -maxrate <arg> |
최소 및 최대 비트 전송률을 설정합니다. ** CBR 모드의 경우 동일한 -b:v 비트 전송률 값으로 설정해야 합니다.** |
매우 간단히 말해 타겟, 최소 및 최대 비트 전송률을 동일한 값으로 수정하고 양자화기에 작업이 시간에 민감하다고 알립니다.
CBR 비트 전송률 모드: FFmpeg 예시
아래 예에서는 비트 전송률을 2Mbps 및 500kbps 타겟으로 설정하는 방법을 살펴봅니다.
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
-minrate 2000k -maxrate 2000k -quality realtime -speed 5 -c:a libvorbis \
CBR_2000_realtime_speed_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
-minrate 2000k -maxrate 2000k -quality realtime -speed 8 -c:a libvorbis \
CBR_2000_realtime__8_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
-minrate 500k -maxrate 500k -quality realtime -speed 5 -c:a libvorbis \
CBR_500_realtime_speed_5_120s_tears_of_steel_1080p.webm
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
-minrate 500k -maxrate 500k -quality realtime -speed 8 -c:a libvorbis \
CBR_500_realtime_speed_8_120s_tears_of_steel_1080p.webm
결과
위의 각 인코딩은 다음 사양의 Ubuntu Linux 시스템에서 실행되었습니다.
- 프로세서: 4x Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
- 메모리 (RAM): 8060MB (1492MB 사용됨)
- 그래픽: Intel HD Graphics 530 (Skylake GT2)
- OS: Ubuntu 16.04 LTS
모든 경우의 소스 파일은 Tears Of Steel에서 추출한 1분 20초 길이의 클립입니다.
파일 | Encode Mins(인코딩 시간) | 디스크의 파일 크기 |
---|---|---|
Q_g_1_crf_0_120s_tears_of_steel_1080p.webm | 81 | 1.06GB |
Q_crf_0_120s_tears_of_steel_1080p.webm | 131 | 711.8MB |
Q_crf_10_120s_tears_of_steel_1080p.webm | 118 | 125.3MB |
Q_crf_63_120s_tears_of_steel_1080p.webm | 27 | 4.5MB |
Q_g_1_120s_tears_of_steel_1080p.webm | 51 | 25.9MB |
Q_g_240_120s_tears_of_steel_1080p.webm | 28 | 4.5MB |
Q_g_480_120s_tears_of_steel_1080p.webm | 10 | 4.4MB |
CQ_4000_1000_crf_10_120s_tears_of_steel_1080p.webm | 11 | 20.2MB |
CQ_2500_1500_crf_10_120s_tears_of_steel_1080p.webm | 9 | 24.1MB |
CQ_1400_750_crf_10_120s_tears_of_steel_1080p.webm | 50 | 13.2MB |
VBR_good_0_120s_tears_of_steel_1080p.webm | 3 | 23.4MB |
VBR_good_5_120s_tears_of_steel_1080p.webm | 4 | 23.9MB |
CBR_2000_realtime_speed_5_120s_tears_of_steel_1080p.webm | 2 | 24.8MB |
CBR_2000_realtime_speed_8_120s_tears_of_steel_1080p.webm | 1 | 21MB |
CBR_500_realtime_speed_5_120s_tears_of_steel_1080p.webm | 1 | 8.5MB |
CBR_500_realtime_speed_8_120s_tears_of_steel_1080p.webm | 1 | 7.1MB |
5
이상의 -speed
값을 설정하면 VP9 처리 속도가 변환되는 것을 확인할 수 있었습니다. 양자화가 상당히 증가했지만 (매우 낮은 품질의 빠른 비트 전송률에서 강한 '디더링' 효과로 확인됨) VP9는 여전히 매우 우수한 낮은 비트 전송률 1080p 출력을 생성할 수 있습니다. 단, 대형 디스플레이보다는 소형 모바일 기기에 더 적합합니다.
크기 조절 사용 사례 고려사항
VP9의 비트 전송률 모드는 명백히 격리되지 않으며, 여러 다른 인수 및 매개변수와 결합하여 사용 사례를 구체적으로 타겟팅할 수 있습니다. 일반적인 사용 사례 중 하나는 특정 기기를 타겟팅하기 위해 출력 동영상의 크기를 다시 조정하는 것입니다.
이러한 변환의 대표적인 예는 HD 스트림을 SD 출력으로 변경하는 것입니다. 이 경우 처리 시간과 출력 비트 전송률에 상당한 영향을 미칩니다. 두 FFmpeg 명령어가 동일한 시나리오에서 출력 동영상의 크기를 조정하면 결과 파일의 크기가 변경되고 스트리밍 모델의 비트 전송률도 변경됩니다.
이를 예시로 보여주기 위해 각 비트 전송률 모드에서 중간 지점 예를 가져와서 재조정 매개변수를 추가했습니다.
Q 모드
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 0 -crf 10 -quality good \
-speed 0 -vf scale=640x480 -c:a libvorbis 640x480_Q_crf_10_120s_tears_of_steel_1080p.webm
CQ 모드
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
-minrate 1500k -maxrate 2500k -crf 10 -vf scale=640x480 -c:a libvorbis \
640x480_CQ_crf_0_120s_tears_of_steel_1080p.webm
VBR 모드
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
-minrate 1500k -maxrate 2500k -quality good -speed 5 -vf scale=640x480 \
-c:a libvorbis 640x480_VBR_good_5_120s_tears_of_steel_1080p.webm
CBR 모드
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 2000k \
-minrate 2000k -maxrate 2000k -quality realtime -speed 5 -vf scale=640x480 \
-c:a libvorbis 640x480_CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm
재조정 결과 표
파일 | Encode Mins(인코딩 시간) | 디스크의 파일 크기 |
---|---|---|
640x480_Q_crf_10_120s_tears_of_steel_1080p.webm | 5 | 3.4MB |
640x480_CQ_crf_0_120s_tears_of_steel_1080p.webm | 2 | 22.4MB |
640x480_VBR_good_5_120s_tears_of_steel_1080p.webm | 1 | 22.6MB |
640x480_CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm | 4 | 23MB |
비교를 용이하게 하기 위해 이전 예의 FFmpeg 명령과 동일하지만 확장이 없습니다.
파일 | Encode Mins(인코딩 시간) | 디스크의 파일 크기 |
---|---|---|
Q_crf_10_120s_tears_of_steel_1080p.webm | 56 | 126MB |
CQ_2500_1500_crf_10_120s_tears_of_steel_1080p.webm | 9 | 24.1MB |
VBR_good_5_120s_tears_of_steel_1080p.webm | 4 | 23.9MB |
CBR_2000_realtime_speed_5_120s_tears_of_steel_1080p.webm | 1 | 24.8MB |
보시다시피 각 출력 파일 크기가 크게 줄어들었고 대부분의 예에서 인코딩 시간이 줄어들었지만 Q 모드에서는 인코딩 시간이 실제로 증가했습니다. 동영상을 '더' 압축하려면 더 많은 노력이 필요하므로 품질이 제한되지 않는 경우(Q 모드에서와 같이) 출력 파일이 더 작아질 것으로 예상되더라도 출력 파일을 생성하는 데 걸리는 시간이 실제로 늘어날 수 있습니다. 인코딩 프로세스를 통해 더 작은 파일이 항상 더 빠르게 전송될 수 있다고 가정하지 마세요.
및 비트 전송률 감소를 조합하여 다시 조정
마지막 비교로 다음 예에서는 크기 조절의 CQ, VBR, CBR 예시를 다시 실행하지만 이번에는 타겟 비트 전송률을 500kbps 수준으로 제한합니다. 이는 이미지 크기의 축소에 따라 대략 1/4입니다.
CQ 모드
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
-minrate 350k -maxrate 550k -crf 10 -vf scale=640x480 -c:a libvorbis \
640x480_CQ_crf_0_120s_tears_of_steel_1080p.webm
VBR 모드
ffmpeg -i "120s_tears_of_steel_1080p.webm" -c:v libvpx-vp9 -b:v 500k \
-minrate 350k -maxrate 500k -quality good -speed 5 -vf scale=640x480 -c:a libvorbis \
640x480_VBR_good_5_120s_tears_of_steel_1080p.webm
CBR 모드
ffmpeg -i 120s_tears_of_steel_1080p.webm -c:v libvpx-vp9 -b:v 500k \
-minrate 500k -maxrate 500k -quality realtime -speed 5 -vf scale=640x480 -c:a libvorbis \
640x480_CBR_2000_realtime_5_120s_tears_of_steel_1080p.webm
타겟 비트 전송률을 재조정하고 낮추는 결과 표
파일 | Encode Mins(인코딩 시간) | 디스크의 파일 크기 |
---|---|---|
640x480_CQ_500_crf_0_120s_tears_of_steel_1080p.webm | 1 | 7MB |
640x480_VBR_500_good_5_120s_tears_of_steel_1080p.webm | 1 | 7MB |
640x480_CBR_500_realtime_5_120s_tears_of_steel_1080p.webm | 1 | 7.6MB |
보시다시피 인코딩 시간이 더욱 단축되었습니다.