Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

cojo2015

Alter Hase

  • »cojo2015« ist der Autor dieses Themas

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

1

15.05.2016, 10:52

[C++ | SFML] Wie das Videosignal der Webcam wiedergeben?

Hallo,
mein Freund und ich haben sich für 30 Tage einen Server gemietet. Wir wollten einen Chat zwischen zwei Raspberry Pi hinbekommen - was wir geschafft haben. Danach wollten wir mittels des Chat seinen Roboterarm steuern - was auch beklappt hat. Nun wollen wir aber das mit dem Roboterarm in SFML hinbekommen, am besten mit Videoübertragung und nicht via Skype ^^ . Aber daran scheitern wir leider...

Hier nochmal eine kleine Zusammenfassung:
Client (PC):
--------------
- einzelne Buchstaben senden, um den Roborterarm zu bewegen
- Kamerasignal empfangen und wiedergeben

Raspberry Pi:
-------------
- einzelne Buchstaben empfangen und an den Roboterarm senden
- Kamerasignal an den Client senden


Unser bisheriger Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <SFML\Network.hpp>
#include <iostream>
#include <thread>
#include <string>

sf::TcpSocket tcp_socket;
sf::IpAddress address("82.211.44.103");
const int port = 5000;

// RECEIVE_DATA //
//////////////////
void receive_data()
{
    std::string in;
    std::size_t received;
    
    while (1)
    {
        if (tcp_socket.receive(&in, 128, received) == sf::Socket::Done)
        {
            std::cout << "received: " << in << "\n";
        }
    }
}

// MAIN //
//////////
int main()
{
    // declare a thread and start it
    std::thread thread(receive_data);

    sf::Socket::Status status = tcp_socket.connect(address, port);
    char out[128] = "";

    // connect to server
    if (status != sf::Socket::Done)
    {
        std::cerr << "Failed to connect to the Server!";
    }
    else
    {
        //if (thread.joinable())
        //  thread.join();
        while (1)
        {
            std::cout << "<You> ";
            std::cin >> out;
            tcp_socket.send(out, sizeof(out));
        }
    }

    return 0;
}


Beim googlen bin ich auf "libVCL" gestoßen. Wäre das eine Möglichkeit oder gibt es andere?

Vielen Dank im Voraus :)

PS: Ich hoffe, dass die Frage hier richtig einsortiert ist, wenn nicht, dann entschuldige ich mich :pillepalle:

2

15.05.2016, 10:56

OpenCV ist zurecht unheimlich beliebt für solche Sachen.

MfG
Check

3

15.05.2016, 23:29

Da kann ich nur zustimmen, ich arbeite aktuell mit OpenCV und da sind es effektiv 5 Zeilen Code bis man ein Videosignal einer Webcam hat

cojo2015

Alter Hase

  • »cojo2015« ist der Autor dieses Themas

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

4

16.05.2016, 09:16

Schon mal vielen Dank für die Antworten :thumbsup: Ich schaue es mir im laufe des Tages mal an

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

16.05.2016, 09:19

Allerdings bekommt man von OpenCV wirklich nur das Videobild, keinen Ton! Wenn du auch noch Voice übertragen willst, musst du das anders bewerkstelligen.

cojo2015

Alter Hase

  • »cojo2015« ist der Autor dieses Themas

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

6

16.05.2016, 10:55

Allerdings bekommt man von OpenCV wirklich nur das Videobild, keinen Ton! Wenn du auch noch Voice übertragen willst, musst du das anders bewerkstelligen.

Nein, wir wollen nur das Bild übertragen. Den Rest erledigt Skype / TS^^

Werbeanzeige