31 lines
962 B
JavaScript
31 lines
962 B
JavaScript
const exec = require('child_process').exec;
|
|
|
|
class FFMPEGInfo {
|
|
constructor(opts) {
|
|
this.ffmpegPath = opts.ffmpegPath
|
|
}
|
|
async getVersion() {
|
|
try {
|
|
let s = await new Promise( (resolve, reject) => {
|
|
exec( `"${this.ffmpegPath}" -version`, function(error, stdout, stderr){
|
|
if (error !== null) {
|
|
reject(error);
|
|
} else {
|
|
resolve(stdout);
|
|
}
|
|
});
|
|
});
|
|
var m = s.match( /version\s+([^\s]+)\s+.*Copyright/ )
|
|
if (m == null) {
|
|
console.error("ffmpeg -version command output not in the expected format: " + s);
|
|
return "Unknown";
|
|
}
|
|
return m[1];
|
|
} catch (err) {
|
|
console.error("Error getting ffmpeg version", err);
|
|
return "Error";
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = FFMPEGInfo |