Jump to content

Filmy 1080p na nboksie


Recommended Posts

Podobno najwygodniej ogląda mi się filmy na TV a w moim odczuciu praktyczne możliwości odtworzenia mp4 czy mkv na nboksie to 720p (używając E3 z multiframework). Z drugiej strony odtworzenie materiałów 1080 z TV, także tych nagranych, nie stanowi dla nboksa problemu, więc dlaczego problemem jest odtworzenie filmu 1080p na tym sprzęcie? Odpowiedź jest dość prosta: Przy odtwarzaniu TV obciążone są jednostki ST231, które specjalizują się w dekodowaniu strumieni wideo a procesor główny przez to ma wolne moce obliczeniowe. Kiedy odpalamy MKV, MP4 czy też inne AVI, to większość pracy spada na procesor główny ST40, który mówiąc krótko "nie daje rady". GST przy odtwarzaniu takich plików praktycznie całą robotę zrzuca na ST40. Trochę lepiej jest z EPlayer3, ale ten i tak dość mocno obciąża ST40 przy próbie odtworzenia materiału 1080p. Nasuwa się pytanie: To dlaczego przy odtwarzaniu MKV nie jest używany ST231? A nie wiem... Widać, to nie takie proste, jeżeli nie zostało to na razie zrobione.

 

Oki, tyle tytułem przydługiego wstępu. Tak sobie kiedyś pomyślałem: No jak TSy nie stanowią problemu dla nboksa (taki jest format nagrań), to może dałoby się MKV czy MP4 przerobić na TS. No i spróbowałem: film 1080p w formacie MKV przerobiony na 1080p w formacie TS odtwarza się na nboskie bez problemu, nawet odtwarzany z dysku sieciowego. Na tym mógłbym skończyć, ale jak ktoś doczytał do tego momentu, to dalej będzie łopatologiczna instrukcja jak sobie takiego TSa przygotować. Osobiście korzystałem z ffmpeg, ale może jakiś inny soft też da radę. Konwersję robię na zewnętrznej maszynie, bo nbox mógłby dostać zadyszki ... no i póki co dostępny na nim u mnie ffmpeg nie obsługuje zapisu w formacie TS (a ściślej: mpegts).

 

Jak ktoś zainteresowany to zaczynamy. Na początek trzeba by sprawdzić plik źródłowy:

ffmpeg -i plik.mkv

 

Jeżeli w wyniku znajdziemy:

Stream #0:0(eng): Video: h264

Stream #0:1(pol): Audio: ac3

 

To reszta będzie błyskawiczna. Format MPEGTS ma swoje ograniczenia, to znaczy obsługuje tylko wybrane kodeki (nie obsługuje np. XVID/DIVX), no i ST231 też ma swoje ograniczenia a dokładniej dekoduje sprzętowo MPEG-4 AVC high profile level 4.1/ MPEG-2 MP@HL, czyli w praktyce H.264 (libx264) oraz MPEG2 (mpeg2video). W przypadku audio na pewno radzi sobie z MP2 i AC3. Jakie są szczegółowe ograniczenia tych formatów i czy można dodać coś jeszcze do tej krótkiej listy tego nie wiem. Gdyby ktoś miał bardziej szczegółowe dane, to proszę napisać :) Tyle dygresji, wracamy do konkretów. Jeżeli plik wejściowy jest już zakodowany w wymaganym formacie, to konwersja polega na przekopiowaniu strumieni, bez kodowania, do nowego formatu:

 

ffmpeg -i plik.mkv -c:v copy -c:a copy -f mpegts plik.ts

 

No i na ekranie mamy:

 

[mpegts @ 0x80945aa00] H.264 bitstream malformed, no startcode found, use the video bitstream filter 'h264_mp4toannexb' to fix it ('-bsf:v h264_mp4toannexb' option with ffmpeg)

 

Nie wiem czy tak jest zawsze (ja mam tak zawsze), ale nie zastanawiając się wiele stosujemy się do zaleceń i piszemy:

 

ffmpeg -i plik.mkv -c:v copy -bsf:v h264_mp4toannexb -c:a copy -f mpegts plik.ts

 

Na mojej maszynie trwa to kilka sekund (fps=10659) i ograniczeniem właściwie jest chyba szybkość dysku.

 

No dobra, a co jeżeli plik wejściowy jest w formacie, którego nbox nie potrafi sprzętowo przetworzyć? Wtedy szukamy innego źródła, albo trzeba poświęcić trochę czasu na przekodowanie strumieni. Kiedy to jest tylko dźwięk, to dalej jest szybko:

 

ffmpeg -i plik.mp4 -c:v copy -bsf:v h264_mp4toannexb -c:a ac3 -f mpegts plik.ts

 

U mnie poszło z szybkością fps=5150 a było w źródle:

Stream #0:0(und): Video: h264

Stream #0:1(und): Audio: aac

 

Można też puścić zupełnie prosto:

ffmpeg -i plik.avi -f mpegts plik.ts

 

Ale wtedy robi mpeg2video/mp2 z dość znośną szybkością rzędu fps=234, ale domyślne ustawienia jakości raczej nie będą zadowalające. Można spróbować:

ffmpeg -i plik.mkv -c:v libx264 -crf 20 -c:a ac3 -f mpegts plik.ts

 

Używam crf=20 dla 1080, 18 dla 720 i 16 dla mniejszych. Niestety szybkość spada do fps= 27.

 

Szybciej jest jednak do MPEG2, ale plik będzie raczej duży (dwa razy większy niż x264), jeżeli jakość ma pozostać na znośnym poziomie jakościowym:

