2010-12-15 9 views
9

Ein Medienserver ist für die Videoaufnahme aus Flash erforderlich, aber keine von ihnen scheint eine Dokumentation verfügbar zu haben (nicht einmal API-Dokumentation oder andere Quellcode-Kommentare). Ich würde crtmpserver bevorzugen, weil meine Anwendung in C++ geschrieben ist und die erfassten Daten in Echtzeit empfangen und verarbeiten muss. Red5 ist jedoch eindeutig ein viel reiferes und bekannteres Projekt, also halte ich das auch für eine Option. Adobe FMS ist zu teuer und möglicherweise schwierig in meine Anwendung zu integrieren, da Adobe solche Anwendungsfälle nie erwähnt.Flash-Webcam/Mikrofonerfassung mit Open-Source-Medienserver

Soweit ich das beurteilen kann, muss man eine "Applikation" für den Medienserver schreiben (diese wird nicht mit brauchbarem Inhalt ausgeliefert) und muss dann die Daten zur eigentlichen Verarbeitung weiterleiten. Welche Art von Daten kann eine Anwendung von dem Medienserver erwarten, ist es ein einfacher FLV-Stream oder gibt es etwas mehr (Bandbreitenverhandlungen usw.)?

Codierung der Flash-Seite ist kein Problem, es gibt viele Beispiele dafür (auch wenn sie nicht sagen, wie die Media-Server-URL aufgebaut sein sollte).

Die eigentliche Frage: Wie funktioniert die Serverseite (High Level View) und gibt es irgendwas, um einen mit der Live Capture Funktionalität zu beginnen?

Antwort

3

Vor ein paar Jahren arbeitete ich an einem E-Learning-Projekt, bei dem die Schüler eine Antwort aufzeichnen konnten (nur in meinem Fall) und der Professor konnte es hören und den Schüler benoten.

Wir betrachten Adobe FMS, Wowza Media Server (http://www.wowzamedia.com) und Red5. Am Ende wurde Red5 ausgewählt, weil es die einzige freie Open-Source-Option war, die stabil genug war, um in diesem Projekt verwendet zu werden, obwohl es zu wenig Dokumentation gab.

Wie es funktionierte, war ich am Ende eines der gepackten Beispiele zu ändern, um meine Bedürfnisse zu erfüllen und ließ den Server unter Mac OS 10.4 laufen.? Red5 hat im Prinzip den Audio-Stream gepackt und die Datei in einem Verzeichnis auf dem Computer gespeichert. Ich musste dann die Datenbank aktualisieren, um auf die Audiodatei für den Professor zu zeigen, um es spielen zu können. Beachten Sie, dass ich den Stream nicht live geändert oder neu gesendet habe. falls das Teil des Projektumfangs ist.

Wie auch immer, Red5 hatte zu dieser Zeit nicht viel von einer Gemeinschaft, so dass ich nicht in der Lage war, das, was ich gelernt hatte, in ihre Dokumentation einzubringen, aber es scheint, dass sie jetzt aktiver sind und wenn Sie gehen Mit Red5 möchte ich Sie bitten, sich an dem Projekt zu beteiligen und es zu dokumentieren.

+0

Das Speichern in Datei ist für meine Bedürfnisse völlig geeignet, da dies in Echtzeit funktionieren muss. Wenn ich aber auch noch arbeiten könnte, könnte ich den Rest wahrscheinlich selbst herausfinden (wahrscheinlich muss ich ein paar JNI für Red5 schreiben, um mit meiner App zu kommunizieren). Könnten Sie genauer sagen, wie Sie es einrichten? – Tronic

+0

Ich würde diese ausgezeichneten Ressourcen von Dennie Hoopingarner von MSU empfehlen: http://fms.denniehoopingarner.com/ und http://fms.denniehoopingarner.com/FMS_solutions.pdf – nedk

+0

Meine Lösung folgte Dennies Anweisung und es geliehen viel von ' oflaDemo', die mit Red5 kam. Eine Sache, an die ich mich erinnere, welches Spiel mir eine harte Zeit war (hauptsächlich, weil ich ein Server-Neuling war), war sicherzustellen, dass die richtigen Schreibrechte dem Ordner "Streams" gegeben wurden, in dem die aufgenommenen Dateien gespeichert wurden. – nedk

1

Sie könnten einen Blick darauf werfen, wenn haxevideo könnte für Ihre Entwicklung geeignet sein.

+1

Tut mir leid, aber ich bin wirklich nicht interessiert an einem experimentellen Server in einer obskuren Programmiersprache geschrieben. Das wäre ein Wartungs-Albtraum :) – Tronic

+0

ok ... es ist experimentell, aber ich würde nie die Sprache obskur nennen ... – TheHippo

1

Medienserver tun das normalerweise nur - dienen Medien. Versuchen Sie, konsumieren Streaming-Video in einer Flash-Anwendung? Wenn ja, sollte einer der genannten Server dafür geeignet sein.

Wenn Sie jedoch versuchen, Streaming-Video von Flash zu erfassen und zu veröffentlichen, abgesehen von Webcam-Streams, gibt es keine gute Möglichkeit, AFAIK zu tun.

Für Echtzeit-Veröffentlichung von Webcam-Streams und andere grundlegende Interaktion, können Sie den Adobe LiveCycle Collab-Service (Codename Cocomo) ausprobieren.

1

Wir verwenden jetzt crtmpserver. Ein paar Anmerkungen: Flash muss sich mit rtmp: // server verbinden: 1935/appname (wobei appname die zu verwendende Anwendung ist - diese sind auf der Serverseite konfiguriert). Selbst wenn es mehrere Teile in der URL gibt (durch Schrägstriche getrennt), wird die gesamte Kombination als Anwendungsname betrachtet (obwohl es eine Ausnahme für die Wiedergabe zu geben scheint, die es erlaubt, den FLV-Dateinamen dorthin zu setzen).

Die Aufzeichnung erfolgt durch Verbinden mit der Anwendung "flvplayback" und anschließendes Veröffentlichen mit "somename" (mit "record" oder "append"), wodurch der Server Anwendungen (/ relativ zu CWD)/flvplayback/mediaFolder/somename.flv schreibt

Sie können den Anwendungsnamen nicht ändern, aber es sieht möglicherweise besser aus, einen der Aliase von flvplayback in der URL zu verwenden (dies wirkt sich nicht auf den Ordner aus, in dem die Dateien gespeichert werden). Einer der Standardaliasnamen ist "live". Sie können also "rtmp: // server: 1935/live" als URL verwenden.