Kodowanie stratne to w zasadzie kompresja, uzyskiwana za pomocą różnych algorytmów. Rozważmy przypadkowe przypadki i stamtąd dedukujemy odpowiedź na twoje pytanie.
Wyobraź sobie, że Twoje wejście wideo powinno być zakodowane w najlepszej jakości. Co to dokładnie znaczy? Cóż, bierzemy każdy piksel bez zmian i przechowujemy go w ten sposób. Ile czasu potrzebujemy na to? Prawie nic. To by było najszybsze.
Następnie możesz spróbować zminimalizować różnice między ramkami, kodując tylko ich względne różnice. Przewidzieć ramki B z ramki A , a następnie przechowywać w pozostałości po odjęciu przewidywanie z B . To daje tę samą jakość, ale wydłuża czas przetwarzania. Daje również znacznie mniejszy plik.
Co jeśli chcesz jeszcze bardziej zmniejszyć rozmiar pliku? W tym miejscu pojawiają się różne algorytmy kwantyzacji i optymalizacji. Można obliczyć ilość szczegółów przestrzennych i czasowych w obszarze klatek, a następnie dynamicznie dostosować względną jakość tej części filmu, aby była postrzegana z pewnym poziomem jakości . To jest tryb CRF w x264 . W takim przypadku, jeśli chcesz wysokiej jakości, enkoder nie musi wiele robić - nie musi tak wiele „wyrzucać”, mówiąc wprost.
Zasadniczo, gdy powiesz koderowi, że nie musi tak ciężko pracować nad optymalizacją jakości, będzie to szybsze.
Ale może powinniśmy zrobić mały test. Wziąłem 30 sekundową próbkę filmu i zakodowałem go za pomocą x264, używając różnych ustawień CRF na serwerze. Oto potrzebny czas:
To samo dla przepływności: