Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Kategoria: Akumulatorki / Baterie / Ładowarki

- W jakim środowisku napisać program? (Odczyt multim., modulacja danych w dźwięk

nocot 11 Sty 2017 15:06
  • #1 11 Sty 2017 15:06
    nocot
    Poziom 3  

    Witam, moim celem jest napisanie programu wysyłającego i odbierającego wąskopasmowe multimedia na poziomie karty dźwiękowej. Sygnał z karty dźwiękowej szedłby dalej, docelowo do własnego mini-nadajnika; ale póki go brak, byłby zapisywany na jakimś nośniku audio i wracałby potem do komputera. Jak mi już wiadomo, do karty dźwiękowej można wysłać tylko sygnał dźwiękowy, toteż program posługiwałby się własną modulacją bitów w dźwięk. Ostateczny cel to opracowanie programu operującego w kodeku MKV H.264 (według moich testów najlepiej wypada jakościowo przy bardzo niskim bitrate); ale póki co, chcę by operował w byle jakim, nawet własnym systemie, byle by był jakiś obraz.

    Przez najbliższe parę miesięcy będę w kiepskim stanie zdrowia, więc nauka programowania mi dużo trudniej teraz idzie, ale mimo wszystko chcę zrealizować choćby uproszczoną wersję swojego projektu w ten czas. Nie jest też tak, że bardzo się wysilam przy nauce czy coś, po prostu pewnych bardziej zawiłych rzeczy nie jestem w stanie załapać. Szukam jakiegoś możliwie prostego do nauki rozwiązania, bo nauka od podstaw DirectX 9 z c++ jest trochę ponad moje aktualne możliwości. Myślę nad jakimś językiem, który łatwo zajmuje się multimediami i nie wymaga setek linijek kodu do zbudowania prostego odtwarzacza. Myślałem nad Javą i współpracą z systemem Android, ze względu na prostotę i mobilność. Z poziomu jednego źródła byłby przesył, a np. telefon by to odbierał. Aplikacja na telefon to już byłaby możliwość zastosowania telefonu jako odbiornik radiowy bądź nawet telefonowego dyktafonu jako odbiornik fal akustycznych z zakodowanym obrazem (mimo małej praktyczności byłby ciekawy bajer ;) ) Opiszę może, co dokładnie bym chciał od programu i prosiłbym o jakąś sugestię co do doboru oprogramowania i języka programowania możliwie prostego i odpowiedniego dla mojego projektu.

    W programie powinno być zawarte:
    - Importowanie wideo bądź ruchomych obrazów
    - Odtwarzanie przesyłanego pliku w tle (opcjonalnie)
    - Pobieranie bitów z filmu (bądź pikseli) w czasie rzeczywistym, modulowanie tych bitów w sygnał dźwiękowy (według własnych patentów na modulację)
    - Wysyłanie sygnału dźwiękowego do wyjścia karty dźwiękowej (lub wyjścia audio w telefonie w przypadku aplikacji telefonowej)
    [ewentualny nadajnik / magnetofon]
    - Odbiór sygnału FM / sygnału akustycznego (z wejścia mikrofonowego[komp.]/dyktafonu[tel.]) i zdemodulowanie sygnału na strumień bitów (znowu własne patenty)
    - Odbiór strumienia bitów jako sygnał obrazu i wyświetlenie go na ekranie

    Ogółem sama modulacja, czyli zamienienie ciągu bitów na fale akustyczne wymagałaby już mojej własnej inwencji twórczej, ale też potrzebne by mi było oprogramowanie mogące kreować fale dźwiękowe.

    Nie wydaje się być to specjalnie skomplikowane, ale nie wiem, czym uda mi się to uzyskać i czy jest to możliwe do wykonania przez początkującego choćby w okrojonym zakresie. Proszę o odpowiedź, czy i w jakim środowisku można wykonać podobny program.

  • Pomocny post
    #2 11 Sty 2017 21:53
    michcior
    Poziom 27  

    nocot napisał:
    Nie wydaje się być to specjalnie skomplikowane

    Dobry żart.

    Na szczęćie jest rozwiązanie, tylko że Ci się może nie spodobać:
    GSTREAMER : https://gstreamer.freedesktop.org/
    Robi całkiem sporo z tego co napisałeś. W zasadzie to robi wszystko co można z dźwiękiem z obrazem. Ale...
    1) Linux (MacOS), niby Windows też, ale radzę trzymać się z daleka.
    2) C/C++

    GStreamer to potwór na sterydach jeśli chodzi o przetwarzanie AV. Zobacz listę pluginów:

    https://gstreamer.freedesktop.org/documentation/plugins.html

    Bierzesz taki: aasink który wywala obraz na znakowy terminal i masz podstawę do napisania "Pobieranie bitów z filmu ..."

  • #3 12 Sty 2017 08:20
    nocot
    Poziom 3  

    Dziękuję. Widzę, że program potrafi sporo, umiejętność streamowania ma wbudowaną, plus umie multipleksować, wyciągać surowe dane i przetwarzać wideo na mnóstwo sposobów, o takie coś mi chodziło. Że to c++ to nic, na poziomie konsolowym jakoś już umiem, muszę jeszcze z okienkami popracować i dopracować swoje umiejętności; gorsze dla mnie by było uczenie się DX9 pod c++. A że to Linux - od tego są wirtualne maszyny. Tylko musiałbym znaleźć jakąś łopatologiczną wersję Linuksa z instalacją nie wymagającą czytania tomu instrukcji konsolowych i bez cudów typu sudo apt get i potomnych. Widzę też opcję "Android", czyli na NDK też już można coś konkretnego z tym stworzyć, jak widzę. Dlaczego mam się trzymać z dala od wersji na Windows?

    Co do poziomu skomplikowania projektu jest to chyba pojęcie względne. Pod względem prawdziwych odtwarzaczy z setkami skryptów nie jest to tak skomplikowane. Natomiast biorąc pod uwagę to, że większość początkujących obiera za cel napisanie np. zwykłych warcabów, czy choćby gry w kółko i krzyżyk, jest to dość rozwinięty projekt jak na te standardy. W każdym razie cieszę się, że nie usłyszałem, że projekt jest niewykonalny.

  Szukaj w 4mln produktów
Przeglądaj produkty