Strona 1 z 1

Optimizing codecs

: 20 sty 2012, 10:51
autor: nivwusquorum
Hi,

Recently I saw that that hd movies are sometimes lagging when played on my computer. I decided I will try to optimize video codecs (parallelize if not already parallel/try to change some floating point operations to integer if possible etc.), the problem is I don't really know which codec's code to look at. Because mkv files is like a container, right? Can it contain video coded with arbitrary codec inside? If so which one is most common?

Thanks for any help!

Re: Optimizing codecs

: 20 sty 2012, 23:32
autor: [r4]
Yup, Matroska is a container format indeed. I guess you'd need to take a closer look at h.264 or AVC codecs.

By the way, why won't you utilize vdpau or UVC? And why is this post in English?

Re: Optimizing codecs

: 21 sty 2012, 00:08
autor: nivwusquorum
Hahah! Popierniczylo mi sie z ubuntu.com, przepraszam.

TO vdpau wyglada bardzo ciekawie, ale jakos nie widac zeby duzo osob tego uzywalo. Jest jakis haczyk?

Re: Optimizing codecs

: 21 sty 2012, 00:26
autor: [r4]
vdpau to mechanizm sprzętowego dekodowania materiału wideo, zwykle h.264 właśnie, z użyciem GPU (tu: Nvidii). Znacznie odciąża to procesor główny -- do tego stopnia, że można filmy HD obejrzeć z użyciem wątpliwej mocy netbooka.

Re: Optimizing codecs

: 21 sty 2012, 00:44
autor: nivwusquorum
Więc to działa tylko na CUDA czy na kartach ATI Radeon tez pojdzie?

Re: Optimizing codecs

: 21 sty 2012, 00:47
autor: [r4]
Dla Radeona to właśnie UVC. Ale nie używałem nigdy, więc będziesz musiał poszukać, jak to skonfigurować (i dla jakich kart konkretnie).

Re: Optimizing codecs

: 21 sty 2012, 00:56
autor: luzakwielki
nivwusquorum pisze:Więc to działa tylko na CUDA czy na kartach ATI Radeon tez pojdzie?
Vdpau nie ma nic wspólnego z CUDA - to osobne API do sprzętowych dekoderów (nie jednostek shaderów).
Vdpau to api to api Nvidii do wspierania sprzętowego PureVideo, XvBA to api od AMD do wspierania UVD, a jest jeszcze trzecie rozwiązanie VA od Intela do ich kart.

Najważniejsze jednak jest to, że backend dla libVA od intela działa z otwartymi sterami do S3, Intela oraz Nvidii i AMD, oraz z zamkniętymi sterami Nvidii i AMD (obie firmy mają backendy i odwołując się do libVA korzystasz pośrednio z Vdpau i XvBA).

Re: Optimizing codecs

