Monitoring: OrangePi One vs Odroid C2

Obecnie na działce do OrangePi mam podpięte dwie kamery z rozdzielczością 720p wysyłające po RTSP strumienie H.264. Z użyciem pakietów motion i motioneye jestem w stanie wyciągnąć transmisję z kamer z mocno zmiennym framerate’em, gdzie szczytowo motioneye pokazuje mi 10 i 7 FPS. Jako że wynik jest mocno niezadowalający, stwierdziłem że pora na modernizację sprzętu. Wybór padł na Odroida C2, dla odmiany z zainstalowanym DietPi.

Benchmark

Motion oparty jest o ffmpeg, dlatego zrobiłem sobie mały benchmark z dwuminutowego kawałka nagrania. Testowa komenda wygląda tak:

time ffmpeg -i nagranie.mp4 -r 8 -vf scale=640:-1 -c:v libx264 -preset medium -b:v 250k -c:a copy /tmp/output.mkv

OrangePi One dało przy tym wynik:

real 2m12.845s
user 6m18.236s
sys 0m1.141s

Z kolei Odroid C2 przerobił film z prędkością około 12fps (1,33x):

real 1m33.025s
user 5m39.140s
sys 0m1.340s

Jak widać wyniki nie powalają. Jednak okazuje się, że C2 dobrze sobie rodzi z kodowaniem do MPEG4. Wykorzystałem polecenie:

time ffmpeg -i nagranie.mp4 -r 8 -vf scale=640:-1 -c:v mpeg4 -preset medium -b:v 250k -c:a copy /tmp/output.mp4

O ile wyjściowy film H.264 ma rozmiar 39MB, przy MPEG4 jest już to trochę więcej, bo 42MB. Otrzymane czasy (26fps, 3,29x):

real 0m38.174s
user 1m31.070s
sys 0m0.860s

I na koniec ładny obrazek porównawczy:

Jak widać, różnica w czasach przy użyciu kompresji H.264 nie jest jakaś gigantyczna – na obu platformach popularne dystrybucje linuksa nie posiadają sprzętowych enkoderów. Jest jednak małe światło nadziei dla Odroida – rok temu powstała biblioteka c2_vpcodec, pozwalająca na kodowanie video, jednak nie współpracująca wprost z ffmpeg. Poczekamy na rozwój wydarzeń – być może z tego SBC jeszcze będzie przyzwoity rejestrator.

Aktualizacja 7.05.2019

Dzisiaj zauważyłem, że apt zaciągnął mi na domowym OrangePi nową wersję ffdshow. Stwierdziłem, że pora ponowić testy. Dla x264 otrzymałem:

real 1m41.575s
user 6m22.768s
sys 0m2.580s 

Zaś dla testu mp4:

real    1m15.338s
user    3m3.367
sys     0m1.247s

Naniosłem wyniki na wykres widoczny poniżej. Jak widać wydajność wzrosła, lecz wciąż nie dogoniła tej z Odroida. Być może wraz z upływem czasu sytuacja się jeszcze bardziej poprawi. 😉

This entry was posted in Monitoring and tagged , , , , , , , , , . Bookmark the permalink.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.