"The system is low on memory" - pierwsza pomoc

ram-icoVegas jest doskonałym, wygodnym  programem, jedna niestety nie jest mistrzem świata w gospodarowaniu pamięcią. Daje się to we znaki podczas edycji i renderingu plików AVCHD na 32-bitowych wersjach Windows. Jeśli zobaczyliście nagle komunikat "The system is low on memory", być może ten tekst będzie jakimś ratunkiem i pomoże Wam ukończyć pracę.

Systemy obróbki wideo od zawsze wymagały silnego i drogiego sprzętu, będącego często poza zasięgiem finansowym niezależnego filmowca-hobbysty, nawet „zachodniego”. Jeżeli przejrzycie porady na temat komputerów do obróbki wideo sprzed 10-15 lat, znajdziecie tam np. wymóg posiadania dedykowanych dysków SCSI, specjalnych karty z chipami wspomagającymi kodowanie itd. Teraz sprzęt, nawet domowy, jest w większości tak silny, że wielokrotnie przerasta tamte wymagania.

Dokładnie w tym samym czasie nastąpił szalony rozwój kamer wideo. Dziś w zasięgu nawet mniej zamożnego amatora (o zdolności kredytowej...) są nie tylko „zwykłe”, domowe kamery HD, ale nawet kamery takie jak RED, sprzęt klasy jeszcze niedawno dostępnej tylko dla domów produkcyjnych i to raczej tych bogatszych. W tym samym czasie spece od marketingu zrobili konsumentom ogromną krzywdę, wmawiając ludziom, że obróbka wideo to pestka , a posiadacze w miarę nowoczesnych komputerów to nie będą mieli z tym problemów. Ot, buy, plug and play.

No i ludzie uwierzyli. W krótkim czasie okazało się (jak zwykle...), że apetyt rośnie w miarę jedzenia. Ambitny użytkownik tworzył zaawansowany projekt, z wieloma efektami i ścieżkami oraz oczywiście materiałem wysokiej rozdzielczości. Nagle okazywało się, że zaczyna brakować pamięci, rendering nie szedł tak gładko jak na reklamach a dysk zatykał się zastraszająco szybko. Naturalnie producenci na to odpowiadali, że należy rozbudować komputer (szczególnie pamięć) i rzeczywiście na pewien czas to pomagało. Technika szła do przodu, danych do obróbki było coraz więcej i nagle w dobrej zabawie zaczęły przeszkadzać dwa problemy.

 

Problem nr 1 - bariera 32 bitów

Formalnie rzecz biorąc, Windows w wersji 32 bitowej ma do dyspozycji 4GB pamięci RAM, przy czym należy pamiętać, że w tę wartość (przestrzeń adresową) wchodzi także karta graficzna. Niezależnie od tego, w Windows sztucznie ograniczono pamięć dla aplikacji do wielkości 2GB. Dlaczego? „Dla zwiększenia stabilności”. Ot, na wszelki wypadek. Na wszelki wypadek pozostawiono jednak „tylną furtkę”, pozwalającą aplikacjom użyć w sumie około 3GB pamięci RAM. Jak wykorzystać to do rozwiązania problemów Vegasem przeczytacie niżej.
Zainteresowanych szczegółami obsługi pamięci w systemach Windows odsyłam do bardzo dobrego artykułu na stronie CentrumXP.pl oraz oczywiście informacji udostępnianych przez Microsoft.

 

Problem nr 2 – użytkownicy

Niezależnie od niezbyt dobrego gospodarowania pamięcią przez Vegasa, kolejnym problem są użytkownicy. Mimo tysięcy publikacji, poradników i przenoszonych pocztą pantoflową informacji o tym, jak przygotować komputer do obróbki wideo, użytkownicy zwykle ograniczają się do metody „duży dysk, dużo pamięci i szybki procesor”.

Za to praktycznie nikt nie pamięta, że system do wideo ma służyć do wideo i wszystko spoza tej tematyki nie ma racji bytu. Oczywiście wiadomo, że komputery większości użytkowników (zwłaszcza Vegasa  w wersji Studio) to nie dedykowane stacje robocze tylko komputery „do wszystkiego”, na którym ktoś gra, ogląda filmy, piszę pracę magisterską, rozmawia przez Skype czy ściąga z Internetu mniej lub bardziej legalne treści. Na zrzutach ekranu podsyłanych w mailach z prośbą o pomoc często widać, że użytkownik ma uruchomione oprócz Vegasa wszelkie „niezbędne” programy: trzy komunikatory, klienta BitTorrent, Winampa, widget pokazujący ile czasu zostało do Sylwestra oraz widok z kamery internetowej na parę bocianów.

