如何使用Express

时间:2018-10-03 09:07:43

标签: javascript node.js express m3u8 mpeg2-ts

我有一些mpegts文件0.ts1.ts2.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服务器,来自邮递员的响应标头如下所示: response header from postman of ts file served by nginx

http://example.com/express/0.tsexpress.js服务器,它按以下方式提供ts文件:

res.writeHead(200, { "Content-Type": "video/mp2t" })
fs.createReadStream(tsFile).pipe(res);

,邮递员响应标头如下所示: response header from postman of ts file served by express.js

我可以播放从express.js服务器单独下载的ts文件,但是,当我将m3u8中的第一个URL更改为从express.js服务器而不是{{1 }}服务器上,nginx无法播放。

我怀疑与m3u8提供的文件格式或元信息有关,express.js无法将流正确识别为m3u8数据。请告知我如何正确地将ts文件作为流提供。

0 个答案:

没有答案