Próbuję znaleźć najbardziej odpowiedni bezstratny format wideo dla wideo 1280 x 720 25 klatek na sekundę. Film ma 4 minuty. Dźwięk będzie wynosił 320 kb / s mp3, to nie jest wielka sprawa. Idealne warunki:
- Bezstratny (może być percepcyjnie bezstratny)
- Kontener + kodek można odtwarzać na większości platform
- Kontener + kodek można odtwarzać na nowoczesnych odtwarzaczach DVD (obsługujących inne formaty niż DVD)
- Rozmiar jest mniejszy niż 700 MB
Czy to w ogóle możliwe? Walczyłem już trzy dni, bez żadnych satysfakcjonujących rezultatów, nawet otrzymując pliki 12 GB (wydaje się dużo - 3 GB / minutę).
video
ffmpeg
video-editing
mrkva
źródło
źródło
Odpowiedzi:
Najlepszym faktycznym, matematycznie bezstratnym formatem, jaki znam, jest huffyuv, ale spowoduje to zabawnie ogromne pliki i nie będzie z nimi kompatybilny. Dla przypomnienia, ffmpeg może to zrobić za pomocą:
X264, koder h.264 typu open source, ma tryb bezstratny. To może wejść do kontenera MP4 i powinno być kompatybilne z większością sprzętu wyprodukowanego w ciągu ostatnich kilku lat. Pierwsze polecenie da dużą szybkość kodowania, ale duży plik; drugie polecenie zajmie znacznie więcej czasu, ale plik powinien mieć około połowy rozmiaru szybko zakodowanego (jednak nadal będzie dość duży):
Jeśli to nie da ci wystarczająco małego pliku, CRF 18 jest ogólnie uważany za „wizualnie bezstratny”:
Zasadniczo polecam bardzo szybki zestaw do kodowania z x264, z mojego doświadczenia wynika, że oferuje najlepszą kompromis między szybkością a rozmiarem (istnieje duży spadek wielkości pliku między superszybkim i bardzo szybkim, wolniejszym niż to i jest bardziej przyrostowy). Ogólna rada to używanie najwolniejszego ustawienia wstępnego, jakie można obsłużyć, są to: ultraszybkie, superszybkie, bardzo szybkie, szybsze, szybkie, średnie, wolne, wolniejsze, bardzo wolne.
Patrz tutaj dla przewodnika bardziej dogłębnej do kodowania x264.
źródło
veryfast
jako dobrego domyślnego dla stratnego x264.medium
to dobry środek, ale zwykle używamveryslow
do ostatecznego kodowania czegokolwiek. Niehuffyuv
jest nawet bardzo szybki, nie polecałbym go do niczego innego niż kompatybilność.Obecnie lubię webm :
Aby konwertować szybciej, z procesorami wielordzeniowymi, przeczytałem, że zaleca się użycie o jeden mniej wątku niż w prawdziwych rdzeniach. Tak więc, z 8 rdzeniem możesz określić 7 wątków takich jak to:
źródło
Aby mieć pełną kompatybilność z odtwarzaczami DVD, musisz użyć formatu MPEG-2, kontenera, ograniczeń, kodeków. Sądzę, że „nowoczesne odtwarzacze” oznaczają zgodność z „mp4”, czyli w zasadzie odtwarzacz plików mp4 - H.264, MPEG-4, AVC => libx264
# WIDEOczytaj więcej: https://de.wikipedia.org/wiki /H.264
Zajrzyj na https://trac.ffmpeg.org/wiki/Encode/H.264 , szczególnie w części dotyczącej „profilu” i „poziomu”, w celu zapewnienia zgodności
# AUDIOKorzystanie
-profile:v high -level 4.0
powinno to zrobićUnikaj ponownego kodowania ścieżek audio za pomocą stratnych kodeków - każdy format mp3 jest stratny, nawet 320 kb / s.
# WreszcieUżyj
-c:a copy
zamiast tego.Do tej pory wykonał dla mnie całkiem dobrą robotę. brak problemów z synchronizacją.
Strumienie audio nie są powiązane z klatkami kluczowymi. Możliwe są dokładne cięcia.
Jeśli twoja ścieżka audio jest nagrywana z częstotliwością próbkowania 44 kHz, użyj max. 256 kb / s
Użyj stratnych kodeków tylko do ostatecznego kodowania wideo, jeśli chcesz spełnić określone wymagania.
Słyszałem o niektórych problemach z synchronizacją dźwięku, ale wygląda na to, że głównym problemem był chroniony materiał (!).
Wolałbym coś takiego:
ffmpeg -i input -c:v libx264 -crf 5 -preset faster -profile:v high -level 4.0 -c:a copy output.mp4
źródło