Obu problemom można częściowo zaradzić. Uwaga – przedstawione porady przeznaczone są dla osób dobrze znających system Windows. Jeśli ktoś chce robić „na małpę” bez zrozumienia tego co robi, może się to skończyć całkowitym unieruchomieniem systemu i jego reinstalacją. Wszystko co robicie, robicie świadomie i na własną rękę, nie ponoszę jakiejkolwiek odpowiedzialności za ewentualne szkody, utratę danych i tym podobne zdarzenia. Opis dotyczy systemu Windows XP 32bit.

Rozwiązanie problemu nr 2.

To rozwiązanie dosyć uniwersalne przynajmniej dla tych, którzy traktują swoje hobby poważnie. Sprawdzi się także w stosunku do wszelkich programów związanych z obróbką multimediów (edycja wideo, audio, grafika 2D/3D itd.). Idea jest banalna – brakuje pamięci lub innych zasobów? To je zwolnij i daj naszym programom tyle, ile tylko się da.

Windows jak wiadomo pozwala tworzyć użytkowników oraz profile sprzętowe. Wykorzystamy to do stworzenia warunków odpowiednich do edycji wideo.

1. Utwórz nowego użytkownika i przeloguj się na ten profil

2. Pozbądź się wszelkich wizualnych wodotrysków:

- wygląd Pulpitu ustaw na „Klasyczny Windows”

memorylow1

- usuń tapetę oraz wyłącz wygaszacze ekranu

- menu start zmień na „Klasyczne menu start”

3. Pozwól na uruchamianie przy starcie tylko niezbędnych programów:

- wyrzuć zbędne rzeczy z Autostartu (np. „przyspieszacze” OpenOffice czy Adobe Reader)

- używając msconfig.exe albo ręcznie, edytując (ostrożnie, robiąc przedtym kopię zapasową!) klucz rejestru HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

Zablokuj autouruchamianie komunikatorów, składników Google, agenta Winampa i wszelkich innych dodatków normalnie niepotrzebnych podczas edycji wideo czy audio. Praktycznie rzecz biorąc, pomijając specyficzne przypadki, Autostart oraz klucz Run powinny zostać puste.

Teraz sprzęt:

1. Wybierz Start/Panel sterowania/System.

2. W zakładce Sprzęt kliknij Profile sprzętu.

memorylow2

3. Zaznacz aktualny profil sprzętu. Kliknij przycisk Kopiuj by zduplikować profil. Nazwij go zrozumiale, byś nie miał potem wątpliwości którą konfigurację uruchamiasz.

memorylow3

4. Uruchom ponownie komputer wybierając przy starcie nowo utworzony profil sprzętowy.

5. W Menadżerze urządzeń wyłącz dla bieżącego profilu (jak na ilustracji, nie usuwaj!!!)  te urządzenia, które nie są Ci potrzebne do pracy z materiałem wideo – webcam, porty lpt, porty szeregowe czy nawet karty sieciowe, o ile akurat nie pracujesz w sieci. Zachowaj szczególną ostrożność i nie rozpędź się za nadto!

memorylow4

Po restarcie komputera, o ile wszystko poszło dobrze, masz maszynę w miarę przystosowaną do pracy z wideo, audio czy grafiką i możesz rozpocząć pracę. Dobrym zwyczajem jest zgromadzenie wszelkich materiałów niezbędnych do pracy przed jej rozpoczęciem, by nie okazało się, że będziemy nagle musieli użyć skanera czy ściągnąć coś z sieci.

Teraz czas na Vegasa. Skupimy się na jednym ustawieniu – opcji Dynamic RAM Preview. Vegas podczas swojej pracy część pamięci przeznacza na tworzenie podglądu tego co robimy (efekty, przejścia itd.), a resztę na pozostałe operacje. Czyli – im większa wartość DRP, tym płynniejszy, gładszy podgląd podczas pracy, ale za to może zabraknąć miejsca na „normalną” pracę (np. rendering...) co owocuje znanym komunikatem „The system is low on memory”. Z drugiej strony możemy ustawić minimalny (ale większy od zera) rozmiar DRP, dając więcej pamięci Vegasowi, ale za to z „haczącym się” podglądem.

