2012-09-10 17:23:32 +0000 2012-09-10 17:23:32 +0000
44
44

Ustawienia Handbrake do konwersji MKV do MP4 z zachowaniem oryginalnej jakości

Mam mnóstwo plików MKV, które muszę przekonwertować do MP4, a moim wybranym programem jest Handbrake.

Utknąłem w martwym punkcie, jakie ustawienia będą najlepsze do konwersji. Chcę zachować pełną jakość. Czy mam po prostu konwertować z oryginalnymi ustawieniami i nic nie zmieniać, czy jest jakaś konkretna rzecz, którą muszę zmienić?

Odpowiedzi (2)

87
87
87
2012-09-10 17:58:20 +0000

Jaki jest problem z Handbrake?

Kiedy używasz Handbrake do konwersji z jednego formatu kontenera do drugiego (np. MKV do MP4 w twoim przypadku), Handbrake ponownie zakoduje wideo. Zobacz także odpowiednie żądanie funkcji , które umożliwiłoby przejście wideo:

Przepraszamy, dodanie przejścia wideo nie jest planowane. HandBrake jest zaprojektowany jako transkoder wideo. Nie został zaprojektowany, aby umożliwić passthrough.

Więc za każdym razem, gdy zmieniasz kontenery za pomocą Handbrake, twoje wideo będzie ponownie kodowane, co oznacza, że a) zajmuje to czas i b) może spowodować utratę jakości.

Czy muszę ponownie kodować? Czy nie mógłbym po prostu zamienić kontenera?

Ponieważ passthrough nie jest możliwe, zadaj sobie pytanie: Czy muszę ponownie kodować? *Jeśli chcesz tylko zmienić kontener z MKV na MP4, *zwykle nie musisz niczego kodować, po prostu zmieniasz “opakowanie” wokół wideo. Nie powoduje to utraty jakości, a będzie to znacznie szybszy proces.

Możesz łatwo zamienić kontenery z FFmpeg - musisz tylko powiedzieć mu, żeby skopiował strumienie wideo i audio:

ffmpeg -i input.mkv -c copy -map 0 output.mp4

Istnieją również narzędzia takie jak MP4Box , które również potrafią tworzyć kontenery MP4 - to samo istnieje dla MKV z MKVtoolnix .

Jest jednak duże zastrzeżenie: to działa tylko wtedy, gdy kodeki audio i wideo są obsługiwane w docelowym kontenerze (MP4), co ma miejsce na przykład dla H.264/H.265 i AAC, ale nie dla wielu innych. Również obsługa formatu napisów w MP4 jest inna niż w MKV, a właściwie dość ograniczona, więc ta komenda może się nie powieść.

Jeśli ta komenda nie zadziała, i jeśli twoje dane wejściowe używają niewłaściwych kodeków dla kontenera wyjściowego, prawdopodobnie będziesz musiał ponownie zakodować. W tym przypadku, kodeki zostaną dostosowane do kontenera wyjściowego.

Aby zrozumieć, dlaczego jest to konieczne, ważne jest, aby poznać różnicę między kodekami wideo a kontenerami . To pomoże ci zrozumieć, dlaczego zmiana kontenerów działa i dlaczego kontenery MP4 i MKV mają niewiele wspólnego z kodekami wideo, tak naprawdę.

Dlaczego ponowne kodowanie jest złe, tak w ogóle?

Możesz (zazwyczaj) nie zachować pełnej jakości podczas kodowania wideo, które było już zakodowane. Dzieje się tak, ponieważ oryginał został już skompresowany przez wyrzucenie informacji, a robiąc to ponownie wprowadzasz stratę generacji .

Często chcesz ponownie zakodować wideo, gdy na przykład zmieniają się jego wymiary, lub potrzebujesz określonej szybkości transmisji, aby ścisnąć strumień wideo, lub oryginalny film używa kodeka, którego nie możesz odtworzyć z jakiegokolwiek powodu.

Więc, jeśli załadujesz film MKV do Handbrake, i ponownie zakodujesz go z x264, koderem H.264, którego używa Handbrake, przechowując go w kontenerze MP4, stracisz jakość bez względu na wszystko, chyba że ustawisz bitrate lub współczynnik jakości tak wysoki, że nie zobaczysz (naprawdę) różnicy. Ale wtedy, rozmiar pliku będzie również większy.

W idealnym przypadku przekonwertowałbyś film do nieskompresowanego wideo, co nie straci na jakości, ale da Ci pliki o wielkości kilkunastu gigabajtów, nawet dla kilkuminutowego materiału wideo.

No dobrze, ale ja naprawdę muszę przekodować!

Jeśli naprawdę musisz przekodować, upewnij się, że nie ustawisz średniego bitrate, ale wybierz Constant Rate Factor , czyli coś w rodzaju “stałej jakości”. Podobnie jak “zmienna prędkość bitowa” dla MP3: Dzięki temu bity zostaną przeznaczone na te części wideo, które ich potrzebują i ogólna jakość będzie lepsza - przy tym samym rozmiarze pliku.

Rozsądne wartości CRF są od 19 do 24, gdzie niższa wartość oznacza “lepiej”. Możesz więc spróbować z wartością Rate Factor równą 19. Upewnij się też, że ustawiłeś profil “High”, który pozwala koderowi na użycie wszystkich bajerów i optymalizację jakości dla danej przepływności.

4
4
4
2014-11-15 12:52:09 +0000

To działa bardzo dobrze dla mnie. Poniżej znajduje się kod do konwersji wszystkich plików .mkv do .mp4 w systemie Windows.

  • Być może będziesz musiał dodać ffmpeg do swojej ścieżki. możesz po prostu umieścić pełną ścieżkę do pliku wykonywalnego ffmpeg, D:\apps\mpeg\bin\mpeg.exe
  • Pobierz ffmpeg dla windows tutaj
  • Użycie: Wrzuć na niego plik .mkv. To zrobi cały katalog.

Zapisz w pliku o nazwie convert.bat.

for %%a in ("*.mkv") do ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~na .mp4"
pause