如何使用node.js req.pipe(res)向html播放器发送视频响应

时间:2015-08-05 03:36:34

标签: javascript html node.js html5 express

我正在使用ytdl-core播放视频。它播放视频。

这是代码:

app.get('/',function(req,res)    
{    
var fs = require('fs');      
  var ytdl = require('ytdl-core');    
  req=ytdl;      
ytdl(Url)      
  .pipe(res);      
});   

输出与使用google chroome(openwith google chroome)从你的电脑上打开mp4视频时的输出相同。

但我想在html或视频js播放器中运行此视频,该播放器位于html文件中 像这样的东西

app.get('/',function(req,res)    
{    
var fs = require('fs');      
  var ytdl = require('ytdl-core');    
  req=ytdl;      
ytdl(Url)      
  .pipe(res.send("player.html"););      
});

但我不知道怎么做?我怎么用res来做呢? “player.html”源标签有点像这样

<source src=Url type='video/mp4' />

所以,我想将即将发送的回复发送到html文件(player.html),并希望在html播放器或其他兼容的播放器中显示视频,该播放器位于player.html文件中。如何在player.html中设置源标记?我怎么能这样做?有可能吗?

2 个答案:

答案 0 :(得分:1)

设置视频源的标准方法是通过video标记

<video width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.webm" type="video/webm">
  <source src="movie.ogg" type="video/ogg">
Your browser does not support the video tag.
</video>

建议您使用视频(mp4)将其转换为其他格式(webm / ogg aswell)作为不播放mp4s的媒体设备的后备广告

答案 1 :(得分:0)

通过/网址发送您的html文件,并从单独的网址加载视频。在第二个视频网址中,只需将ytdl传递给响应对象。

<强> player.html

<source src="/video" type="video/mp4">

<强> app.js

//send page that loads your player
app.get('/',function(req,res){
  res.sendFile(__dirname + '/player.html')
});

//send your video through this url
app.get('/video',function(req, res) {
    var url = 'your youtube url';
    ytdl(url).pipe(res)
});