2008-10-21 4 views
31

Ich habe eine PHP/AJAX/MySQL-Chat-Anwendung. Ich möchte meiner Anwendung Video-Chat hinzufügen. Wie kann ich Live-Videostreaming für Live-Videokonferenzen/Chats in einer PHP-Anwendung erstellen? Was sind die Schlüsselbegriffe, die ich wissen muss, wenn ich ein solches System aufbauen möchte? Ist es in erster Linie eine gute Idee, PHP zu verwenden? Gibt es etwas, an das ich nicht denke? Welche anderen Sprachen kann ich verwenden, vielleicht in Verbindung mit PHP?Live-Video-Streaming mit PHP

Antwort

1

PHP/AJAX/MySQL wird nicht ausreichen, um die Live-Video-Streaming-Anwendung zu erstellen Es gibt einen ähnlichen Thread here. Es empfiehlt in erster Linie die Verwendung von Flex oder Silverlight.

4

PHP lässt Sie die Seiten Ihrer Website erstellen, aus denen Ihre Videokonferenzen und Chat-Anwendungen bestehen, aber es liefert oder streamt kein Video für Sie - PHP läuft nur auf dem Server und gibt HTML an einen Client-Browser aus .

Für das Video, das erste, was Sie brauchen, ist ein Live-Streaming-Konto mit jemandem wie akamai oder die zahlreichen anderen auf dem Gebiet. Wenn Sie dieses Konto verwenden, erhalten Sie einen Einstiegspunkt für Ihr Video, dh den Server, auf dem Sie Ihr Live-Video streamen werden.

Als nächstes wollen Sie Ihr Video zu den Browsern - Windows Media Player, Flash oder Silverlight können Sie dies erreichen - Einbetten der entsprechenden Steuerung für die gewählte Technologie in Ihre Seite (mit PHP oder was auch immer) und gegeben Adresse deines Live-Video-Feeds.

PHP (oder eine andere Skriptsprache) würde verwendet werden, um den Chat-Teil der Anwendung zu erstellen und das Ganze zusammen zu bringen (den Chat und den eingebetteten Video-Player).

Hoffe, das hilft.

19

Ich sage nicht, dass Sie PHP aufgeben müssen, aber Sie brauchen hier andere Technologien.

Beginnen wir einfach (ohne Akamai :-)) und denken über die Auswirkungen hier nach. Video, Chat, etc. - am Anfang ist es alles clientseitig. Der Benutzer hat eine Webcam, Sie möchten das Signal irgendwie greifen und es an den Server senden. Es gibt bisher kein PHP.

Ich weiß, dass Flash dies unterstützt (überprüfen Sie diese tutorial on webcams and flash), so dass Sie Flash verwenden können, um den Inhalt auf den Server zu transportieren. Ich denke, wenn Sie mit Flash bleiben, dann ist Flex (flex and webcam tutorial) wahrscheinlich eine gute Idee, um sich zu informieren.

Also das sind nur die Grundlagen, vielleicht gibt es Ihnen eine Vorstellung davon, wo Sie forschen müssen, weil dies offensichtlich nicht einen vollen Video-Chat in Ihrer App noch geben wird. Für den Anfang brauchen Sie eine Art, um die Streams aufzunehmen und wieder zu veröffentlichen sie so andere andere Leute aus dem Chat zu sehen, etc ..

Ich bin auch nicht sicher, wie viel Verkehr und Bandbreite das ist werde aber konsumieren und generell brauchst du viel mehr als eine Stackoverflow-Frage, um dieses Problem zu lösen. Am besten wäre es, eine vollständige Spezifikation Ihrer App zu erstellen und dann einige Leute einzustellen, die Ihnen beim Aufbau helfen.

HTH!

+0

Große Antwort. Wenn ich Live-TV übertragen möchte, was zu tun ist. kannst du mir vorschlagen? –

2

Bei Live-Videokonferenzen können Sie die Notwendigkeit eines Streaming-Servers nicht ignorieren.

Ja, mit Flash können Sie Videos von einer Webcam im lokalen Flash-Steuerelement anzeigen, aber das Video wird dann nicht über das Netzwerk gesendet - dafür benötigen Sie einen Streaming-Server, an den Sie es senden können.

Wenn Sie vorhaben, etwas zu bauen, ist es ratsam, darüber nachzudenken, wie du gehst, um das Video von einem sehr frühen Stadium bewirten, wie sie beeinflussen, wie Sie die Anwendung erstellen. Flash/Flex/Silverlight/Windows Media .... etc ....

1

Es gibt eine Menge von "off-the-shelf" 'Server', die in Ihrer Umgebung ausgeführt wird. Die meisten von ihnen verwenden die oben genannten Flex oder Silverlight, um das eigentliche Video selbst zu implementieren, aber ich bin mir ziemlich sicher, dass alles unter LAMP/PHP läuft.

