+ Odpowiedz na ten temat
Strona 1 z 2 1 2 OstatniOstatni
Pokaż wyniki od 1 do 10 z 11

Temat: Akceleracja sprzętowa 1080p dla matrioszki z H.264?

  1. #1
    Szeryf grzegor is on a distinguished road Avatar grzegor
    Zarejestrowany
    Nov 2007
    Skąd
    Kraków, Poland
    Postów
    1,070

    Lightbulb Akceleracja sprzętowa 1080p dla matrioszki z H.264?

    Dostałem film HD (1080p) w formacie .mkv (tzw. matrioszka) i bitrate rzędu 10 mega, w którym obraz zakodowano do H.264 a dźwięk do DTS (tego typu kodowanie filmów bardzo ostatnio popularane w necie dla filmów HD). Zacząłem go oglądać w Movist - to taki fajny playerek z przełączaniem silników QuickTime i ffmpeg (ten drugi to to samo co dekoduje w VLC czy MPlayer). Po chwili oglądanie stało sie bardzo uciążliwe. Wiatraki na maksa, komp bardzo gorący. Komenda top jasno pokazała, że procek zużywa prawie 80% zasobów. Czyli akceleracji sprzętowej brak. Jest to jasne — ffmpeg nie korzysta z niej po prostu więc programy typu VLC czy MPlayer niestety na OSX są z tego wykastrowane. Więc uruchamiam film w QuickTime Player X. Mimo, że on obsłuje akcelerację, to nie używa jej tutaj z prostej przyczyny. Sam nie zna kontenera matrioszki, więc dane dostarcza mu Perian, a ten też jest na ffmpeg więc akceleracji niet. Z początku nawet miał ponad 100% CPU (jak są dwa rdzenie w procku to się do 200% sumuje) bo buforował sobie sekkbara, jak skończył ~80-90% CPU (to narzut odtwarzania dostarczonego streamu + dekodowania perian/ffmpeg, w VLC i MPlayer jest lekko mniejsze, bo stream po rozkodowaniu przez ffmpeg od razu jest kopiowany do grafiki a nie musi być pobieraby z serwera QT).

    Oglądać się nie da więc trzeba przekonwertować go do kontenera zjadliwego dla QT. Do ręki avidemuxer, w nim ustawiam nowy kontener na mp4, strumień wideo tylko kopiuję, bez reenkodowania (to by wieki zajęło dla 10GB filmu a po co, skoro już jest w dobrym formacie) a strumień audio do AAC (mp4 nie obsługuje w teorii DTS'a). Po ~20 minutach mam film mp4.
    Teraz pierwsze benchmarki. QuickTime X: 16-17% CPU — akceleracja działa. VLC, MPlayer dalej ~80%. Tego się można było spodziewać. Tak czy siak sukces — można oglądać. Jedyne „przeciw” to czas przygotowań ~20 minut i kolejne 10GB zajęte na dysku.

    Ale tak z głupia jeszcze potestowałem wszędzie oryginalny .mkv i otworzyłem go w starym QT7. Po zbuforowaniu seekbara do końca (~4 minuty) odtwarza ze zużyciem...



    Tylko 23% CPU! Monitorowane przez dobre 10 minut. Trzyma się na mniej więcej takim poziomie cały czas (oczywiście dla tego samego fragmentu filmu co reszta benchmarków). Komenda top podała też ciekawą informację. Zużycie to tylko proces Quick Time Player a nie QTKitServer jak to miało miejsce w QTX. To jest dziwne, bo Perian właśnie tak działa, że dostarcza do QTKitServer rozkodowany strumień raw a QTPlayer go sobie stamtąd odtwarza. Czyli jedyna logiczna konkluzja jaka mi się nasuwa, to że QT7 jakoś, zupełnie nie mam pomysłu jak z periana pobiera bezpośrednio strumień H.264 i go dekoduje samemu (a raczej kopuje do GPU), perianowi zostawiając tylko dźwięk i obsługę kontenera. Może gdzieś go sobie QT zbuforował w takiem razie? Reset kompa i jeszcze raz wszystkie benchmarki — dalej tak samo. Przy QT7 procek się w ogóle nie poci, przy reszcie playerów (VLC, Movist + engine ffmpeg, Movist + engine QT, MPlayer i QuickTime Player X) umiera z wycieńczenia. Czyli nie trzeba konwertować kontenera do natywnego dla QT, wystarczy uruchomić .mkv w stary, QT i poczekać chwilkę na zbuforowanie seekbara. To mniej o 3/4 czasu i o 10GB zajętego niepotrzebnie dysku drugą kopią filmu.

    Nigdzie nie znalazłem żadnej informacji w necie na ten temat. Wszyscy podają, że nie ma możliwości akceleracji H.264 w .mkv bez wcześniejszego skopiowania strumienia do czegoś zjadliwego dla QT natywnie. Czy ktoś ma jakieś przemyślenia na ten temat? Uprzedzając pytania — jestem pewien że przy QT7 nie ma innego procesu który to dekoduje, bo top uruchamiam z sortowaniem według CPU usage.
    www.grzegor.pl

  2. #2
    Senior Member kogoot is an unknown quantity at this point Avatar kogoot
    Zarejestrowany
    Jun 2008
    Postów
    421

    Domyślnie

    Sprawdziłem w PYM Playerze i utrzymuje się na poziomie ok. 40% (proces mplayer). Film działa płynnie.

  3. #3
    Szeryf grzegor is on a distinguished road Avatar grzegor
    Zarejestrowany
    Nov 2007
    Skąd
    Kraków, Poland
    Postów
    1,070

    Domyślnie

    Super, ale napisz jaki plik. Ten co ja mam (1080p, ~10Mbps, H.264 + DTS) w mplayerze akurat ~70-80%. Dla odmiany 1080p ze strony z trailerami Apple ma mniejszy bitrate i idzie też 40% w mplayerze.
    www.grzegor.pl

  4. #4
    Senior Member kogoot is an unknown quantity at this point Avatar kogoot
    Zarejestrowany
    Jun 2008
    Postów
    421

    Domyślnie

    Cytat Napisał grzegor Zobacz post
    Super, ale napisz jaki plik. Ten co ja mam (1080p, ~10Mbps, H.264 + DTS) w mplayerze akurat ~70-80%. Dla odmiany 1080p ze strony z trailerami Apple ma mniejszy bitrate i idzie też 40% w mplayerze.
    Moje niedopatrzenie. Film, który odtwarzałem ma 720p, Video 4,5 Mbps, H.264 i DTS.

    Tak na marginesie: jak otworzyć plik mkv w QuickTime? U mnie w ogóle "nie łyka" tego pliku.

  5. #5
    Szeryf grzegor is on a distinguished road Avatar grzegor
    Zarejestrowany
    Nov 2007
    Skąd
    Kraków, Poland
    Postów
    1,070

    Domyślnie

    Musisz mieć zainstalowanego najnowszego Periana.
    www.grzegor.pl

  6. #6
    Senior Member kogoot is an unknown quantity at this point Avatar kogoot
    Zarejestrowany
    Jun 2008
    Postów
    421

    Domyślnie

    Cytat Napisał grzegor Zobacz post
    Musisz mieć zainstalowanego najnowszego Periana.
    Mam najnowszego - wersja 1.2. Nie działa ani przeciągniecie pliku na ikonę QuickTime Playera w docku, ani próba otwarcia przez Plik -> Otwórz plik

  7. #7
    Szeryf grzegor is on a distinguished road Avatar grzegor
    Zarejestrowany
    Nov 2007
    Skąd
    Kraków, Poland
    Postów
    1,070

    Domyślnie

    Ciekawe.
    Cytat Napisał http://perian.org#detail
    Perian enables QuickTime application support for additional media:
    • File formats: AVI, DIVX, FLV, MKV, GVI, VP6, and VFW
    Zresztą u mnie zawsze to działało bez problemu.
    www.grzegor.pl

  8. #8
    Senior Member romeoad Avatar romeoad
    Zarejestrowany
    May 2006
    Skąd
    Łazienki :)
    Postów
    1,213

    Domyślnie

    Kogoot, a nie instalowałeś oprócz Periana jakichś innych codeków do DivX/XviD? Kiedyś miałem podobną sytuację i usunięcie wszystkich innych komponentów QT oprócz Periana pomogło.

  9. #9
    Senior Member kogoot is an unknown quantity at this point Avatar kogoot
    Zarejestrowany
    Jun 2008
    Postów
    421

    Domyślnie

    Cytat Napisał romeoad Zobacz post
    Kogoot, a nie instalowałeś oprócz Periana jakichś innych codeków do DivX/XviD? Kiedyś miałem podobną sytuację i usunięcie wszystkich innych komponentów QT oprócz Periana pomogło.
    Mam tylko Periana.

    W tym wątku - cocoaforge • View topic - Perian and 10.6 - znalazłem informację, że QuickTime Player X po prostu akceptuje określone rozszerzenia plików. Pomaga tu skrypt Automatora "Perian - Open in QT Player" - link dostępny w omawianym wątku. Dyskusja dotyczy niby wcześniejszej wersji Periana, ale jak wynika z jej treści - problem dotyczy formatów wideo zarejestrowanych w systemie, a nie samego Periana. Znacie rozwiązanie tego problemu, może ręczna rejestracja owego rozszerzenia?

    Update: już działa. Nie wiem czy to zasługa tego skryptu, czy tego, że uruchomiłem film przez menu kontekstowe -> Otwórz w programie -> Inne -> QuickTime Player. Teraz przeciągniecie pliku z filmem na ikonę QuickTime'a uruchamia film.
    Ostatnio edytowane przez kogoot ; 2010-02-24 o 16:56

  10. #10
    Szeryf grzegor is on a distinguished road Avatar grzegor
    Zarejestrowany
    Nov 2007
    Skąd
    Kraków, Poland
    Postów
    1,070

    Domyślnie

    Możesz spróbować skopiować z MPlayerowskiego Info.plist do tego z Quick Time X taką gałąź:


    W teorii — QT będzie zarejestrowany w systemie do obsługi mkv wtedy. Ale nie wiem czy to zadziała tak czy siak, bo przypisanie plików do programu to jedno, a to czy potrafią go otworzyć to co innego. A próbowałeś przeciągać na ikonę QTX z wduszonymi ⌥⌘? Wtedy wymuszasz otwarcie mimo braku zarejestrowanego typu. Jak nie odtworzy, to znaczy, że to nie to.
    www.grzegor.pl

+ Odpowiedz na ten temat
Strona 1 z 2 1 2 OstatniOstatni

Uprawnienia

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów