Do czego służy -crf w ffmpeg

20

Podczas konwersji tablicy plików JPEG do pliku wideo (format ogg) korzystałem z opcji -crf. Jakie są prawidłowe zakresy dla -crf? Obecnie używam 23.

Nie mogę znaleźć zakładki, którą przeczytałem, aby wiedzieć, co robi ta flaga, i spędziłem trochę czasu w Google.

Oto argumenty, których używam w tej chwili:

-f image2 -r 10 -i " + _sourcePath + @"\img%05d.jpg -crf 18  -y -r 10 " + _destPath + "\\" + _filename + ".ogg"
Andrew Simpson
źródło
1
Nic nie wiem o tym poleceniu, ale jest bardzo dobrze udokumentowane tutaj: ffmpeg.org/ffmpeg.html .
Ben Plont,
1
Czy używasz libx264 (dla wideo H.264) lub libvpx (dla wideo VP8)? Pokaż swoją komendę ffmpeg i pełne dane wyjściowe konsoli.
llogan
Cześć, przepraszam za opóźnienie. Musiałem wyprowadzać psa. Poprawię moje pytanie. Dzięki
Andrew Simpson,
1
Pytanie brzmi więc, czy chcesz zachować to pytanie raczej ogólne dla CRF, czy też masz konkretny problem, z którym potrzebujesz pomocy. W tym drugim przypadku musielibyśmy uzyskać pełne wyjście wiersza poleceń (tj. Wszystko od „wersji ffmpeg…” do ostatniego bitu) i rzeczywiste polecenie, którego używasz, ale niestety, istniejące odpowiedzi byłyby bezużyteczne. Jeśli masz konkretny problem, możesz zadać nowe pytanie.
slhck
@slhck Cześć, masz absolutną rację. Muszę nauczyć się być bardziej szczegółowym i wszechstronnym w przyszłości. Ponieważ była to Twoja odpowiedź, bardziej odpowiadała moim potrzebom niż wszystkim innym, ale wszystkie inne były również pouczające. Będę stąpać ostrożniej w przyszłości :) Dziękuję za poświęcony czas. Bardzo mile widziane.
Andrew Simpson,

Odpowiedzi:

20

Odnosi się to do współczynnika stałej szybkości ( crf).

Jak zauważyli inni (Dzięki wszystkim), wartości będą zależeć od używanego enkodera.

Dla x264 twój poprawny zakres to 0-51:

Zakres skali kwantyzatora wynosi 0-51: gdzie 0 jest bezstratne, 23 jest domyślne, a 51 jest najgorsze z możliwych. Niższa wartość jest wyższa jakość i subiektywnie jest rozsądny zakres 18-28. Rozważ 18 jako wizualnie bezstratną lub prawie taką: powinna wyglądać tak samo lub prawie tak samo jak wejście, ale technicznie nie jest bezstratna.

Dla vpx zakres jest 4-63(jak odpowiedział @ sebastian-hoffner ):

Domyślnie wartość CRF może wynosić od 4–63, a 10 jest dobrym punktem wyjścia. Niższe wartości oznaczają lepszą jakość.

W obu przypadkach niższe jest lepsze . Z mojego doświadczenia widzę x264 znacznie częściej.

Bezwstydne łącze Slhck (mod SU) wygląda na dobre informacje.

nerdwaller
źródło
Zakres dla VPX wynosi od 0-63, a nie 4-63, zalecana stawka to 15-30
Suhayb
3

Flaga CRF zapewnia zmienną przepływność dla stałej jakości, jeśli dobrze rozumiem stronę połączoną poniżej. Domyślny zakres wynosi od 4 do 63, ale można go jeszcze bardziej ulepszyć.

Więcej informacji można znaleźć na https://trac.ffmpeg.org/wiki/vpxEncodingGuide .

Sebastian Höffner
źródło
Trochę mnie to zagubiło, oboje prowadzimy do tej samej strony, a każda strona mówi coś nieco innego (to znaczy zakresy). W każdym razie oba wydają mi się uzasadnione, więc jestem tym trochę zaskoczony.
nerdwaller
cześć, dzięki za to. Chcę poprawić jakość strumienia wideo, aby zrobić to przy niskim CRF?
Andrew Simpson,