W przypadku Windowsa XP 32 bit i komputera z 2GB RAM wielkość Dynamic RAM Preview nie powinno przekroczyć 75% wartości zaproponowanej przez Vegasa, czyli optymalnie jest to między 512 a 768MB (na Windows 7 64-bit z 8GB RAM spokojnie można ustawić DRP np. na 2GB!), ale przy AVCHD i tak może nam to wygenerować wspomniany błąd. Proponuję przyjąć więc zasadę, że na czas finalnego renderingu ustawiamy jakąś niską wartość.

Jeśli wszystkie powyższe zabiegi „kosmetyczne” nie pomogą, pozostaje nam sięgnąć po

Częściowe rozwiązanie problemu nr 1.

Podaję w odrotnej kolejności ale celowo. Rozwiązanie to możesz zastosować, jeżeli masz więcej niż 2GB pamięci. Metoda opiera się na wspomnianej wcześniej „tylnej furtce”. Bez wnikania w szczegóły, programiści mają możliwość ustawienia w plikach wykonywalnych znacznika, który pozwala takiej aplikacji sięgać poza barierę 2GB. W związku z tym, że stabilność takich aplikacji bywa różna, nie jest to powszechne stosowana praktyka.

Trik opiera się na takiej modyfikacji plików wykonywalnych Vegasa, która pozwoli im wykorzystać większą cześć zainstalowanej pamięci. Zanim przystąpisz do pracy, pamiętaj że:

- modyfikacja plików programu jest niezgodna z licencją – miej tego świadomość,

- co za tym idzie, producent nie bierze odpowiedzialności za działanie tak zmodyfikowanego programu, nie przysługuje Ci też w tym momencie wsparcie techniczne,

- tak zmodyfikowany program może (ale nie musi) powodować niestabilność całego systemu, łącznie z „blue screen’em”

Traktuj więc podane rozwiązanie raczej jako ostatnią deskę ratunku, a nie panaceum na problemu z pamięcią podczas codziennej pracy. Podane rozwiązanie przedstawia modyfikację Sony Vegas 9 Pro, ale dotyczy w zasadzie każdego programu. Niestety musimy metodą prób i błędów ustalić skuteczność i stabilność tej metody:

1) wyłączamy Sony Vegas.

2) robimy kopie zapasowe plików Vegas90.exe, Vegas90k.dll, Sonymvd2pro_xp.dll, m2tsplug.dll, mcstdh264dec.dll, wmfplug4.dll itd. (część może być zdublowana w File IO-plugins).
Proponuje zacząć zabawę właśnie od tego ostatniego, odpowiedzialnego za rendering formatu WMV (m.in. także tu pojawiają się problemy z pamięcią).

3) Ściągamy program http://www.ntcore.com/exsuite.php instalujemy i uruchamiamy

4) Otwieramy plik wmfplug4.dll a następnie klikamy jak na ilustracji:

memorylow5

 

"File Header", potem w niebieskie pole z prawej "Click here." W tabelce która w tym momencie się otworzy zaznaczacie pozycje "App can handle > 2 GB address space." Zapisujemy (nadpisujemy) plik.

4) Uruchamiamy Vegasa sprawdzamy, czy działa stabilnie, następnie przerabiamy identycznie pozostałe pliki, o ile zachodzi taka potrzeba. Obowiązuje stara zasada programistów – jak działa – nie poprawiać J. Oznacza to, że jeśli problem miałeś z WMV to zmodyfikuj tylko tę bibliotekę, nie tykaj reszty jak nie trzeba.

Podsumowując – przygotowanie osobnego profilu czy wręcz całego komputera „pod obróbkę wideo” jest zawsze dobrym pomysłem, niezależnie od systemu operacyjnego czy używanego oprogramowania. Metody ingerujące w oryginalny software to naprawdę ostateczność i należy je stosować tylko w podbramkowych sytuacjach, ze świadomością tego, co robimy.

Najlepszym wyjściem obecnie jest kupno 64 bitowego procesora, 64 bitowego systemu i 64 bitowego oprogramowania – oczywiście wiążą się z tym niestety określone, zwykle wysokie koszty. Jeżeli jednak ktoś poważnie traktuje swoją pracę lub hobby, powinien wybrać właśnie takie rozwiązanie, a nie uciekać się do sztuczek.