Jakich ustawień mogę użyć, aby zmaksymalizować wydajność FFMpeg?

9

Próbuję wykonać screencasting, ale ponieważ mój komputer jest o wiele za stary i wolny, wytwarzane wideo jest opóźnione, a aplikacja, którą próbuję nagrać, przestaje odpowiadać z powodu zużycia procesora. Ponieważ w tej chwili nie mogę dokonać aktualizacji, staram się zoptymalizować to, co mam.
Przełączyłem się z GNOME na OpenBox i zabiłem niepotrzebne procesy itp. Nadal nic dobrego. Zoptymalizowałem także aplikację, którą nagrywam, więc jedyną rzeczą, która pozostanie, będzie sam rejestrator, czyli FFMpeg.

Jakie są opcje i flagi, których można użyć, aby uzyskać najlepszą wydajność FFMpeg? Czy są jakieś konkretne kodeki, które są łatwiejsze do przetworzenia niż inne? Będę nagrywać około 10-15 minut na raz, więc coś, co nie wytwarza OGROMNYCH rozmiarów plików, będzie również mile widziane. Jakieś pomysły?

Miguel
źródło
5
Jako ogólna wskazówka: mały rozmiar, dobra jakość, duża prędkość: wybierz dowolne dwa. Najpierw nagrywam do formatu o mniejszej kompresji / wyższej przepływności na sekundę, a następnie ponownie kompresuję ten plik do czegoś mniejszego z prędkością mniejszą niż w czasie rzeczywistym.
Ulrich Schwarz
@UlrichSchwarz, doskonała odpowiedź. Całkowicie się z nim zgadzam.

Odpowiedzi:

4

Jeśli masz stary komputer, dowolny kodek spowoduje problemy z kodowaniem w czasie rzeczywistym (nie tylko procesor, ale także dysk). Proponuję znaleźć rozdzielczość, która jest wystarczająco niska, aby zmniejszyć rozmiar pliku. Chcę mieć niestandardowe rozdzielczości i liczbę klatek na sekundę (nie można używać mpeg1 / mpeg2). Rozdzielczość i ilość klatek na sekundę wybierz mądrze.

Oto moje sugestie dotyczące przełączników w ffmpeg:

-vcodec libx264 
-r 15
-preset ultrafast
-s 800x600

tutaj ustawiłem 800x600 (to może być za mało) i szybkość klatek to 15 fps. Dla lepszej wydajności ustaw liczbę klatek na sekundę od 15 do 10 FPS. Z mojego doświadczenia wynika, że ​​x264 jest szybkim kodekiem i pozwala na niestandardowe resolutiny i prędkości klatek.

Oto konfiguracja MPEG2 (która jest szybsza, ale jest ograniczona rozdzielczością i liczbą klatek na sekundę)

-r 25 
-s 720x480 
-preset ultrafast 
-vcodec mpeg2video
manuel
źródło
Muszę sprawdzić, może jesteś pierwszą osobą w historii, która odnosi się do kodowania H.264 jako „szybkiego” ... :-P Ale tak, kluczową rzeczą jest ustawienie wstępne, aby wyłączyć wszystkie drogie opcje.
derobert
Masz rację! jeśli 720x480 jest tu wystarczająco dobra, jest to szybsze: -r 25 -s 720x480 -preset ultraszybki -vcodec mpeg2video (Mieszkam w świecie Full HD i komplementalnie zapomniałem, że ktoś używa rozdzielczości 800x600 :()
manuel