Skocz do zawartości

Filmy 1080p na nboksie


mickey

Rekomendowane odpowiedzi

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.

Odnośnik do komentarza
Udostępnij na innych stronach

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?

Odnośnik do komentarza
Udostępnij na innych stronach

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. ;)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 miesiące temu...

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.

 

Odnośnik do komentarza
Udostępnij na innych stronach

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.

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...