Voor een website waar ik aan werk moet ik een video beveiligd kunnen afspelen, zodat de oorspronkelijke URL niet kan worden achterhaald.
Dit beveiligingsmechanisme werkt en wordt gedaan op basis van een cookie check.
De HTML5 video player die de video afspeelt vraagt de video op in chunks via de Content-Range request header die door mijn back-end gehonoreerd moet worden omdat er anders "Content length mismatch" errors ontstaan.
Dit werkt ook. Enkel het probleem is dat het aanbieden van de data stream erg veel memory verbruikt. Daarom krijg ik de volgende fout:
Wat ik al heb geprobeerd is de chunks een max length te geven, waardoor het gereserveerde memory nooit hoger oploopt dan het door mezelf gedefinieerde aantal bytes. Enkel kan Chrome hiermee overweg en Firefox en Safari helaas niet.
Iemand advies betreffende deze kwestie?
Dit beveiligingsmechanisme werkt en wordt gedaan op basis van een cookie check.
De HTML5 video player die de video afspeelt vraagt de video op in chunks via de Content-Range request header die door mijn back-end gehonoreerd moet worden omdat er anders "Content length mismatch" errors ontstaan.
Dit werkt ook. Enkel het probleem is dat het aanbieden van de data stream erg veel memory verbruikt. Daarom krijg ik de volgende fout:
De stream bied ik aan via de onderstaande code die in een callback wordt aangeroepen. Werkt voor de rest prima. Waar ik naar opzoek ben is een methode die niet veel memory opslokt, maar de data "als het ware" direct doorstuurt naar de client, zodat ik niet last krijg van deze fout."Allowed memory size of 262144 bytes exhausted (tried to allocate 576 bytes)"
PHP:
1
2
3
4
5
6
| $stream = GuzzleHttp\Stream\Stream::factory(fopen($path, 'r')); $stream->seek($offset); while (!$stream->eof()) { echo $stream->read($length); } $stream->close(); |
Wat ik al heb geprobeerd is de chunks een max length te geven, waardoor het gereserveerde memory nooit hoger oploopt dan het door mezelf gedefinieerde aantal bytes. Enkel kan Chrome hiermee overweg en Firefox en Safari helaas niet.
Iemand advies betreffende deze kwestie?