Я пытаюсь отобразить список воспроизведения HTTP Live Streaming (файл m3u8), который генерируется Laravel. Для этого у меня есть представление (playlist.blade.php):
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:0
@foreach($videos as $video)
#EXTINF:4,
/videos/watch/{{ $video->file }}.ts
@endforeach
#EXT-X-ENDLIST
В моем контроллере я использую следующий код:
return Response::view('compilations.playlist', compact('videos'))->header('Content-Type', 'application/x-mpegurl');
Чтобы составить представление с правильными заголовками.
Когда я выбрасываю файл на статический сервер, такой как nginx, с правильным mime-типом, файл отображается в браузере и работает с Apple. mediastreamvalidator
, Когда я пытаюсь получить доступ к файлу через сервер Laravel, браузер загружает файл автоматически (вместо его отображения), и он не работает с mediastreamvalidator
,
Как я могу создать представление с правильными заголовками и заставить его вести себя так, как это делает сервер nginx (отображать в браузере, правильно загружать в инструменте проверки / видеопроигрывателях)?
Задача ещё не решена.
Других решений пока нет …