我有一些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
将/var/www/html
服务器下的ts文件放入nginx
服务器,来自邮递员的响应标头如下所示:
http://example.com/express/0.ts
是express.js
服务器,它按以下方式提供ts文件:
res.writeHead(200, { "Content-Type": "video/mp2t" })
fs.createReadStream(tsFile).pipe(res);
我可以播放从express.js
服务器单独下载的ts文件,但是,当我将m3u8
中的第一个URL更改为从express.js
服务器而不是{{1 }}服务器上,nginx
无法播放。
我怀疑与m3u8
提供的文件格式或元信息有关,express.js
无法将流正确识别为m3u8
数据。请告知我如何正确地将ts文件作为流提供。