Raspberry Pi 3 и CSI камера. Cтриминг как клиент, через netcat и mplayer

Тема в разделе "Raspberry Pi", создана пользователем Sanchez5890, 17 июн 2019.

  1. Sanchez5890

    Sanchez5890 Нерд

    То есть нету маршрута для хоста?
     
  2. Igor68

    Igor68 Гуру

    И кто имеет IP 192.168.1.198? Там никого! Верно?
     
  3. Sanchez5890

    Sanchez5890 Нерд

    Верно
     
  4. Igor68

    Igor68 Гуру

    Тоесть перебросить туда где никого нет?
     
  5. Sanchez5890

    Sanchez5890 Нерд

    А куда нам ещё? У нас же только один сервер (192.168.1.200)
     
  6. Sanchez5890

    Sanchez5890 Нерд

    И два клиента mplayer и малина
     
  7. Sanchez5890

    Sanchez5890 Нерд

    Я тупой и так и не понял, можно ли серверу брать данные с малины и просто их перегонять на mplayer?
    Вот по такой схеме:
    малина(клиент)->сервер->mplayer(клиент)
     
  8. Igor68

    Igor68 Гуру

    Так к серверу и надо подключаться. И если он сервер в локальной сети, то зачем тогда пробросы сокетов и т.п.
     
  9. Igor68

    Igor68 Гуру

    Если малина сервер, то клиенты сединяясь с ним берут данные.
     
  10. Igor68

    Igor68 Гуру

    Снимает видео малина? Если так, то по идее она сервер. Обычно источник данных сервер, а потребители клиенты.
     
  11. Sanchez5890

    Sanchez5890 Нерд

    Нет нет малина не сервер. Малина имеет камеру и снимает видеопоток. Я хочу сделать малину именно клиентом, потому что она будет вдальнейшем иметь модем, а значит будет иметь динамический ip, значит она не может быть сервером. Аккумулятор ещё поставлю. А сервер я подготовил, поставил убунту, статический ip купил, на роутере порты перебросил
     
  12. Igor68

    Igor68 Гуру

    mplayer насколько понимаю потребитель, это ему надо данные. Малина с камерой поставщик данных (сервер), если это не извращение в том что она должна кидать данные кому-то конкретно.
     
  13. Igor68

    Igor68 Гуру

    Ваша задача усложняется, потому как в любом случае требуется соединение для потока. Малина с камерой так же не может передавать в никуда при отсутствии сервера. Вам похоже придётся самостоятельно делать программу сераер-ретранслятор. Потому как малина решив подключиться к другой точке и не найдя её так же уходит в ступор.
     
  14. Sanchez5890

    Sanchez5890 Нерд

    То есть нужно будет это всё организовать используя Python?
     
  15. Sanchez5890

    Sanchez5890 Нерд

    И сделать так, если обрыв соединения, то необходимо переподключиться?
    Меня ещё одна ситуация волнует в сервере, как перенаправить данные с малины на mplayer, то есть данные с одного клиента на другой? Упростим вопрос, так можно сделать?
     
  16. Igor68

    Igor68 Гуру

    Переподключиться со стороны малины-клиента к серверу не вопрос.
     
  17. Sanchez5890

    Sanchez5890 Нерд

    Например используя конструкцию try except? Можно прописать исключения Brocken Pipe и тд?
     
  18. Sanchez5890

    Sanchez5890 Нерд

    А дальше используя connect и accept
     
  19. Sanchez5890

    Sanchez5890 Нерд

    Меня больше волнует вот эта ситуация перенаправления полученных данных на mplayer. Я знаю только одно - можно указать два клиента listen(2) :)
     
  20. Igor68

    Igor68 Гуру

    Почему два? Хотя про питон ничего не скажу. И если я правильно понял то так:
    1 - сервер с неким портом А принимает соединения и принимает данные(от камеры) в некий цикличный буфер.
    2 - сервер с неким портом Б принимает соединения и передаёт данные из негого цикличного буфера клиентам(mplayer)

    - При отсутствии клиента-камеры и наличии клиентов-плейеров данные из циклического буфера отдаются последним.
    - При отсутствии клиента-плейера и наличии клиента-камеры данные просто перезаписываются в цикличный буфер
    - При отсутствии всех просто ожидание
    - При присутствии всех нормальная работа - от камеры пллейеру через цикличный буфер

    Если бы я знал формат этого протокола для потокового видео, то сделать для меня было бы не проблема... вот только не на питоне. Покадрово на OpenCV делал уже, только mplayer этого не поймёт.

    Я правильно понял тему?