У меня есть mpegts
файлы 0.ts
, 1.ts
, 2.ts
, которые я помещаю на сервер, и я хочу воспроизвести эти файлы как m3u8
.m3u8
выглядит следующим образом:
#EXTM3U
#EXT-X-VERSION:5
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:6.25,
http://example.com/ngx/0.ts # <-- this works
# http://example.com/express/0.ts # <-- cant play m3u8 if changed to this line
#EXTINF:6.25,
# http://example.com/ngx/1.ts # <-- this works
http://example.com/express/1.ts # <-- this also works
#EXTINF:6.25,
# http://example.com/ngx/2.ts # <-- this works
http://example.com/express/2.ts # <-- this also works
#EXTINF:6.25,
# http://example.com/ngx/3.ts # <-- this works
http://example.com/express/3.ts # <-- this also works
#EXT-X-ENDLIST
http://example.com/ngx/0.ts
обслуживает файл ts, помещенный в /var/www/html
с nginx
сервером, заголовок ответа от почтальона выглядит следующим образом:
http://example.com/express/0.ts
- это сервер express.js
, который обслуживает файл ts следующим образом:
res.writeHead(200, { "Content-Type": "video/mp2t" })
fs.createReadStream(tsFile).pipe(res);
, а заголовок ответа почтальона выглядит следующим образом:
Я мог воспроизводить файлы ts, загруженные отдельно с сервера express.js
, однако, когда я изменил первый URL-адрес в m3u8
для загрузки с сервера express.js
вместо nginx
сервер, m3u8
не может воспроизводиться.
Я подозреваю, что это как-то связано с форматом или метаинформацией файла, который подается из express.js
, что поток неправильно распознается m3u8
как mpegts
данные.Посоветуйте, пожалуйста, как правильно подать файл ts в виде потока.