I want to create node server which streams media file to public using express module in chunks
var express = require('express');
var app = express();
var http = require('http');
var fs = require('fs');
var path = require('path');
var ext = /[\w\d_-]+\.[\w\d]+$/;
ffmpeg_path = "ffmpeg\\";
app.get('/player', function(req, res){
res.writeHead(200, {'Content-Type': 'text/html'});
fs.createReadStream('video.html').pipe(res);
});
app.get('/audio', function(req, res){
myParam = [];
myParam.push("-i","","-f","mp3","pipe:1");
myParam[1] = 'media\\example_aac.m4a';
var child_process = require("child_process");
ffmpeg = child_process.spawn(ffmpeg_path + 'ffmpeg.exe',myParam);
ffmpeg.stderr.on('data', function(data)
{
console.log('ffmpeg .error=' + data.toString());
});
res.writeHead(200, {
'Content-Type': 'audio/mp3'
});
ffmpeg.stdout.pipe(res);
});
app.get('/video', function(req, res){
myParam = [];
myParam.push("-i","","-f","flv","pipe:1");
myParam[1] = 'media\\example_video.wmv';
var child_process = require("child_process");
ffmpeg = child_process.spawn(ffmpeg_path + 'ffmpeg.exe',myParam);
ffmpeg.stderr.on('data', function(data)
{
console.log('ffmpeg .error=' + data.toString());
});
/*ffmpeg.stdout.on('data', function(data)
{
//var buff = new Buffer(data).toString();
//res.send(buff);
});*/
res.writeHead(200, {
'Content-Type': 'video/flv'
});
ffmpeg.stdout.pipe(res);
});
app.listen(3000);
=================================================
<script src="http://releases.flowplayer.org/js/flowplayer-3.2.13.min.js"></script>
<div class="wrapper">
<div class="AudioPlayer">
<div class="Title">Audio Player</div>
<div id="player"></div>
</div>
<div class="VideoPlayer">
<div class="Title">Video Player</div>
<div id="videoplayer"></div>
</div>
</div>
<script type="text/javascript">
$f("player", "http://releases.flowplayer.org/swf/flowplayer-3.2.18.swf", {
clip: {
autoPlay: false,
url: "http://localhost:3000/audio"
},
plugins: {
controls: {
fullscreen: false,
height: 30,
autoHide: false
}
}
});
</script>
<script type="text/javascript">
flowplayer("videoplayer", "http://localhost/flowplayer/flowplayer.commercial-3.2.2.swf", {
clip: {
autoPlay: false,
autoBuffering: false,
scaling: 'fit',
url: 'http://localhost:3000/video',
captionUrl: ''
},
plugins: {
controls: {
fullscreen: false,
height: 30,
autoHide: false
}
}
}
);
</script>