VP8 / 9 인코딩이 H.264에 비해 왜 느린가요?


11

최근 Webm 코덱 VP8 및 VP9를 사용 해보고 싶었지만 ffmpegH.264 MP4 파일을 다른 두 코덱 중 하나로 인코딩 하려고 할 때 인코딩이 (거의 10 배 정도) 느리다는 것을 깨달았습니다.

3MBit / s에서 H.264에서 VP9까지의 1080p30 비디오는 약 6-7fps로 인코딩되는 반면 동일한 비디오는 약 40fps에서 H.264로 인코딩됩니다. VP9 형식으로 libvpx-vp9코덱을 사용했습니다 ffmpeg. VP8과 Theora에 대해서도 동일한 결과가 나타납니다.

VP9가 왜 그렇게 느려졌는지 설명해 줄 수 있습니까? Handbrake를 사용하여 비슷한 resullts를 제공하는 다른 기계를 사용해 보았습니다.


답변:


11

libvpx-vp9은 인코더보다 훨씬 느리지 libx264만 ffmpeg (0 = auto)의 스레드 기본 설정은 libvpx에 유효하지 않습니다. 수동으로 설정하면 속도가 향상됩니다. 예 :

ffmpeg -i in.mp4 -c:v libvpx-vp9 -threads 4 out.mp4

4 코어 컴퓨터에서 1080-30p H.264 스트림을 인코딩 할 때 3.8 fps~ 에서 충돌이 발생 합니다 10 fps.


-presetfor libx264-speedfor에 대해 다른 속도 사전 설정이 있음을 언급해야 합니다 libvpx-vp9. 참조하십시오 ffmpeg -h full. 이는 상당한 차이를 만들 수 있지만 품질이나 압축 효율성에도 영향을줍니다.
slhck

1
오히려 오래된 머신에서 시도했지만 두 머신 모두 쿼드 코어이기 때문에 4 개의 스레드를 사용했습니다. 이 -speed옵션은 큰 차이를 만들지 않았습니다.
comfreak


3

VP9는보다 복잡한 코덱으로 더 나은 압축을 제공합니다. 비디오 압축 / 성능 비율은 기하 급수적으로 증가하는 경향이 있습니다. VP9 교체 (AV1)가 더 느려질 것으로 예상해야합니다.


1
다시 말해서, 코덱 "전용"이 비교적 작은 크기의 개선을 생성하더라도 훨씬 느릴 수 있습니까? 내가 대표하는 결과가 있습니까?
comfreak

1
VPcom은 @comfreak의 품질면에서 최대 50 % 더 효율적일 수 있습니다. 나는 그렇게 작게 부르지 않을 것입니다. 결과 파일 크기 만 비교할 수는 없습니다.
slhck

@ slhck : 3MBit / s가 H.264보다 더 많은 원본 정보를 인코딩 할 수 있으므로 H.264의 소스 자료보다 낮은 비트 레이트가 속도를 높이는 옵션 일 수 있습니까?
comfreak

1
@comfreak 낮은 비트 전송률을 사용해도 인코딩 프로세스 속도가 자동으로 증가하지는 않습니다. 압축 효율과 속도 사이에는 절충점이 있으며 예를 들어 많은 스트리밍 공급자는 CPU 시간을 투자하여 공간과 대역폭을 절약하기 위해 전체 비트 전송률을 낮추면서 더 높은 품질의 스트림을 생성하려고합니다. VP9 나 HEVC over H.264와 같은보다 효율적인 코덱을 사용하면 도움이됩니다.
slhck

그러나 기본적으로 속도가 가장 중요한 요소 인 경우 구형 코덱 (예 : H.264)과 압축 효율이 낮은 사전 설정을 사용하고 GPU 지원 인코딩 (예 : NVENC)을 고려해야합니다.
slhck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.