Avatar billede spooolll Nybegynder
02. juni 2012 - 12:11 Der er 2 kommentarer

Streaming af en ufærdig fil med HTTP

Hejsa

Jeg har lavet et program der indeholder både en HTTP-server og en download-funktion, således at man kan downloade en mp3-fil fra internettet til en lokal mappe som deles af HTTP-serveren.

Jeg vil gerne gøre det muligt at sætte andre enheder til at afspille (hente) fra min HTTP-server selvom filen ikke er downloadet færdig på serveren.

Med andre ord så bliver mit program en slags mellemmand, fx til enheder der kun kan afspille fra det lokale netværk og ikke fra internettet.

Som det er nu, så stopper de andre enheder med at afspille hvis jeg sætter dem til at afspille en ufærdig fil. Alternativet er at vente til filen er helt downloadet færdig, men det ønsker jeg ikke.

Jeg ved at det er muligt at "serve" ufærdige filer, da jeg har leget med noget on-the-fly video konvertering (transcoding) og afspilning.

HTTP-serveren jeg bruger er: http://elonen.iki.fi/code/nanohttpd/

Jeg tror problemet er at HTTP-serveren kun "server" den del af filen som er downloadet på det tidspunkt hvor der kommer en GET-request, og ikke "refresher" og tjekker for mere data.

Nogen der evt. har rodet med noget lignende og har en løsning? :)
Avatar billede arne_v Ekspert
03. juni 2012 - 02:02 #1
Det er jo helt klart muligt at returnere data lige saa hurtigt som de bliver modtaget.

Og du har kilde koden saa du kan tilrette den.
Avatar billede janrou Nybegynder
30. juni 2012 - 21:12 #2
Hej,

Du kan se på hvordan http-serverens mp3-streaming service tager fat i mp3-filer. Download foregår typisk i en midlertidig fil som flyttes til den færdige fil når alle data er modtaget. Derfor kan mp3-streameren ikke se den midlertidige fil. Du har brug for at mp3-streamingen kan ske fra den midlertidige fil. Du skal måske udvide downloaderen med en mp3-databuffer, som du kan bruge til give til mp3-streameren, så den streame fra filen under download. Overvej hvad sreameren skal gøre hvis download sker for langsom ift afspilningen.

Håber det gav dig en idé!

mvh
Jan
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester