Miért így töltődik be a videó?
Ha érkezik egy http kérés mondjuk GET /video.mp4 én így visszaküldöm a videót:
int fdimg = open("video.mp4", O_RDONLY);
write(fd_client, "HTTP/1.0 200 OK\r\nContent-Type: video/mp4\r\n\r\n", 44);
fstat(fdimg, &fbuf);
sendfile(fd_client, fdimg, NULL, fbuf.st_size);
close(fdimg);
És az lenne a probléma ezzel, hogy míg a böngésző meg nem kapja a teljes videót ami pl. 300MB addig nem indítja el a videót sem.
Ez miért lehet?
Úgy, hogy lehetne megoldani mint ahogy youtubeon is van, ha rámegyek egy videóra nem kell megvárni míg teljesen betöltődik a videó hanem elkezdi lejátszani amit már betöltött.
Valahogy így kellene?
int fdimg = open("video.mp4", O_RDONLY);
char file_data[512]="";
int bytes = 0;
write(fd_client, "HTTP/1.0 200 OK\r\nContent-Type: video/mp4\r\n\r\n", 44);
while((bytes = read(fdimg, file_data, sizeof(file_data))) > 0)
{
write(fd_client, file_data, bytes);
}
close(fdimg);
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!