Jak mogę ponownie zakodować wideo H.264 przy minimalnej utracie jakości?

20

Mam dużo plików MPEG-TS (kontener .TS, ale wideo H.264), a odtwarzanie jest w porządku, z wyjątkiem tego, że kiedy przeskakujesz do przodu / do tyłu lub do przodu, jest bardzo powolny i ulega pikselizacji itp.

Próbowałem przeprowadzić badania i domyślam się, że były one kodowane przy użyciu bardzo niewielu bloków referencyjnych (tj. Jest to przechwycenie ze strumienia satelitarnego DVB-S).

Kiedy ponownie koduję je za pomocą hamulca ręcznego (kontener .MP4), odtwarzają się bardzo, bardzo dobrze, a wyszukiwanie w filmie jest natychmiastowe itp. Itp.

Czy jest możliwe transkodowanie / ponowne kodowanie plików MPEG-TS przy minimalnej utracie jakości? Jeśli tak, jaki jest mój najlepszy zakład? Każdy z nich ma około 2 Mb / s (tj. 2 GB na godzinę), ale nie chcę ich ponownie kodować, jeśli „minimalna utrata jakości” wymaga ponad 10 GB na plik. Mam nadzieję, że wideo będzie tego samego rozmiaru.

Czy ktoś może mi dać jakąś radę?

SofaKng
źródło
4
Czy próbowałeś po prostu przełożyć je ponownie na plik MKV lub MP4, aby sprawdzić, czy to pomaga? Zobacz odpowiedzi na: Jak przekonwertować i naprawić MPEG-TS (przechwyty DVB-S) w celu lepszego odtwarzania?
afrazier

Odpowiedzi:

23

Prawdopodobnie jest to problem z pojemnikiem, kopiowanie go do nowego formatu pojemnika za pomocą

avconv -i input.ts -c copy output.mp4

może rozwiązać problem. Będzie to w 100% bezstratne. Jeśli to nie zadziała, crf 18 jest zwykle uważany za „wizualnie bezstratny”; możesz ustawić to HandBrake (w zakładce „wideo”) lub za pomocą avconv:

avconv -i input.ts -c:a copy -c:v libx264 -crf 18 -preset veryfast output.mp4

Ustawienia wstępne to: ultraszybki, superszybki, bardzo szybki, szybszy, szybki, średni, wolniejszy, wolny, bardzo wolny. Im wolniejsze ustawienie wstępne, tym mniejszy plik (ale wraz ze wzrostem czasu kodowania). W moich osobistych eksperymentach odkryłem, że największy spadek wielkości plików jest między superszybkim a bardzo szybkim, po czym wydaje się on znacznie bardziej przyrostowy.

UWAGA: Jeśli chcesz, ffmpeg może zrobić wszystko, co może zrobić avconv, z identyczną składnią (po prostu zamień wszystkie wystąpienia avconv na ffmpeg).

Przypis: Można znaleźć ten ffmpeg x264 kodujący instrukcji przydatnych aby uzyskać więcej informacji.

zła
źródło
8

Bez wchodzenia w szczegóły kodowania wideo: Nie ma czegoś takiego jak „minimalna utrata jakości”, gdy ograniczeniem jest określony kodek wideo (h.264) lub określona szybkość transmisji. Zawsze będzie istniał czynnik ograniczający - gdyby istniał sposób na zachowanie jeszcze większej jakości, byłby to święty graal kodowania wideo, że tak powiem.

Jest tylko tyle możliwości enkodera, co x264 - głównym pokrętłem „kontroli” będzie ustawienie współczynnika stałej szybkości, który w jakiś sposób działa jako współczynnik „stałej jakości”. Oprócz tego istnieją techniczne ograniczenia dotyczące ilości bitrate, jaką można zaoszczędzić podczas ponownego kodowania i utrzymywania tej samej wizualnej / doświadczonej jakości z jednym konkretnym koderem.

Oczywiście otrzymasz różne wyniki dla, powiedzmy, XviD (prosty koder MPEG 4 część II) i x264, najbardziej zaawansowanego obecnie kodera h.264. A potem możesz także spróbować kupić enkoder Mainconcept h.264 i sprawdzić, czy użycie go zapewnia lepszą jakość przy tej samej średniej przepływności.

W kodowaniu wideo i tak będziesz musiał przeprowadzić kilka prób, ponieważ zależy to również od materiału źródłowego. Mecz piłkarski będzie trudniejszy do zakodowania niż runda Snookera. Istnieją pewne opcje w x264, które pozwalają na strojenie niektórych typów, np. Filmów, z -tune filmopcją na przykład w FFmpeg, ale różnica może być minimalna.

Przykłady i więcej informacji można znaleźć w FFmpeg: Najlepsze narzędzie do manipulacji wideo i audio .

slhck
źródło
1

W przypadku moich promieni blu Jeżeli koduję pliki MPEG-TS, używam wysokiego profilu hamulca ręcznego i używam zakładki zaawansowanej z tymi ustawieniami: RF 20

b-adapt=2:rc-lookahead=60:bframes=8:direct=auto:trellis=2:ref=16:subq=10:me=umh:merange=24:analyse=all

Kodowanie zajmuje trochę czasu, ale jakość jest trudna do odróżnienia od blu ray.

Jeśli twój cel jest tego samego rozmiaru, tak się nie stanie, ponieważ jest to inny kodek / kompresja. Rozmiar i jakość pliku to nie to samo.

davefromcamp
źródło