ffmpeg -i plik.mkv -c:v mpeg2video -qscale:v 4 -c:a mp2 -f mpegts plik.ts

 

Jakość (i w efekcie bitrate) reguluje tutaj "quantizer scale" (skala kwantyzacji?). Dostępny zakres to 2-31, ale jeżeli celem jest przyzwoita jakość to właściwie nie należy wychodzić poza zakres 2-4. Szybkość kompresji - ok. 150-200 fps, zależnie od wspomnianego współczynnika. Wyraźnie szybciej niż x264, ale i tak "chwilę" to trwa.

Link to comment
Share on other sites

Przepływność Video.

Nie wiem jak jest obecnie, ale jak miałem nBox to testy z Video Bitrate powyżej 8Mbp/s to była już dla niego masakra. o ścieżce AUDIO z DTS - zapomnieć.

Ale może się coś zmieniło. Nie używam tunera do tego ;)

Link to comment
Share on other sites

Możesz rozwinąć stwierdzenie "jak wiadomo praktycznie możliwości odtworzenia mp4 czy mkv na nboksie to 720p"?

 

Słuszna uwaga. Używanie stwierdzeń typu "jak wiadomo" jest wysoce niezalecene i kończy się rekcjami jak powyżej ;) Zmieniłem to sformułowanie na inne :)

 

A próbując jednak odpowiedzieć na pytanie: Oglądając dłuższy materiał z dysku sieciowego razem z napisami, to w miarę komfortowo pod OpenPLi (FreePlayer lub MediaPlayer2) udaje mi się obejrzeć 720p. Kiedy jeszcze w tym czasie coś się nagrywa ... to albo trzeba przerwać nagranie albo obejrzeć w późniejszym terminie. Przy odtwarzaniu TSa bywa problem przy starcie odtwarzania, ale potem już działa bez problemów.

 

Jeszcze pytanie ode mnie w związku z tym:

Pytam, bo zaciekawiony powyższym tekstem postanowiłem sprawdzić, jak materiały 1080p zachowują się na Arivie@Link200, która, ma taki sam procesor jak nbox.

Pobrałem parę sampli 1080p z inetu korzystając z wiadomo czego i nie widzę w ich odtwarzaniu niczego złego. Może nie wiem na co mam zwrócić uwagę?

Sprawdzane pod openpli czy pod neutrino?

Link to comment
Share on other sites

Pytam, bo zaciekawiony powyższym tekstem postanowiłem sprawdzić, jak materiały 1080p zachowują się na Arivie@Link200, która, ma taki sam procesor jak nbox.

Pobrałem parę sampli 1080p z inetu korzystając z wiadomo czego i nie widzę w ich odtwarzaniu niczego złego. Może nie wiem na co mam zwrócić uwagę?

To samo jest ze skórkami FullHD, na Arivie jest a na nboxie nie m nic, ciemno. Widocznie nBox jest za zbyt skompilowany sam w sobie. ;)

Link to comment
Share on other sites

  • 2 months later...

Ciekawym jest fakt, że na tym forum usuwa się posty bez podania przyczyny.

 

Ale jeszcze raz zdementuje bzdury wynikające prawdopodobnie z braku wiedzy kolegi mickey[/member].

 

[...]To dlaczego przy odtwarzaniu MKV nie jest używany ST231[...]

 

Jest to nieprawda. Czy, to ffmpeg (libavformat), czy gstreamer to wideo dekodowane jest zawsze przez procesor DSP.

Rola ffmpeg jak i gstreamer w tym przypadku kończy się na DEMILTIPLEKSACJI. Czyli wyciągania ramek audio, wideo z kontenera.

 

ST231 też ma swoje ograniczenia a dokładniej dekoduje sprzętowo MPEG-4 AVC high profile level 4.1/ MPEG-2 MP@HL, czyli w praktyce H.264 (libx264) oraz MPEG2 (mpeg2video)

 

DSP ma swoje ograniczenia i owszem wynikające z wydajności. Ale to co może zdekodować procek DSP zależy od jego firmwareu.

I kodek XVID jest na liście, przynajmniej w tym firmwarze który mam ja. Procek DSP mógłby dekodować naprawdę sporo kodeków, ale trzeba by mieć firmware z obsługą ich wszystkich.

 

Drogi kolego mickey[/member] naprawdę myślałeś, że wideo w nBox ma szanse być dekodowane softwarowo z wykorzystaniem CPU tak aby dało się to oglądać?

 

Powiem Ci jesteś człowiekiem dużej wiary, ale zamiast usuwać posty, które rzucaj odrobinę światła na to jak to wszystko działa, bo jak widać po Twoim pierwszym poście z tą wiedzą jest po prostu kiepsko, to zacznij czytać.

 

P.S Z moich obserwacji wynika, że często tak bywa, że jak ktoś zgrywa eksperta i przekazuje jakieś informacje używając górnolotnych sformułowań, że próbuje on tym zamaskować brak wiedzy.

 

Jeżeli nie potrafisz czegoś prosto wyjaśnić - to znaczy, że niewystarczająco to rozumiesz.

 

Link to comment
Share on other sites

Akurat chodziło mi tu o sprostowanie tego co pisał mickey[/member] odnośnie dekodowania wideo.

 

Proponuje też, żebyście przyjrzeli się kodowi libeplayer3 bo od pewnej wersji wszystkie kodeki audio dekodował softwareowo do PCM i dopiero PCM było przetwarzane przez procesor DSP.

A to obciążało CPU w znacznej mierze i nBox miał zadyszkę.

W exteplayer3 można wybrać, który kodek audio ma być dedykowany softwarowo.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...