Internetseite mit eingebautem X264-Codec

  • Hallo,


    Was denkt ihr, greift der Player in diesem Fall auf den Codec auf dem Besuchers PC zu? (mit Sorenson Video 3).


    http://www.andre-pfennig.de/


    Sorenson 3 ist ziemlich als. Ich habe es wahrscheinlich mit einem QT-Player bereits auch auf meinem Notebook installiert. Deswegen kann ich nicht einschätzen, welcher Codec - und woher - beim Abspielen verwendet wird.


    Oder es ist möglich die Codecs /z.B. mit FFMPEG-Library/ auf dem Server zu speichern und die Seite so zu entwickeln, dass der "eingebaute" Player den Codec dort sucht. Die meisten "shared" Webserver basieren auf Linux. Ich könnte mir vorstellen, dass eine einfache PHP-Seite mit eingebautem Player (VLC) direkt X264-Videos abspielen könnte.


    Wäre es technisch wirklich möglich? Oder gibt es einfachere Möglichkeiten die neuesten Codecs einzusetzen?


    Gr. I.

    I7 3820 , 16GB RAM, Samsung System SSD, R9 280X Grafikkarte.
    11TB GB RAID0 Videofestplatte + 7x3TB externes RAID5 auf NAS Thecus 7700PRO
    Tandberg LTO-6 Interne Laufwerk


    Webseite | Google+ | Vimeo | Youtube |Twitter

  • Zitat


    greift der Player in diesem Fall auf den Codec auf dem Besuchers PC zu?


    Hi Istvan
    Kann ich Dir nichtmal genau sagen,habe die neuere Version vom Sorensen 3.1.
    Ist aber auch schon wieder steinalt,2003 und war damals Kostenpflichtig.
    Denke aber wenn jemand schon so alte Streams lädt soll er auch über einen guten Fundus an diversen DeCoder verfügen
    oder sich in ffdshow einarbeiten und den Haalis Parser installieren.
    Screens....so wirds erkannt an einem normalo Arbeits-PC.


    Verstehe aber Deine Frage nicht so ganz.

  • Hallo Wendo,


    danke für deine Anwort. Informativ, wie immer ... :)


    Meine Frage ist ziemlich einfach. Es gibt mittlerweile ziemlich hochwertige Codecs die in einem QT-, ASF- oder auch in einem GNU-Container zur Verfügung gestellt werden könnten. Sie sind aber noch nicht so verbreitet. Ich möchte also der Firma, der ich ab und zu Videos konvertiere, empfehlen - wenn es überhaupt geht -, dass Sie auf Ihrem Server den FFMPEG-Codec-library mit einem in der PHP-Seite integrierten Player einbauen. So würde nicht der Client-Browser/WM-Player das Video abspielen, sondern der integrierte wohl GNU-Player am Server. Das hätte den Nachteil, dass der Server - falls 30 Besucher die Videos auf einmal abspielen - möglicherweise einen schnellen Tod stirbt. Das hätte aber den Vorteil, dass die Firma - dank der schnellen FFMPEG-Entwicklung - immer mit einer guten Codec-Umgebung ausgerüstet wäre. Die Videos könnten praktisch in allen Formaten zur Verfügung gestellt werden, die von FFMPEG entcodiert werden können.


    Verstehst du wie ich meine?


    Gr. I.

    I7 3820 , 16GB RAM, Samsung System SSD, R9 280X Grafikkarte.
    11TB GB RAID0 Videofestplatte + 7x3TB externes RAID5 auf NAS Thecus 7700PRO
    Tandberg LTO-6 Interne Laufwerk


    Webseite | Google+ | Vimeo | Youtube |Twitter

  • Ja,jetzt hab ichs verstanden.


    Du weisst aber schon dass FFmpeg auch Codecs enthält, die – besonders in den USA – patentrechtlich geschützt sind ?
    MPlayer wie auch der VLC spielen diese Art schon ab.


    libavcodec enthält alle ffmpeg Audio- und Video-Encoder und -Decoder.
    Darum meinte ich im obigen Posting......ffdshow....
    Da kannst nämlich selber einstellen was der libavcodec verarbeiten darf.
    Empfehlenswert ist aber trotzdem noch einen mpeg2 Decoder zu installieren,wie z.B.Power DVD 7.x

  • Hallo Wendo,


    danke für den Tipp mit FFDSHOW. Ja, mit den Codecs ist es schon klar. Jetzt muss ich bloss den Entwickler fragen, ob er FFDSHOW in eine PHP- Umgebung implementieren kann. Die Leistungsfrage ist nach wie vor offen. Auch die GUI ist ein Thema für sich. Die fertige Anwendungen haben nicht unbedingt PHP / AJAX o. Javascript-fähige Schnittstellen. Hast du eine Idee? Wegen eines - ein Tick besseren - Codecs möchten wir ja nicht alles neu entwickeln.


    Ich muss auch fragen, ob der Provider (Arcor / 1und1???) für uns auf dem Server die benötigten Rechte gibt damit wir etwas total eigenes entwickeln. Wir brauchen praktisch volle Admin-Rechte ...


    Gr. I.

    I7 3820 , 16GB RAM, Samsung System SSD, R9 280X Grafikkarte.
    11TB GB RAID0 Videofestplatte + 7x3TB externes RAID5 auf NAS Thecus 7700PRO
    Tandberg LTO-6 Interne Laufwerk


    Webseite | Google+ | Vimeo | Youtube |Twitter

  • Ich hoffe, daß die Benutzer Java-Script unterstützen. Dann bindet man entsprechende Videos mit einem Player direkt ein. Das geht über ein EMBED-Statement. Über Java kann man auch benötigte Komponenten bzw. Versionen der Player checken. Wo sie hergeladen werden ist damit ebenfalls lösbar. Die besten Ergebnisse in Sachen Flexibilität und Komfort erzielt man heute mit Flash9 und/oder Flex2 von Adobe. Der Flash-Player ist in dem Fall eine Sand-Box, die höchste Sicherheit bei schnellster und bester Qualität gewährleistet. Dazu kann man kommerzielle (Adobe Flash, Adobe FlexBuilder2, Adobe MediaServer2), wie auch kostenlose Entwicklungstools (Adobe Flex2 SDK und Red Media Server (Das Red-Produkt ist OpenSource, aber beide sind kostenlos)) nutzen. Die Streaming-Eigenschaften von Flash sind hervorragend.

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5

  • Hallo Marcus,


    du schlägst also vor, dass man die erwähnte Sand Box (???) als Player via Java Script integriert. Die Videos selbst könnten also in Flash9/Flex2-Container (auch Codec?) auf dem Server gespeichert werden.


    Ist es so in der Lage Videos mit verschiedenen Bandbreiten zu verwalten? (Ich kenne es nur mit einem dedicierten Windows Media Server. Das wäre für die Firma aber momentan zu aufwändig.) Sollte es nicht der Fall sein, ist auch keine Problem. Man kann ein Video in 2 Versionen konvertieren (1 und 2 Mbits). Aus einem Menü können sie dann ausgewählt werden.


    Gibt es freeware Möglichkeiten HQ AVI in Flex2 / Flesh9 zu konvertieren? Ich benutze normalerweise Mediacoder. Er/es unterstützt aber nur die ältere Flash-Codecs. Wenn es was neues wäre, müsste ich also eine andere Lösung finden. Nur wegen dieses einzigen Kunden möchte ich Adobe Flash CS3 natürlich nicht kaufen.



    Wie sieht es mit dem Leistungsaufwand des Servers aus? Momentan sind die Videos in die PHP-Umgebung als Link eingebunden. Der Server streamt es aus, die Encodierung (im aktuellen Fall WMV9) erfolgt auf dem jeweiligen PC des Besuchers. Wenn die Encodierung auf dem Server stattfindet, wird der Leistungsausfwand den Server (als Computer) konzentriert betreffen. Gibt es eventuell Möglichkeiten, dass der Browsers der Besucher das Video UND den nötigen Codec vom Server nimmt, die MPEG4-Encoderung macht er aber selber. Dass wäre wohl optimal.


    Aus Leistungsgründen müsste ich sonst wohl einen dedicierten Linux-Server mieten statt der üblichen Webhosting-Dienst.


    Danke für deine Tipps.


    Gr. I.

    I7 3820 , 16GB RAM, Samsung System SSD, R9 280X Grafikkarte.
    11TB GB RAID0 Videofestplatte + 7x3TB externes RAID5 auf NAS Thecus 7700PRO
    Tandberg LTO-6 Interne Laufwerk


    Webseite | Google+ | Vimeo | Youtube |Twitter

  • Sandbox ist nur die Bezeichnung für einen sicheren Bereich, in dem Skripte, Filme und vektorbasierte Animationen abgespielt werden können, ohne daß "Viren, Trojaner oder andere Schadensverursacher" den PC befallen können. Man könnte es fast als virtuellen PC bezeichnen.


    Der Abspielplayer wäre der Adobe FlashPlayer, welcher ja kostenlos erhältlich ist. Die Codierung des Videos kann wohl auch über kostenlose Produkte geschehen. Diese kenne ich selbst aber nicht, da ich mir FlashCS3 und FlexBuilder2 zugelegt habe. Die richtige FlashPlayer-Version kann per Javascript abgetestet werden. Falls eine falsche Version oder gar keine auf dem Client vorhanden ist, kann diese ebenfalls skriptgesteuert (Javascript) z.B. von Adobe nachgeladen/installiert werden.


    Mit dem Red Media Server kenne ich mich garnicht aus. Die Info habe ich von der Video2Brain Lern-DVD "ActionScript 3.0 von Saban Ünlü". Ich selber bin erst Anfänger mit Flash/Flex, welche mit der "Programmiersprache ActionScript3" arbeiten. Ich kenne nur den kostenpflichtigen FlashMediaServer2, der als Entwicklerversion (bis 10 Verbindungen) kostenlos ist. Damit lerne ich zur Zeit, wie das ganze funktioniert. Sowohl FlashMediaServer2 als auch MicrosoftMediaServer (Windows2000Server/Windows2003Server) können streamen. Das sollte wahrscheinlich auch mit dem RedServer funktionieren (weiß ich aber nicht genau). Bei Streaming Servern wird eine Datei für mehrere Bandbreiten erzeugt, die dann vom Server entsprechend der Playereinstellungen (FlashPlayer oder WindowsMediaPlayer) abgerufen werden (1, 2 oder x MBit/s).


    Wichtig ist, zu verstehen, daß Adobe und Microsoft jeweils ihre eigenen Produkte haben, die vom anderen nicht unterstützt werden. Deswegen auch die beiden MediaServer und die beiden Player (Flash und WindowsMedia). Adobe Flash unterstützt aus meiner Sicht als einziger H.264. Man muss also unterscheiden, ob man einfach Filme veröffentlichen möchte, das können beide. Oder ob man vielleicht sogar Spiele, Filme mit aktivem Inhalt, wie Einblendungen, Vektoranimation oder 3D-Darstellungen animiert darstellen möchte. Dann ist man bei Adobe mit Flash/Flex eindeutig besser aufgehoben.


    Möglichkeiten HQ AVI in Flex2 / Flesh9 zu konvertieren?
    Das von Flash9 verarbeitbare Format ist On2 VP6. Oder die älteren Sorenson Codecs. Damit weiß der WindowsMediaplayer nichts anzufangen, wenn die Codecs nicht irgendwoher installiert worden sind.


    Wie sieht es mit dem Leistungsaufwand des Servers aus?...
    Den Absatz verstehe ich nicht so ganz. Sollen Kunden selbst Videos erstellen und auf den Server hochladen oder sollen sie sich die Videos des Servers nur anschauen können?


    Aber wie du schon schreibst, sind spezielle Server mit Streaming wahrscheinlich zu aufwändig. Gerade die Adobe-Konfiguration dürfte recht umfangreich und teuer werden oder einigermaßen kompliziert werden, da der Red Media Server nicht ganz einfach zu installieren sein soll (laut LernDVD).

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5

  • So oder ähnlich könnte eine entsprechende Seite aussehen, wobei man die Dimensionen entsprechend angeben kann. Falls kein Player da ist, wird zur Ladequelle verzweigt.


    http://www.staffel.de/Intro.html

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5

  • Danke Marcus,


    hast du es mit der von dir beschriebenen Technologie gemacht?


    - integrierter Flash Player (Video mit h264-Codec) auf dem Server, Sandbox usw?


    Wie groß ist die Bitrate? Du hast auch keinen eigenen Server, oder? Nur einen shared Server beim Provider, nehme ich mal an ...


    Wäre interessant zu wissen, wieviel Zugriffe der Server verkraftet...


    Gr. I.

    I7 3820 , 16GB RAM, Samsung System SSD, R9 280X Grafikkarte.
    11TB GB RAID0 Videofestplatte + 7x3TB externes RAID5 auf NAS Thecus 7700PRO
    Tandberg LTO-6 Interne Laufwerk


    Webseite | Google+ | Vimeo | Youtube |Twitter

  • Das Video ist mit Flash CS3 in On2 VP6 gewandelt mit einer Bitrate von 400kb/s Video und 96 kb/s Audio. Die Ladequelle ist einmal verscripted in Javascript und einmal als Objekt eingebunden (EMBED), so daß der Player von der Seite von Adobe geladen werden kann. Die Ladeadresse ist aber beliebig konfigurierbar (kannste auch auf deinen Server einstellen). Mein Server ist der normale Server, der bei T-DSL-Business mit Webpage Expert dabei ist. Wie man aber erkennen kann sind für das knappe Megabyte (fast 14 Sekunden Video) sehr kurze Ladezeiten möglich, so daß das Video direkt abspielt. Es ist als progressiver Download erstellt worden.


    Wenn man möchte, kann man mit Flex2 noch einen animierten Katalog erstellen, der verschiedene Videos nach Kriterien sortiert und die Übergänge zwischen den verschiedenen Auswahlen fließend darstellt, also ohne Seitenneuaufbau, sondern in fließenden Bewegungen.


    Bei meinem Video ist mir noch aufgefallen, daß es eigentlich viel zu groß für eine Webdarstellung ist. Es ist 720 Pixel x 576 Pixel und für eine Webauflösung von 1024x768-Seite schon zu Scrollbars an den Rändern führt. Das zeigt wiederum, daß da sogar noch Bitrate gespart werden kann, wenn man z.B. 320x240 Pixel wählt. Das ist mir zunächst nicht direkt aufgefallen, da ich meinen Monitor normalerweise mit 1680x1050 oder 1280x1024 Pixel betreibe.

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5

    Einmal editiert, zuletzt von staffel ()

  • Hallo Marcus,


    danke sehr für deinen Test. Es scheint auf jeden Fall ok zu sein.


    bei uns sind die Bitraten 1 und 2Mbits. 2Mbits bereits mit 720 x 576 oder ein Tick kleiner.


    Unser Provider ist im Österreich. Ich denke, dass es dann auch dort ok ist. Ich rede mal mit dem Entwickler der Seite, ob er für mich einen Microsite für Test einbauen könnte. Dein Testvideo und unser Material sind ja - von der Menge her - zwei unterschiedliche Kategorien. Ich bin neugierig, bis wie viel Abspielprozessen ein rückelfreies Abspielen möglich ist.


    Wenn ich dich richtig verstehe sind die Vorteile folgendes:


    - Codec-Unabhängigkeit von dem Besucher der Seite
    - relativ schnelle Ladezeit
    - gute Streaming-Eingenschaften wegen der Flash-Codec
    - mögliches Einbinden auch von freien Container-Formaten und Playern (Falls JS- oder PHP-Schnittstelle vorhanden)


    Nachteile:


    - mögliche Engpässe, wenn das Video auf einmal zu oft "heruntergeladen" wird. Die Anzahl ist wohl niedriger als wenn der Server bloß als Speicherkapazität eine Rolle spielen würde.


    Hälts du es dann für möglich, dass man mit demselben Javascript auch frei Streaming-Player einbinden kann? Neben ASF, QT, RV und Flash gibt es ja noch ätliche Container und Codec die Streaming-fähig sind.
    Ich halte zwar Flash auch nicht für schlecht, kann es aber auch andere Möglichkeiten geben.


    Gr. I.

    I7 3820 , 16GB RAM, Samsung System SSD, R9 280X Grafikkarte.
    11TB GB RAID0 Videofestplatte + 7x3TB externes RAID5 auf NAS Thecus 7700PRO
    Tandberg LTO-6 Interne Laufwerk


    Webseite | Google+ | Vimeo | Youtube |Twitter

  • zu
    (- mögliches Einbinden auch von freien Container-Formaten und Playern (Falls JS- oder PHP-Schnittstelle vorhanden)
    Neben ASF, QT, RV und Flash gibt es ja noch ätliche Container und Codec die Streaming-fähig sind.)


    Dann brauchst du gar kein Flash.
    Es reicht dann aus, wenn man für Windows ein entsprechendes Object (eine ocx Active-X-Komponente) als Player verfügbar hat. Dieses wird über seine ID z.B. Flashplayer <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"> eingebunden.


    Der größte Vorteil ist aber, daß der Flash-Player für sämtliche Systeme, wie Linux, Windows XP, Mac OS und sogar für Handy (Flash Lite3) verfügbar ist, was man bei WindowsMedia nicht behaupten kann. Handy ist wahrscheinlich weniger interessant für deine Kunden.

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5

  • Wenn man nicht eine Verfügbarkeit auf sämtlichen Betriebssystemen braucht, könnte man sogar einen Kodierungsservice anbieten, der von einem Webhoster für geschlossene Benutzergruppen zur Verfügung gestellt wird.


    Jetzt der Hammer:
    Man könnte, wenn man "Rootrechte" auf einem Webserver hat, Watchfolder beim Webhoster zur Verfügung stellen und den Procoder3 im Netzwerk betreiben. Es gibt transparente USB-Netzwerkschnittstellen, die von überall im Netzwerk betreibbar sind. Dann installierst du den Procoder3 mit dem USB Over Network auf einem Dedizierten Server. Damit sollte der Procoder3-Betrieb beim Webhoster möglich sein. Den Procoder3-USB-Key kannst du über eine Flatrate im Netzwerk zur Verfügung stellen. Du erstellst zwei Watch-Folder (1Mbit/s und 2Mbit/s) und jeder, der der geschlossenen Benutzergruppe zugehörig ist, kann über deinen Procoder3 auf dem Webserver Dateien in das Zielformat wandeln. Du brauchst dann selbst in deiner Firma gar keinen Procoder3 mehr betreiben Rechner ein/ausschalten, kodieren. Alles steht 100% online als Dienstleistung zur Verfügung. Somit könnte man sich mit ein paar Links und dem Know-How als Dienstleister im Internet selbständig machen. Man braucht lediglich in Procoder3, Datentransfervolumen und einen dedizierten Server beim Webhoster "investieren" und hätte über die Watchfolder eine ziemlich gute Serverauslastung (rund um die Uhr). Bandbreite für die Dateiübertragungen hat so ein Webhoster fraglos. Man kann sogar verschiedene Watchfolder einrichten und über Disk-Quotas Ordnergrößen festlegen, wieviel jeder Kunde an Material liefern darf. Das wär doch mal ein Geschäftsmodell :)


    Wenn sichs lohnt, kann man den Service sogar über eigene Server in seiner Firma zur Verfügung stellen.

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5

  • Hallo Marcus,


    danke für all deine Mühe. Ich habe bei dem Entwickler nachgefragt. Mal schauen wie der Preis aussieht.


    Gr. I.

    I7 3820 , 16GB RAM, Samsung System SSD, R9 280X Grafikkarte.
    11TB GB RAID0 Videofestplatte + 7x3TB externes RAID5 auf NAS Thecus 7700PRO
    Tandberg LTO-6 Interne Laufwerk


    Webseite | Google+ | Vimeo | Youtube |Twitter

  • @ Staffel,


    ganz so einfach geht es nicht, da der Procoder einige Mechanismen hat, die das für einen zuverlässigen Betrieb nicht möglich machen. ( zum Beispiel die Dateigrössenkontrolle usw ) Bei Webservern geht das vielleicht 10x gut, dann bricht er alle Vorgänge ab. Auch die Übertragungsprotokolle beim Upload sind dafür nicht ausgelegt.


    Es funktioniert aber, wenn man über Direktverbindungen arbeitet ;)

    Mit freundlichen Grüßen,


    Timo Manges

  • Timo Manges:
    Ich habe es auch noch nicht ausprobiert. Meinst du mit Direktverbindung ActiveDirectory bzw. Dateifreigabe anstatt FTP ? Ich denke das ist nur eine Sache der Konfiguration. Wenn man Rootrechte hat, dann kann man das entsprechende Dateisystem (ggf. SAMBA-Server) und die notwendigen Ports 20, 21, 25, 135, 137 und was noch notwendig sein könnte konfigurieren. Auch kann man Dateikopien per Skript erstellen, wenn sie vollständig auf dem Server sind, so daß es nach "Außen" als normales Netzwerk ausschaut. Das kann man sicher alles analysieren, wenn man es braucht.

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5

  • Hallo,



    Samba-Server funktioniert, allerdings ist die Konfiguration mehr als frickelig BIS es klappt. ( das ist Wissensstand von vor ~3 Jahre , daß ich sowas eingerichtet habe ) Einige Probleme kann man auch umgehen, indem man zuerst die Dateien hochladen lässt und nach dem erfolgreichen Upload nur eine Verknüpfung in den Watchfolder kopiert.

    Mit freundlichen Grüßen,


    Timo Manges

  • Ups, ich glaub ich habe mich da vergalloppiert. Wenn ich einen Linux-Server hätte, würde der Procoder ja garnicht laufen. Es sei denn, man hätte eine virtuelle Windows-Maschine, was wiederum im Normalfall bei Webserver-Providern wenig Sinn macht, da sie meißt nur 1 oder 2 Core-Systeme (Opteron/Xeon) anbieten. Da wird dann zuviel Rechenpower für die VirtualMachine (VirtualPC oder VMware) benötigt als dass es noch zum Transkodieren effektiv genug wäre. Zumal man für die Virtual Machine ja wiederum ein Windows brauchte, um den Procoder zu betreiben. Somit kommt man im Zusammenhang mit dem Procoder sowieso nicht um einen Windows-PC herum. Und dann kann man sich den Emulator sparen. Hat man wiederum WindowsServer, dann kann man auch alles darüber laufen lassen ( IIS, Dateifreigaben und Procoder).


    Grundsätzlich gesehen fährt man für solche kommerziellen Encodierungen auf Webbasis mit Quadcore oder Oktalcore Systemen am Besten, da damit die Lizenz (der USB-Key) am besten genutzt wird. Bei Mehrfachausnutzung mit separaten Streams/Clips erreicht man sicherlich auch eine bessere Auslastung als mit einem Clip, der dann als DVDTarget mit Gridencodierung behandelt wird, weil jeder Kern eine genaue Aufgabe bekommt und nichts für ein Grid gesplittet werden muss.

    Gruß
    Homer


    Canon EOS 600D, GoPro Hero 3 Black Edition, Canon HF 100, DaVinci Resolve 9, Production CS5