Kluczem do jakości przy konwersji jest wartość video bitrate im większa wartość tym lepsza jakość filmu. Istotne są również kodeki i tak np. w przypadku plików AVI najlepszym kodekiem dającym dobrą jakość przy stosunkowo małej wartości video bitrate jest kodek H.264. Daje on lepszą jakość od popularnych kodeków Xvid i DivX. Konwertowałem swego czasu film z DVD Video na AVi i bez widocznej utraty jakości z użyciem kodeka H.264 wystarczyła wartość video bitrate - 1800.
Do konwersji używam programu
Xilisoft Video Converter i
ImTOO Video Converter. Programy są niemal identyczne. Jeżeli posiadasz kartę graficzną NVIDIA z funkcją CUDA to przy konwersji z użyciem kodeka h.264 programy wykorzystują funkcję CUDA co w zależności od możliwości karty graficznej przyspiesza czas konwersji i daje jeszcze lepszą jakość. CUDA jednak dają znaczne przyspieszenie tam gdzie procesor główny kiepsko sobie radzi, w przeciwnym razie przyspieszenie jest niewielkie.
Do edycji filmów głównie w formacie MPEG 2 zgodnym z DVD używam programu
SONY Vegas Pro. Natomiast do tworzenia filmów w formacie DVD Video używam programu
SONY DVD Architect Pro.
Do nakładania napisów na filmy korzystam z programu
VirtualDub.
Do zmiany szybkości klatek z jakimi film jest odtwarzany np. z
23.976 Fps na
25.000 Fps używam programów
VirtualDub Mod i
BeSweet. Zmiana klatek z wartośći niżej na wyższą nie jest wcale tak prosta, nie wystarczy przekonwertować filmu używając wyższej wartości Fps, gdyż obraz w filmie będzie się rwał. Trzeba oddzielnie przetworzyć strumień video poprzez przesunięcie wskaźnika klatek w filmie do wyższej wartości i oddzielnie przetworzyć dźwięk, a potem to połączyć tak by obraz zgrywał się z dźwiękiem.
Co się zaś tyczy ffmpeg.exe to u mnie konwersja filmu 700 MB o długości 95 min. trwała 48 sekund. Przy czym o tym jak długo to trwa decyduje długość filmu, a nie rozmiar pliku.
Po zmianie polecenia na:
ffmpeg.exe -loglevel info -stats -input.avi output.avi
Konwersja trwała 4 min. 15 sek. a otrzymany plik był w fatalnej jakości.
Po zmianie polecenia na:
ffmpeg -i input.avi -b:v 800k output.avi
czyli zmieniając wartość video bitrate na wyższą konwersja trwała już 5 min. 45 sek. Pomimo iż wartość bitrate nieznacznie wzrosła to otrzymany plik był gorszej jakości. Wynika to zapewne z tego, że zmianie uległa biblioteka zamiast
XviD'a ffmpeg użył biblioteki
Lavc53.60.100.
Postanowiłem sprawdzić jak poradzi sobie program
VirtualDub Mod i okazało się że przetworzenie całego pliku AVI bez zmiany czegokolwiek w tym pliku trwało 18 sek. Gorzej jednak wypadła pełna dekompresja ze zmianą wartości video bitrate, gdyż trwałą 15 min. 20 sek., ale otrzymany plik wyjściowy nie różnił się wizualnie jakością z plikiem wejściowym.
Sprawdziłem jak sprawa przedstawia się w programie
ImTOO Video Converter. W tym programie nie można wykonać szybkiej dekompresji, tutaj zawsze plik jest przetwarzany w całości. Zmiana wartości bitrate w pliku wyjściowym z zachowaniem kodeka XviD MPEG 4 trwała 10 min 14 sek., a plik wyjściowy nie różnił się wizualnie od pliku wejściowego. Po zmianie kodeka na H.264 i wartości video bitrate program zaczął korzystać z funkcji CUDA karty graficznej i czas konwersji skrócił się do 8 min. 46 sek. plik wyjściowy wydawał mi się wizualnie nieco lepszy od pliku wejściowego, ale trudno to jednoznacznie stwierdzić, gdyż tylko w scenach gdzie na XviD linie ukośne były ząbkowane na H.264 były wygładzone, poza tym brak większej różnicy, poza wzrostem rozmiaru pliku, co wynikało z wyższej wartości bitrate.
Slynx napisał(a):W 99 % kombinowałem tylko z rozdzielczością, bitrate i kodowaniem dwuprzebiegowym, reszty raczej nie ruszałem.
Wraz ze zmianą rozdzielczości trzeba zmienić wartość video bitrate. Większa rozdzielczość
większa wartość bitrate, w przeciwnym razie film będzie mniej lub bardziej pikselowaty. Zmiana rozdzielczości nie wpływa na rozmiar pliku wyjściowego, gdyż liczy się tylko wartość bitrate. Ta zasada nie dotyczy plików MPEG zarówno 1 jak i 2, być może i innych formatów, ale nie testowałem. W przypadku AVI nie wpływa na rozmiar o ile nie zwiększysz video bitrate, różnica polega jednak na tym, że np. video bitrate 900 kbps przy rozdzielczości np. 624x336 daje obraz dość dobrej jakości, ale ta sama wartość bitrate przy rozdzielczości np. 720x480 sprawi, że obraz będzie pikselowaty, gdyż przy większej rozdzielczości trzeba zwiększyć wartość video bitrate. By dla rozdzielczości 720x480 uzyskać obraz dobrej jakości trzeba video bitrate zwiększyć co najmniej do 1600 kbps.
Kodowanie dwuprzebiegowe czasami może dać obraz gorszej jakości, jeżeli np. wejściowy plik AVI był już wcześniej dekodowany dwuprzebiegowo.