node.js - 在nodejs中转发远程hls视频的ts
问题描述
router.get('/ts/:streamId/:ts', (req, res, next)=> {
var streamId = req.params["streamId"];
var ts = req.params["ts"];
var url = "http://192.168.0.193/hls/27f73cdf-c565-4328-a172-d23b1118e312/playout9.ts"
axios.create({
headers: { 'Authorization': 'Basic ' + req.session.bearer }
}).get(url)
.then(response => {
res.end(response.data);
});
});
我可以从浏览器下载提供的文件url
并在 vlc 播放器中播放。
但是当我res.end(response.data);
在我的 node.js 服务器中使用转发时,我无法播放转发的文件,但它的内容大小约为 1600KB。
我还参考了以下文章并尝试编辑content-type
,但没有成功:
nodejs api does not forward response which received from another service
任何想法都非常感谢。
解决方案
根据 Lawrence Cherone 的评论,我替换res.end(response.data);
为response.data.pipe(res)
.
推荐阅读
- c# - 查找某个字符串并将其替换为嵌套的 JObject?
- c# - 如何使用 LINQ 获取用户之间的最后一条消息?
- ios - 子类目前没有主键关系
- c# - 我无法使用部分视图生成包含已硬编码到代码中的电影的表格
- python - 将 CSV 转换为嵌套的 JSON python
- google-apps-script - Google Data Studio DATE 字段期望连接器采用什么格式?
- python - 我的代码不计算循环中的最后一个值
- git - 无法接受 Pull Request Github,因为需要手动操作
- javascript - 如何使用 javascript 更改用户突出显示文本的样式
- python - 如何使用python脚本将没有标题的csv数据加载到cassandra列族中