mirror of https://github.com/calzoneman/sync.git
Don't crash if ffprobe is missing
This commit is contained in:
parent
7bc247ede2
commit
88be0e1e92
|
@ -31,9 +31,12 @@ exports.query = function (filename, cb) {
|
||||||
|
|
||||||
ffprobe(filename, function (err, meta) {
|
ffprobe(filename, function (err, meta) {
|
||||||
if (err) {
|
if (err) {
|
||||||
if (meta.stderr && meta.stderr.match(/Protocol not found/)) {
|
if (meta && meta.stderr && meta.stderr.match(/Protocol not found/)) {
|
||||||
return cb("Link uses a protocol unsupported by this server's ffmpeg");
|
return cb("Link uses a protocol unsupported by this server's ffmpeg");
|
||||||
|
} else if (err.code && err.code === "ENOENT") {
|
||||||
|
return cb("Server is missing ffprobe");
|
||||||
} else {
|
} else {
|
||||||
|
Logger.errlog.log(err.stack || err);
|
||||||
return cb("Unable to query file data with ffmpeg");
|
return cb("Unable to query file data with ffmpeg");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -120,7 +123,11 @@ function parse(meta) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function ffprobe(filename, cb) {
|
function ffprobe(filename, cb) {
|
||||||
|
var err;
|
||||||
var ff = spawn("ffprobe", ["-show_streams", "-show_format", filename]);
|
var ff = spawn("ffprobe", ["-show_streams", "-show_format", filename]);
|
||||||
|
ff.on("error", function (err_) {
|
||||||
|
err = err_;
|
||||||
|
});
|
||||||
|
|
||||||
var outbuf = "";
|
var outbuf = "";
|
||||||
var errbuf = "";
|
var errbuf = "";
|
||||||
|
@ -133,7 +140,10 @@ function ffprobe(filename, cb) {
|
||||||
|
|
||||||
ff.on("close", function (code) {
|
ff.on("close", function (code) {
|
||||||
if (code !== 0) {
|
if (code !== 0) {
|
||||||
return cb("ffprobe exited with nonzero exit code", { stderr: errbuf });
|
if (!err) {
|
||||||
|
err = "ffprobe exited with nonzero exit code";
|
||||||
|
}
|
||||||
|
return cb(err, { stderr: errbuf });
|
||||||
}
|
}
|
||||||
|
|
||||||
var lines = outbuf.split("\n");
|
var lines = outbuf.split("\n");
|
||||||
|
|
Loading…
Reference in New Issue