Videostream Socket



  • Hallo,

    ich habe eine generelle Frage, wie ihr es machen würdet:

    Ich möchte mit OpenCV einen KameraStream einlesen und diesen über einen Socket o.ä. versenden.

    Jetzt habe ich gerechnet:
    Ein Frame mit der Maße: 640x360 *3 = 691200, was 675kb entspricht. Rechnet man dieses hoch bei einer Framerate von 12 fps wären das 8100kb/s = 64800kbit/s, was für eine Durchschnittliche WLAN übertragung zu viel ist.

    Wie würdet ihr es besser machen? Die OpenCV jpg Komprimierung nutzen?

    Danke 🙂



  • Kommt auch etwas drauf an, was du damit machen möchtest.
    Sollen die Daten noch irgendwie "verarbeitet" werden?
    Wie leistungsstark ist der Rechner?

    Ansonsten: Ja, komprimieren.
    Entweder Einzelbilder mit jpeg oder (verlustfrei) png oder halt gleich einen Videocodec verwenden 😉



  • Wie haben 2x3GHZ Dualcore CPU, allerdings sollte es am besten Latenzfrei laufen, wodurch ein Videocodec, besonders h264 ausscheidet oder

    Auf das Video/Frame soll jeweils noch ein Text geschrieben werden, mit Infos etc.

    Wir funktioniert eig MJPG? Sind das auch komprimierte JPGs?


  • Mod

    Waishon schrieb:

    Wie haben 2x3GHZ Dualcore CPU, allerdings sollte es am besten Latenzfrei laufen, wodurch ein Videocodec, besonders h264 ausscheidet oder

    Was soll denn "Latenzfrei" heißen? Irgendwelche Latenzen hast du immer, mit egal welcher Technik. Du kannst höchstens sagen, welche Latenz noch akzeptabel ist.

    Wir funktioniert eig MJPG? Sind das auch komprimierte JPGs?

    MJPG ist einfach eine Folge einzelner JPG.



  • @SeppJ

    Natürlich hat man immer eine Latenz 🙂 Da wir es zum Steuern nutzen wollen, sollte es nicht mehr als 200-300ms sein.

    Was mich nur wundert, dass mjpg_streamer bei 1280x720 15fps max 1Mbits benötigt.
    Liegt das an der starken Komprimierung? Unterstützt OpenCV sowas ohne Probleme, um sowas über ein UDP Socket zu versenden, eig. ja schon, oder?


  • Mod

    Waishon schrieb:

    Was mich nur wundert, dass mjpg_streamer bei 1280x720 15fps max 1Mbits benötigt.
    Liegt das an der starken Komprimierung?

    An was sonst? Magie?

    Wobei ich mich frage, wie du auf ein Maximum von 1 MBit/s kommst. Wenn man will, kann man die Kompressionsrate schließlich beliebig klein machen. Ob das ab einem gewissen Punkt noch einen sichtbaren Effekt hat, ist eine andere Frage, aber wenn man will kann ein JPEG auch genau so groß werden wie ein unkomprimiertes Bild.

    Unterstützt OpenCV sowas ohne Probleme, um sowas über ein UDP Socket zu versenden, eig. ja schon, oder?

    Was meinst du mit sowas? Ich sehe da mehrere unabhängige Probleme:
    Kann OpenCV dir Bilddaten als JPEG liefern? Ja.
    Kann man mit UDP-Sockets Daten versenden? Ja.
    Kannst du daraus eine Gesamtlösung machen, bei der Bilder als JPEG über UDP versendet werden? Hoffentlich :p
    Ist das ganze eine gute Lösung? Vielleicht. Es gibt ja auch spezielle Videostreamingprotokolle. Es klingt gerade so, als würdest du das Rad neu erfinden.



  • Ok vielen Dank für die Hilfe.

    Habe das hier entdeckt: http://answers.opencv.org/question/6976/display-iplimage-in-webbrowsers/

    Ich denke, dass das genau das ist was ich will 😃


Anmelden zum Antworten