mirror of https://github.com/Chocobozzz/PeerTube
Server: check ffmpeg at startup
parent
d33242b047
commit
e5b8853905
|
@ -2,10 +2,12 @@
|
|||
|
||||
const config = require('config')
|
||||
|
||||
const constants = require('./constants')
|
||||
const db = require('./database')
|
||||
|
||||
const checker = {
|
||||
checkConfig,
|
||||
checkFFmpeg,
|
||||
checkMissedConfig,
|
||||
clientsExist,
|
||||
usersExist
|
||||
|
@ -42,6 +44,29 @@ function checkMissedConfig () {
|
|||
return miss
|
||||
}
|
||||
|
||||
// Check the available codecs
|
||||
function checkFFmpeg (callback) {
|
||||
const Ffmpeg = require('fluent-ffmpeg')
|
||||
|
||||
Ffmpeg.getAvailableCodecs(function (err, codecs) {
|
||||
if (err) return callback(err)
|
||||
if (constants.CONFIG.TRANSCODING.ENABLED === false) return callback(null)
|
||||
|
||||
const canEncode = [ 'libx264' ]
|
||||
canEncode.forEach(function (codec) {
|
||||
if (codecs[codec] === undefined) {
|
||||
return callback(new Error('Unknown codec ' + codec + ' in FFmpeg.'))
|
||||
}
|
||||
|
||||
if (codecs[codec].canEncode !== true) {
|
||||
return callback(new Error('Unavailable encode codec ' + codec + ' in FFmpeg'))
|
||||
}
|
||||
})
|
||||
|
||||
return callback(null)
|
||||
})
|
||||
}
|
||||
|
||||
function clientsExist (callback) {
|
||||
db.OAuthClient.countTotal(function (err, totalClients) {
|
||||
if (err) return callback(err)
|
||||
|
|
Loading…
Reference in New Issue