Ankündigung

Einklappen
Keine Ankündigung bisher.

CLOSED: Binärdaten eines WMV ausgeben...

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • CLOSED: Binärdaten eines WMV ausgeben...

    Hallo zusammen,

    Da ich für einen Dateiexport Videos als Binärcode in einem XML ausliefern soll und ich damit noch NULL erfahrung habe würde ich davor gern mit einem drüber reden der davon Ahnung hat.

    Über X Seiten habe ich es geschafft den Binärcode eines WMV (18MB) auszugeben. Leider bin ich mir da aber nicht sicher ob es

    a) wirklich der Code ist wie er ausgeliefert werden soll
    b) es wirklich die beste Lösung ist Dateien zu auszuliefern

    Hier mal ein Bild eines Teils des "Binärcodes"



    Falls jemand anhand des Bildes schon sieht dass das so nicht stimmen kann, hier auch gleich mein 2-Zeiler:

    PHP-Code:
    $pfad '../_archiv/videos/testvideo.wmv';
    echo 
    addslashes(fread(fopen($pfad"r"), filesize($pfad))); 
    Danke schonmal für jeden Hinweis
    <! -- it´s not a bug - it´s a feature -- >

  • #2
    Re: Binärdaten eines WMV ausgeben...

    Das ist kein Binärcode, dieses Ergebniss erziehlst du einfach, indem du z.B.
    ein Bild mit einem simplen Text-Editor ausgeben lässt.
    Zitat von FreAkaZoiD
    Da ich für einen Dateiexport Videos als Binärcode in einem XML ausliefern soll
    Klingt nach einer absoluten Denkstöreng seitens des Auftraggebers.
    Warum sollte man den Binärcode einer Datei in einem XML-File speichern,
    zumal es sich auch noch um ein Kompressionsformat handelt?

    Klär uns doch mal über das Ziel dieser Übung auf, vieleicht können wir ja Abhilfe
    schaffen.

    Btw. ein Dateiexport umfasst den Export von Dateien, wie der Name schon vermuten
    lässt. XML wird meistens als Austausch- bzw. Exportformat genutzt, so dass
    sich z.B. Datenbankeinträge in ein anderes Programm überführen lassen.
    Dabei wird eine XML-Datei erstellt. Sind nun aber auch Bilder oder, wie in deinem
    Fall, Videos enthalten, werden diese Einfach als Datei exportiert. WMV ist ja
    ein etabliertes Windowsformat, warum sollte man es nicht auch als solches "exportieren"?
    [FONT="Book Antiqua"][I]"Nobody is as smart as everybody" - Kevin Kelly[/I]
    — The best things in life aren't things[/FONT]

    Kommentar


    • #3
      Re: Binärdaten eines WMV ausgeben...

      Zitat von phpdummi
      Klär uns doch mal über das Ziel dieser Übung auf, vieleicht können wir ja Abhilfe
      schaffen.
      Also, ich arbeite für ein kleines Videoportal.
      Nun gibt es eine Partnerfirma die unsere Videoclips auf Ihrer Website einbinden wollen. Dazu haben die mir ein Muster XML mit folgender Struktur geschickt:

      Code:
      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE sixcms_data SYSTEM "http://www.sixcms.de/dtd/sixcms-1.2.dtd">
      <sixcms_data>
      
      <sixcms_article>
      	<title>TITEL DES VIDEOS</title>
      
      	<field name="bild_upload" type="upload" filename="startbild.jpg" filesize="27188" mimetype="image/jpeg" mode="data">BINÄRE AUSGABE DES BILDES</field>
      => falls kein Bild, dann weglassen
      
      	<field name="datei_upload" type="upload" filename="EinarmRudernI.flv" filesize="343507" mimetype="application/octet-stream" mode="data">BINÄRE AUSGABE DES VIDEOS</field>
      
      	<field name="datei2_upload" type="upload" filename="EinarmRudernII.flv" filesize="545201" mimetype="application/octet-stream" mode="data">BINÄRE AUSGABE DES VIDEOS</field>
      => falls kein 2tes Video, dann weglassen
      
      	<field name="eventdate" type="datetime">25.02.2007</field>
      </sixcms_article>
      
      </sixcms_data>
      Ich werde auf alle Fälle versuchen die Leute von dem Codegedöns abzubringen, nur was wenn die drauf bestehen ? Wie bekomm ich denn dann an den richtigen Binärcode des Clips !?

      Edit:
      Meine Lösung wäre ja einfach den Pfad zur Datei zu übergeben, aber....
      <! -- it´s not a bug - it´s a feature -- >

      Kommentar


      • #4
        Ich verstehe auch nicht gegen eine Pfadangabe spricht.
        Okay, SixCMS ist eine sehr teure Enterprise Lösung, dennoch glaube ich nicht das die einen
        WMV Encoder an Bord haben. WMV ist soweit ich weiß immer noch Closed, oder nur gegen
        Lizenzgebühren nutzbar.

        Ich glaube da liegt ein großes Missverständniss vor, denn erst encodieren und in eine XML
        Datei packen, um es dann (sehr zeitaufwändig) wieder zu decodieren kann nicht wirklich
        gewollt sein. Eine gepackte Datei, die eine XML Datei mit den nötigen Pfadangaben
        enthält ist in jeder hinsicht praktischer.

        Vieleicht will euer Partner ja einfach nur seinen Eigenen Player zum Abspielen
        benutzen, wer SixCMS nutzt sollte aber auch einen Player an Bord haben der
        dies ermöglicht.

        Falls du dennoch Binärcode liefern musst, guck dir mal ein Paar Decoder für
        die Kommandozeile an, die könntest du auf einer Linux Maschine zusammen
        mit der PHP Anwendung ,die das XML-File erzeugt, aufrufen.

        Frag doch einfach noch mal nach warum Binärdaten gewünscht sind ...
        [FONT="Book Antiqua"][I]"Nobody is as smart as everybody" - Kevin Kelly[/I]
        — The best things in life aren't things[/FONT]

        Kommentar


        • #5
          Hallo und willkommen im Forum!
          das ganze per XML zu verschicken ist eine Schnapsidee von jemandem der keine Ahnung hat. XML ist auf Text-Daten zugeschnitten, nicht auf Binärcode. Der XML-Parser muss den ganzen Binärcode durchwandern (18 Mio. Bytes!), um das Tag-Ende zu finden, das ist ein so sinnloser Bearbeitungsoverhead. Ich bin nicht sicher, ob PHP da nicht an seine Speichergrenzen stößt, auch wenn es durch C-Code erledigt wird, muss der Tag-Content ja für PHP bereitgestellt werden - oder welche Technologie liest auf der anderen Seite das XML aus?. Sinn würde es höchstens machen, einen Pfad zu übergeben, an dem die WMV-Datei zu finden ist. Dann kann die Übertragung ja über die Netzwerkschicht laufen, da muss nix geparsed werden.

          Offenbar scheint ja aber das komplete System samt XML-Schema vorgegeben, was hieße, du hast überhaupt keinen Spielraum! Hoffen wir dass sich das Projekt noch in der Entwicklungsphase befindet und diese Idee aufgegeben wird.

          Falls du noch irgendwie Einfluß auf das Format hast, base64_encode() den Binärcode, mit addslashes() zerhaust du dir möglicherweise alles.
          http://de.php.net/base64_encode
          http://de.php.net/base64_decode
          base64_encode() gibt data in base64-kodierter Form zurück. Diese Form des Encodings wurde entworfen, um Binärdaten unbeschädigt mittels Technologien wie E-Mail übertragen zu können, die nicht korrekt mit 8-Bit-Zeichen umgehen.
          Ich würde aber nocheinmal beim Betreiber anklopfen. Wenn die schon so schlampig ihre Transport-API festlegen, möcht ich nicht wissen, was da noch so verbrochen wird. Lass dich auf jeden Fall für die Arbeit vorweg bezahlen, da sind Amateure am Werk!

          Kommentar


          • #6
            @ phpdummie & Zergling:

            Vielen Dank für eure Statements!
            Werde das ganze nochmal mit dem Auftraggeber abklären.

            LG aus Wien
            <! -- it´s not a bug - it´s a feature -- >

            Kommentar

            Lädt...
            X