: 21 sty 2012, 15:37
autor: nivwusquorum
No ok, przeczytalem sobie troche na temat libVA na wiki, ale tam twierdza, ze nie ma wsparcia dla ATI ( http://en.wikipedia.org/wiki/Video_Acceleration_API ).

A tak poza tym hmm wszystkie te API wydają się dość zbyt seksowne, żeby nie były już w ogólnym użyciu. Nie jest tak, że np. x264 już ich używa?

Re: Optimizing codecs

: 21 sty 2012, 17:15
autor: luzakwielki
nivwusquorum pisze:No ok, przeczytalem sobie troche na temat libVA na wiki, ale tam twierdza, ze nie ma wsparcia dla ATI ( http://en.wikipedia.org/wiki/Video_Acceleration_API ).

A tak poza tym hmm wszystkie te API wydają się dość zbyt seksowne, żeby nie były już w ogólnym użyciu. Nie jest tak, że np. x264 już ich używa?
libVA działa z zamknietymi sterami (musisz zainstalować backend xvba-video tak jak na Nvidii vdpau-video)
Są w powszechnym użyciu - Mplayer i FFMPEG ma wsparcie dla VDPAU (i dla VA-API od twórców backendów dla AMD i Nvidii), VLC również, Mplayer 2 poprawia dodatkowo wsparcie dla vdpau, Gstreamer ma wsparcie dla VA-API i VDPAU (i wszystkie programy korzystające z Gstreamer dzięki temu), xine-lib ma wsparcie dla Vdpau, Adobe Flash Player korzysta z Vdpau... ogólnie dziś mało co nie korzysta z dekoderów video (chociaż nie wiem jak tam w Ubuntu - może paczki są budowane bez wsparcia... ja ubuntu nie używam).

x264 nie korzysta ze sprzętowego dekodowania bo to dekoder softwareowy - za to ze sprzętowego dekodowania mogą korzystać frameworki multimedialne jak Gstreamer, xine-lib, ffmpeg (i to robią) i jeśli jest dostępne sprzętowe dekodowanie to używają sprzętowego, a jeśli nie to softwareowego np. x264.

Re: Optimizing codecs

: 21 sty 2012, 18:38
autor: nivwusquorum
luzakwielki pisze: libVA działa z zamknietymi sterami (musisz zainstalować backend xvba-video tak jak na Nvidii vdpau-video)
Ok, to brzmi niezle :)
Czy instalowanie xvba-video wykracza poza zainstalowanie pakietów xbmc i xbmc-bin ? Mogę jakoś sprawdzić czy np. mplayer korzysta z xbmc?

Re: Optimizing codecs

: 21 sty 2012, 19:22
autor: luzakwielki
nivwusquorum pisze:Czy instalowanie xvba-video wykracza poza zainstalowanie pakietów xbmc i xbmc-bin ? Mogę jakoś sprawdzić czy np. mplayer korzysta z xbmc?
xvba-video to zupełnie inny pakiet (xbmc to po prostu aplikacja odtwarzająca filmy). To trochę tak jakbyś pytał czy instalowanie sterowników do karty graficznej wykracza poza zainstalowanie gry.
Wpisać w konsoli "mplayer -vo help" i zobaczysz co obsługuje dany build (w zależności jak kompilował to koleś od paczek dla ubuntu będziesz miał vdpau, vaapi, oba lub żadne z nich - ofc możesz sobie sam zbudować wersję z obsługą jeśli ubuntu standardowo jest budowany bez obsługi tych api), lub użyj np. smplayer i zobaczyć to samo w ustawieniach (razem z mplayer2 będziesz miał dodatkowe ustawienia nawet z jakimi kodekami używać sprzętowego, a z jakimi programowego).
http://img577.imageshack.us/img577/253/zrzut12.jpg

Re: Optimizing codecs

: 21 sty 2012, 20:17
autor: nivwusquorum
luzakwielki pisze: xvba-video to zupełnie inny pakiet (xbmc to po prostu aplikacja odtwarzająca filmy). To trochę tak jakbyś pytał czy instalowanie sterowników do karty graficznej wykracza poza zainstalowanie gry.
Sorki, najwyraźniej źle przeczytałem tutrial który znalazłem.

Okazuje się że mój build mplayera nie obsługuje vaapi, co oznacza, że prawdopodobnie nie wykorzystuje mojego Radeona w pełni.

Nie mniej jednak po tym co napisałeś zainteresowałem się na temat mplayer2. I tu rodzi sie nastepne pytanie - jak sprawdzic czy mplayer2 obsluguje vaapi? Probowalem znalezc odpowiednia opcje w manulu, ale jej nie widzie. Czy po prostu musze sobie sam zbudowac mplayer2 zeby miec pewnosc? Poza tym istnieje juz jakies gui do mplayera2?

Z góry dzięki!

Re: Optimizing codecs

: 21 sty 2012, 20:48
autor: luzakwielki
nivwusquorum pisze:Czy po prostu musze sobie sam zbudowac mplayer2 zeby miec pewnosc? Poza tym istnieje juz jakies gui do mplayera2?
Mplayer2 obsługuje tylko vaapi, ale zwykły możesz mieć z vaapi - musisz zainstalować:
VA-API http://www.splitted-desktop.com/static/libva/libva/
Xvba-video http://www.splitted-desktop.com/static/ ... vba-video/
Mplayer z obsługą vaapi http://www.splitted-desktop.com/static/ ... yer-vaapi/
Masz tam źródła i katalog z paczkami