Wie konfiguriere ich crtmpserver für Live-Streaming?

Das möchte ich tun.

  1. An einen Linux-Laptop ist eine Webcam angeschlossen, die Video und Audio in Echtzeit aufnimmt
  2. Der Laptop sendet den Live-Video- und Audiostream über RTSP oder RTMP oder ähnliches an einen anderen Linux-Server, der eine bessere Internetverbindung als der Laptop hat
  3. Alle Clients, die den Stream sehen möchten, verbinden sich mit einer Software wie VLC mit dem Linux-Server

Die Schritte 1 und 3 sind kein Problem, ich glaube, ich weiß, wie man sie macht. Aber:

Wie konfiguriere ich den Linux-Server in Schritt 2 so, dass er eine RTSP-Stream-Eingabe akzeptiert und sie an einer Adresse veröffentlicht, z. B. rtsp://my.ip.address/stream.mp4, die von jedem in VLC geöffnet werden kann Computer? Ist crtmpserver das richtige Tool dafür? Und wie konfiguriere ich es? Ich habe ungefähr zehn verschiedene Webseiten gelesen, die einige Beispielkonfigurationen für crtmpserver erklären, aber nicht wirklich gefunden, wonach ich gesucht habe.

Antworten (5)

Ich bin mir ziemlich sicher, dass Sie vlc sowohl zum Streamen als auch zum Restreamen verwenden können. Ich verwende vlc, um alle meine Fernsehkanäle auf alle meine Geräte zu streamen (rtsp, mp4, html5).

Suchen Sie nach vlc media player streaming like

https://www.videolan.org/doc/streaming-howto/en/ch04.html

Wenn Sie nur einen einfachen RTMP-Stream möchten, können Sie sich das nginx-rtmp- Modul ansehen, das einfacher einzurichten aussieht als crtmpserver.

Nur ein allgemeiner Vorschlag: Die H.264 -Komprimierung ist etwas CPU-intensiv. Wenn Ihr Server also leistungsfähiger ist als Ihr Notebook und die Server-zu-Notebook-Verbindung gut ist, könnte es eine Idee sein, nur "einfache Frames" mit fast zu streamen keine Kodierung oder Komprimierung an den Server und lassen Sie ihn den Rest erledigen.

https://net7mma.codeplex.com hat eine Server- und Client-Implementierung, die mit VLC kompatibel ist und genau für das von Ihnen genannte Szenario erstellt wurde. Von der Webseite:

Das Ziel dieses Projekts ist es, Entwicklern die freie Bereitstellung von Medien an Kunden in weniger als 10 Codezeilen unter Verwendung von Standard-Beschwerdeprotokoll-Implementierungen zu ermöglichen. Es zielt auch darauf ab, einen wiederverwendbaren Satz von Klassen für die Arbeit mit Rtsp und Rtp/Rtcp und Sdp bereitzustellen.

Es gibt einen neuen Download-Link, wenn Sie diese Software ausprobieren möchten: https://github.com/juliusfriedman/net7mma

Es sieht so aus, als wäre es nicht besonders trivial, aber crtmpserver hat hier ein Tutorial in ihrem Wiki . Es sieht so aus, als müssten Sie eine Lua-Datei konfigurieren und dann einen neuen cmake des Servers erstellen. (So ​​sehr nicht trivial.)

Alternativ gibt es andere Server, die dies möglicherweise einfacher für Sie erledigen, z. B. Red5, und auch Adobe hat ein kostenloses Angebot, das in dieser Frage erwähnt wird .

An einen Linux-Laptop ist eine Webcam angeschlossen, die Video und Audio in Echtzeit aufnimmt

Ich verwende die ffmpeg-Version N-80213-g9511a08 und mein System ist Ubuntu 15.10

ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 -f flv -s qvga -b 750000 -ar 11025 -metadata streamName=aaa "tcp://server_ip:6666/live" 

Der Laptop sendet den Live-Video- und Audiostream über RTSP oder RTMP oder ähnliches an einen anderen Linux-Server, der eine bessere Internetverbindung als der Laptop hat

Starten Sie crtmpserver.lua

./crtmpserver/crtmpserver crtmpserver/crtmpserver.lua

Nach dem Ausführen des vorherigen Befehls wird ein eingehender Stream wie angezeigt

/home/altanai/crtmpserver/sources/thelib/src/protocols/liveflv/inboundliveflvprotocol.cpp:51 _waitForMetadata: 1 /home/altanai/crtmpserver/sources/thelib/src/netio/epoll/iohandlermanager.cpp:119 Anzahl der Handler geändert : 11->12 IOHT_TCP_CARRIER /home/altanai/crtmpserver/sources/thelib/src/protocols/liveflv/baseliveflvappprotocolhandler.cpp:45 Protokoll CTCP(16) <-> TCP(2) <-> [ILFL(3)] registriert to app flvplayback /home/altanai/crtmpserver/sources/thelib/src/application/baseclientapplication.cpp:251 Stream INLFLV(1) mit Namen 127.0.0.1_51036, der für die Anwendung flvplaybackvom Protokoll ILFL(3) registriert ist /home/altanai/crtmpserver/sources/thelib/ src/protocols/liveflv/inboundliveflvprotocol.cpp:184 Stream-Metadaten: 0.000 Lavf57.37.101 0.000 30.000 240.000 2.000 732.422 320.000

Alle Clients, die den Stream sehen möchten, verbinden sich mit einer Software wie VLC mit dem Linux-Server

ffplay -i rtmp://server_ip:1935/live/aaa