![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 23.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
Poszukujemy specjalisty do spraw streamingu do opracowania rozwiązania
służącego do udostępniania strumieni live w formacie MPEG-DASH. Ogółem potrzebne jest rozwiązanie, które będzie przetwarzało w locie strumień multimedialny z sieci do plików w formacie MPEG-DASH (profil live). Całość może być wykonana albo jako w pełni niezależna aplikacja (uruchamiana na serwerze przez nasze provisionery) albo jako biblioteka Javy, do osadzania w naszej aplikacji, ale w takim wypadku musielibyśmy uzgodnić API. Wymagany kod źródłowy rozwiązania. Wymagania funkcjonalne: - aplikacja musi obsługiwać bez problemu stream do 1080i, więc proponujemy obsługę protokołu RSTP, ale może być inny po uzgodnieniu z naszą stroną; - jesteśmy w stanie dostosować format streamu do potrzeb aplikacji, tak więc przed rozpoczęciem prac proponuję uzgodnić z nami wymagany format, uważamy, że najwygodniej będzie zastosować MP4/H.264; - adres strumienia wejściowego musi być odczytywany z parametrów wejściowych aplikacji/przekazywany przez parametr funkcji (jednocześnie będzie mogło być uruchomionych kilka instancji dla różnych strumieni wejściowych); - drugim argumentem aplikacji/funkcji powinna być ścieżka, w której generowane będą pliki pakietów MPEG-DASH oraz manifest, manifest powinien być zapisany w pliku `manifest.mpd`; - dodatkowym parametrem będzie plik z konfiguracją, który opisywać będzie docelowe formaty pakietów MPEG-DASH: - ogólna konfiguracja (na chwilę obecną przede wszystkim długość pojedynczego chunka); - video (konfigurowalny powinien być ID danego pakietu, rozdzielczość, oraz bitrate), - audio (konfigurowalny powinien być ID danego pakietu, oraz bitrate); - aplikacja powinna co zadany okres czasu generować screenshot z jednego z chunków (może to być zrobione jako osobna aplikacja uruchamiana dodatkowo). Wymagania niefunkcjonalne: - całość musi być możliwa do uruchomienia i zbudowania na platformie opartej o system Debian Wheezy; - za "dostępne" można uznać pakiety z repozytoriów Debiana (albo innych repozytoriów Apt, jeśli są udostępniane release'y dla wersji Debian Wheezy), a także repozytoriów paczek dla poszczególnych technologii: Maven (dla Javy i innych opartych o JVM), Ruby Gems (dla Ruby), pip (dla Pythona), Composer (dla PHP), npm (JavaScript), NuGet (C#), Dub (D), go get (Go) itp; - w przypadku braku paczek należy dostarczyć skrypty automatyzujące budowanie zależności z kodu źródłowego; - w przypadku języka innego niż C, C++, C#, D, Java (i inne oparte na JVM jak Groovy, Scala), Go, Python, PHP, Ruby, Smalltalk, JavaScript, prosimy o konsultację - chcemy być w stanie samodzielnie wspierać stworzone rozwiązanie; - w kodzie źródłowym jako znaków nowych linii należy używać \n (Linux line ending), kodowania UTF-8, a jako wcięć 4 spacji (nie tabulacji, ani nie dwóch). Przykładowe uruchomienie programu (w przypadku implementacji jako niezależna aplikacja): /usr/local/bin/out-stream-app --input rstp://ip:port/ --output /path/to/channel/directory/ --config streaming.conf Przykładowa zawartość pliku streaming.conf: # czas w sekundach chunkInterval = 5 thumbnailInterval = 30 video(hd-v1) { width=1920 height=1080 bitrate=4190760 } video(hd-v2) { width=1280 height=720 bitrate=2073921 } video(v3) { width=854 height=480 bitrate=869460 } audio(hd-v1) { bitrate=128000 } audio(v2) { bitrate=44100 } Format wywołań i pliku konfiguracyjnego może być inny, chodziło nam jedynie o zobrazowanie. Zainteresowanych zleceniem prosimy o przesłanie zgłoszeń wraz z przygotowaną ofertą oraz wyceną za wykonanie zlecenia na adres e-mail: polonrekrutacja@gmail.com W temacie e-maila prosimy o umieszczenie słowa „PRACA”. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 14:16 |