ffmpeg - h264 na xvid tworzy duży plik

2

Próbuję użyć ffmpeg do konwersji pliku wideo h264 / aac do pliku xvid / mp3, aby móc go odtworzyć w moim bardzo tanim odtwarzaczu multimedialnym.

W tej chwili przekonwertowany plik wideo ma dwa razy większy rozmiar niż oryginalny MP4. Czy jest jakiś sposób, aby uzyskać mniejszy rozmiar pliku bez utraty jakości? Nawet spadek do -qmin 1 jest dość okropny!

Polecenie, którego używam to

ffmpeg -i input.mp4 -vcodec libxvid -sameq -acodec libmp3lame -ab 128k -ac 2 output.avi

I wyjście ffmpeg jest

  Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4'
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
  Duration: 01:34:27.69, start: 0.000000, bitrate: 1520 kb/s
    Stream #0.0(und): Video: h264, yuv420p, 720x304 [PAR 1:1 DAR 45:19], 1387 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc
    Stream #0.1(und): Audio: aac, 48000 Hz, stereo, s16, 128 kb/s
Output #0, avi, to 'output.avi':
  Metadata:
    ISFT            : Lavf52.64.2
    Stream #0.0(und): Video: mpeg4, yuv420p, 720x304 [PAR 1:1 DAR 45:19], q=2-31, 200 kb/s, 25 tbn, 25 tbc
    Stream #0.1(und): Audio: libmp3lame, 48000 Hz, stereo, s16, 128 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
fatny
źródło
6
xvid nie jest tak dobry w kompresji jak h264. Czego oczekiwałeś?
phogg
spróbuj użyć parametru
dwuprzebiegowego

Odpowiedzi:

1

W zależności od możliwości odtwarzacza multimedialnego możesz zmniejszyć rozmiar ramki, np. Jeśli zaczyna się ona jako 1280 x 720, zmniejsz do 640 x 360. Pozwoliłoby to zmniejszyć przepływność wideo o 3/4 bez zmiany jakości, a mniejsze odtwarzacze wideo i tak wyświetlają tylko 640 pikseli szerokości.

CarlF
źródło
0

Jak powiedziano wcześniej w komentarzach, h.264 jest lepszym (jak w lepszych kompresjach) kodekiem niż xvid, więc przy wszystkich innych rzeczach równych (jakość, wielkość klatek, liczba klatek na sekundę itp.) Xvid zawsze będzie generował większe pliki. zaletą xvid jest to, że jest mniej obciążający procesor niż h.264, dlatego tanie odtwarzacze multimedialne mogą z niego korzystać.

W tym przypadku XBMC na oryginalnym xboksie (który miał procesor architektury PIII pracujący z częstotliwością 733 MHz) mógł zostać zmuszony do odtwarzania treści HD 720p, ale tylko pod warunkiem, że kodek był wystarczająco lekki i miał bardzo specyficzne flagi. było to zwykle xvid, ponieważ h.264 nawet w rozdzielczościach SD było zwykle zbyt duże dla biednego starego PIII. przy rozdzielczości SD typowy akceptowalny program telewizyjny Q 45 min waży około 350 Mb, ale w h.264 byłby o połowę mniejszy.

dla najlepszego rozwiązania, ponownie koduj filmy do tej samej rozdzielczości co urządzenie (ale zachowując jakość), w ten sposób nie marnujesz przepustowości obrazu, który i tak zostanie zmniejszony w czasie odtwarzania. - zmniejszenie rozdzielczości o połowę w dowolnym kierunku (powiedzmy 1280x720 -> 640x360, jak wspomniano powyżej) zmniejszy wymaganą szerokość pasma (i wynikowy rozmiar pliku) do 1/4.

geocoin
źródło