Die Herausforderungen werden die beste Software von allem Kommissionierung, das Video, das Sie strömen zu lassen, Ihren Hosting-Anbieter zu bekommen. Verfügbar ist und (selbstverständlich, dass Streaming-Bandbreite geht es schwer ist)

0

Das gleiche Problem/Antwort here, zitiert unten

ich Sie gehe davon bedeuten, dass Sie Ihre eigenen Video Anrufe ausführen möchten, nicht einfach verlinken auf Skype oder ähnliche Anrufe. Sie haben wirklich 2 Optionen hier: hosten Sie es selbst, oder verwenden Sie eine gehostete Lösung und integrieren Sie es in Ihr Produkt.


Selbst Gehostete ----------------- Das ist chaotisch. Dies kann alles mit PHP erreicht werden, aber das ist wahrscheinlich nicht die ratsamste Lösung, da es nicht das beste Werkzeug für den Job auf allen Seiten ist. Flash ist viel mehr effizient bei a/v erfassen und transportieren auf dem Benutzerende. Sie können versuchen, dies ohne Blitz zu tun, aber Sie werden Kopfschmerzen haben. HTML5 kann Ihr Leben leichter machen, aber wenn Sie für eine maximale Kompatibilität der Aufnahme sind, Blitz ist der einfachste Weg zur Erstellung des Client zu gehen. Dann wird, wie weit als die eigentliche Server-Seite, die das Audio/Video-Relais wird, könnten Sie einen Chat-Server in PHP schreiben, aber du ist besser dran ein Open-Source-Projekt mit , wie janenz00 ‚s erwähnt von red5 , das ist bereits gebaut und Schnittstelle mit ihm über Ihren Client (wenn es nicht bereits eins). Oder Sie könnten einen Flash-Client Homebrew wie erwähnt vor und es Haken auf beiden Seiten zu einem Flash-Streaming-Server up ... oder so ist es wird kompliziert schnell, und ist jenseits meiner Kompetenz, die Ihnen mit allen bei zu helfen.


Hosted-Service ----------------- Alle in meine Empfehlung, es sei denn Sie eine lächerliche Einrichtung von vielen komplexen Servern und Fehler Punkte zu verwaltende ist einen gehosteten Dienst wie UserPlane oder ähnlich zu verwenden und alle Verarbeitungs- und technischen Arbeiten an Leute zu verkaufen, die gut darin sind, und dann sich sorgen über die Schnittstelle mit ihrer API und ihren Klienten gut erhalten integriert in Ihre Site. Sie werden ein glücklicherer Entwickler sein, wenn Sie es tun.

6

Bitte beachten Sie, dass der unten beschriebene Dienst nicht mehr als verfügbar wurde basierend auf FLV Medien (Flash)

Dieses Projekt, das die Red5, Flex und PHP für Live-Video-Streaming nutzt und Recording hat viele Funktionen

  1. Stream-Live-Video an die Zuschauer

  2. Notieren Sie die Streams von Ihrer Kamera oder anderen Videoeingabegeräten zum Server

  3. Sehen Sie sich die aufgezeichneten Streams und Dateien an und stellen Sie den Frame, den Sie für das Video anzeigen möchten, in Miniaturansicht.

  4. Laden Sie die Videos von Ihrem Computer hoch und konvertieren Sie sie in FLV, die mit Red5 gestreamt werden können.

  5. Wählen Sie aus beliebigen Auflösungen

  6. Kann

  7. Jede Website Benutzer ihre Videos ein separates Verzeichnis für alle Skripts gesteckt werden zum Speichern haben können und Thumbnails verwenden Link http://code.google.com/p/red5-flex-streamer/

3

Ein normales PHP-Skript auf einem Standard-Web-Host kann nur HTML-Seiten für HTTP-Anfragen erzeugen, nicht kontinuierliches Live-Video-Streaming. Für Live-Video-Streaming ist eine zusätzliche Technologie erforderlich. Normalerweise ist Flash die beste Wahl, die in den meisten Browsern funktioniert. Es kann auch auf Handys funktionieren, indem Air-basierte Clients (mobile Apps) erstellt werden oder ein Stream als HLS (HTTP Live Streaming) bereitgestellt wird.

Sie müssen vor allem zwei Arten von Hosting (auf demselben Server sein kann): 1. Web-Hosting (mit PHP) 2. rtmp Stream-Hosting (Red5, Wowza, Adobe ..) Detaillierte Anforderungen an ein solches Projekt (einschließlich eines Diagramms) sind verfügbar unter http://www.videowhisper.com/?p=Requirements.

Komplettlösung besteht aus 3 Teilen: 1. Flash-basierte Anwendung verwendet, um Streaming-Server zu verbinden und Live- 2. RTMP serverseitige Anwendung (in der Regel eine Standardkonfiguration) 3. PHP-Skripte streamen die Anwendung mit dem Rest der Website integrieren (indem Parameter wie erforderlich übergeben werden)