Pamiętaj, że w tym celu zawsze powinieneś używać najnowszej wersji ffmpeg , a najlepiej skompilować ją samodzielnie . Daje to dostęp do najnowszych bibliotek libx265 i libfdk-aac do kodowania dźwięku.
Ponadto oszczędności w zakresie szybkości przesyłania danych będą dość drastyczne, jeśli przejdziesz z dysku DVD ~ 10 MBit / s do około 1–2 MBit / s dla wideo H.264 i 0,5–1 MBit / s dla wideo H.265. Zmiana jakości w poniższych krokach może wpływać na przepływność, ale nadal redukcja danych powinna być znacząca.
H.264
Do kontroli jakości / szybkości chcesz używać trybu CRF w libx264 zamiast stałego bitrate. Korzystanie z CRF zapewnia zachowanie średniej jakości, niezależnie od oryginalnej rozdzielczości wideo lub jej złożoności. Stała szybkość transmisji jest naprawdę przydatna tylko wtedy, gdy ogranicza Cię nośnik transmisji (np. Prędkość dysku twardego, przepustowość Internetu).
Wybór wartości CRF to trudna część. Wymaga to spojrzenia na wynik. Domyślne ustawienie dla libx264 (23) oferuje całkiem dobry kompromis między rozmiarem a jakością. Ale biorąc pod uwagę, że twoje oryginalne źródło jest już skompresowane (i nie ma bardzo dobrej jakości w porównaniu do Blu-ray), możesz chcieć zmienić CRF, aby był nieco niższy, na przykład 20. Zwiększy to potrzebną przepływność o około jedną trzecią .
Wybierz ustawienie wstępne zgodnie z tym, jak długo chcesz czekać. slow
wydaje się tu dobrą wartością.
ffmpeg -i input \
-c:v libx264 -crf 20 -pix_fmt yuv420p \
-x264-params keyint=240:min-keyint=20 \
-preset:v slow -profile:v baseline -level 3.0 \
-c:a libfdk_aac -vbr 4 \
output.mp4
Wbudowanego kodera AAC ffmpeg można użyć, jeśli libfdk-aac nie jest dostępny. Użyj -c:a aac -strict experimental -b:a 128k
zamiast -c:a libfdk_aac -vbr 4
.
H.265
Badania sugerują, że użycie HEVC doprowadzi do 74% oszczędności bitrate w porównaniu do H.264. Jest to oparte na subiektywnych danych oglądania sekwencji Ultra-HD. Oczywiście zależy to od czasowej złożoności treści źródłowej, a ilość zapisanych danych nie będzie tak wysoka w przypadku trudnych do zakodowania sekwencji. Tak czy inaczej, możesz bezpiecznie powiedzieć, że 50% redukcja danych jest absolutnie możliwa.
Domyślny CRF dla libx265 to 28. Korzystanie z tej samej zawartości źródłowej powoduje około połowę bitrate w porównaniu do libx264 w CRF 23. Jest to niezależne od rzeczywistej bitrate, tj. Jeśli wersja H.264 zajmuje 1,5 MBit / s, wtedy H.265 zużyje około 750 kBit / s, ale jest to 750 kBit / s vs. 350 kBit / s dla innej sekwencji. Uruchomiłem go na kilku sekwencjach w rozdzielczości DVD-PAL i nie byłem w stanie odróżnić jakości.
ffmpeg -i input \
-c:v libx265 -pix_fmt yuv420p \
-x265-params crf=28:keyint=240:min-keyint=20 \
-preset:v slow \
-c:a libfdk_aac -vbr 4 \
output.mp4
Aby uzyskać więcej informacji, oto odpowiednie zasoby:
keyint
W x264 / X265 jest odstęp między ramkami IDR, czyli odstępu między klatkami kluczowymi, w którym dekoder może odświeżania. Pomiędzy nimi mogą występować klatki I bez klatki kluczowej, np. Gdy nastąpi wycięcie sceny. Jest to równoważne z-g
parametrem, jeśli się nie mylę.-c:a aac -strict experimental
tak, jak wskazano w mojej odpowiedzi. I zgadzam się, nie próbowałbym zbudować go w systemie Windows.libopus > libvorbis >= libfdk_aac > aac > libmp3lame >= libfaac >= eac3/ac3 > libtwolame > vorbis > mp2 > wmav2/wmav1
Tylko dla AAC: (Ponieważ jest trochę mylący, z dostępnymi 3 koderami):libfdk_aac > aac > libfaac
Znak> = oznacza większy lub taki sam jakość."