I want to use url as source of ffmpeg. url is like https://192.168.1.103:6666/stream.mjpg. I checked ffmpeg working on MacOS shell
ffmpeg -f mjpeg -y -use_wallclock_as_timestamps 1 -i 'http://192.168.1.103:6535/stream.mjpg' -r 5 -reconnect 1 -loglevel 16 -c:v copy -an -qscale 10 '2.mp4'
But I want it to use in nodejs. So make it automatic. However it doesn't work when I put url in ffmpeg object as init.
var ffmpeg = new ffmpeg(url)
So this is my code
const imagePath = "http://192.168.1.103:6535/stream.mjpg"
function mjpegVideoRecoder () {
try {
var process = new ffmpeg({source: imagePath})
console.log("te");
process
.inputFormat('mjpeg')
.outputOptions([
'-y',
'-r 25',
'-c:v copy',
'-an',
'-qscale 10',
])
.ouput('testtest.avi')
.seek(30)
} catch {
console.log("errpr")
}
}
mjpegVideoRecoder()*/
and I tried this
1 var spawn = require('child_process').spawn
2 var request = require('request')
3 var args = "-f mjpeg -y -use_wallclock_as_timestamps 1 -i 'http://192.168.1.103:6535/stream.mjpg' -r 5 -reconne ct 1 -loglevel 16 -c:v copy -an -qscale 10 '3.mp4'"
4 var ffmpeg = require('fluent-ffmpeg')
5 var encoder = spawn('ffmpeg', args.split(' '));
6 encoder.stderr.pipe(process.stdout);
7
8 var interval = function(){
9 request('http://192.168.1.103:6535/stream.mjpg',function(er){
10 if(er){console.log(er)}
11 setTimeout(function(){interval()},1000)
12 }).pipe(encoder.stdin,{end:false})
13 }
14 interval();
But it also failed
this is error msg
'http://192.168.1.103:6535/stream.mjpg': No such file or directory
internal/streams/legacy.js:61
throw er; // Unhandled stream error in pipe.
^
Error: write EPIPE
at WriteWrap.onWriteComplete [as oncomplete] (internal/stream_base_commons.js:92:16) {
errno: -32,
code: 'EPIPE',
syscall: 'write'
}
How can I handle it. plz help me.