Hi,
ich bin dabei, einen eigenen kleinen HTTP Stream Server zu implementieren.
Es soll mehr ein Test als eine brauchbare Klasse sein...
Z.B.:
Ich connecte mit einem streamfähigen MediaPlayer auf meine Adresse (http://localhost/test.avi)...
Mein kleiner Server empfängt als nächstes dies hier:
GET /test.avi HTTP/1.1
Accept: */*
User-Agent: NSPlayer/11.0.5721.5145
Host: localhost
X-Accept-Authentication: Negotiate, NTLM, Digest, Basic
Pragma: version11-enabled=1
Pragma: no-cache,rate=1.000,stream-time=0,stream-offset=0:0,packet-num=4294967295,max-duration=0
Pragma: packet-pair-experiment=1
Pragma: pipeline-experiment=1
Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, com.microsoft.wm.predstrm, com.microsoft.wm.startupprofile
Pragma: xClientGUID={3300AD50-2C39-46c0-AE0A-80C72AAE04BA}
Accept-Language: de-DE, *;q=0.1
Frage: Wie antwortet man auf sowas ? Was genau verlangt der MediaPlayer als nächstes von mir ?
Gruß Chris
PS: Wie gesagt, es ist mehr eine Spielerei um zu verstehen, wie HTTP Streaming im allgemeinen funktioniert. Bei google hab ich nichts spezielles gefunden. Überall wird man auf fertige Libs (JMF z.b.) verlinkt... Ich will aber die Sache möglichst simpel angehen.
Achja, der MediaPlayer friert ein, sprich der wartet wohl wirklich auf etwas ganz spezielles!
PSS:
Hab nach ein wenig Googlen mal "Beispielantwortheader" gefunden:
1. HTTP/1.1 200 OK
2. Content-Type: application/x-mms-framed
3. Server: Cougar/9.01.01.3814
4. Date: Thu, 21 Aug 2008 18:18:30 GMT
5. Pragma: no-cache, client-id=648480293, features="broadcast", timeout=60000, AccelBW=960000, AccelDuration=18946, Speed=1.000
6. Cache-Control: no-cache, x-wms-stream-type="broadcast"
7. Last-Modified: Sat, 30 Dec 1899 00:00:00 GMT
8. Transfer-Encoding: chunked
9. Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, com.microsoft.wm.predstrm, com.microsoft.wm.fastcache, com.microsoft.wm.startupprofile
10.
Aber da stellen sich neue FRagen: Wie wirds geschickt ? einfach als Ascii ? Oder die Zahlen als 4byte int übertragen ?
Wie gesagt ich kenne das Protokoll halt nicht genau...
ich bin dabei, einen eigenen kleinen HTTP Stream Server zu implementieren.
Es soll mehr ein Test als eine brauchbare Klasse sein...
Z.B.:
Ich connecte mit einem streamfähigen MediaPlayer auf meine Adresse (http://localhost/test.avi)...
Mein kleiner Server empfängt als nächstes dies hier:
GET /test.avi HTTP/1.1
Accept: */*
User-Agent: NSPlayer/11.0.5721.5145
Host: localhost
X-Accept-Authentication: Negotiate, NTLM, Digest, Basic
Pragma: version11-enabled=1
Pragma: no-cache,rate=1.000,stream-time=0,stream-offset=0:0,packet-num=4294967295,max-duration=0
Pragma: packet-pair-experiment=1
Pragma: pipeline-experiment=1
Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, com.microsoft.wm.predstrm, com.microsoft.wm.startupprofile
Pragma: xClientGUID={3300AD50-2C39-46c0-AE0A-80C72AAE04BA}
Accept-Language: de-DE, *;q=0.1
Frage: Wie antwortet man auf sowas ? Was genau verlangt der MediaPlayer als nächstes von mir ?
Gruß Chris
PS: Wie gesagt, es ist mehr eine Spielerei um zu verstehen, wie HTTP Streaming im allgemeinen funktioniert. Bei google hab ich nichts spezielles gefunden. Überall wird man auf fertige Libs (JMF z.b.) verlinkt... Ich will aber die Sache möglichst simpel angehen.
Achja, der MediaPlayer friert ein, sprich der wartet wohl wirklich auf etwas ganz spezielles!
PSS:
Hab nach ein wenig Googlen mal "Beispielantwortheader" gefunden:
1. HTTP/1.1 200 OK
2. Content-Type: application/x-mms-framed
3. Server: Cougar/9.01.01.3814
4. Date: Thu, 21 Aug 2008 18:18:30 GMT
5. Pragma: no-cache, client-id=648480293, features="broadcast", timeout=60000, AccelBW=960000, AccelDuration=18946, Speed=1.000
6. Cache-Control: no-cache, x-wms-stream-type="broadcast"
7. Last-Modified: Sat, 30 Dec 1899 00:00:00 GMT
8. Transfer-Encoding: chunked
9. Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, com.microsoft.wm.predstrm, com.microsoft.wm.fastcache, com.microsoft.wm.startupprofile
10.
Aber da stellen sich neue FRagen: Wie wirds geschickt ? einfach als Ascii ? Oder die Zahlen als 4byte int übertragen ?
Wie gesagt ich kenne das Protokoll halt nicht genau...