1
0
Fork 0
mirror of https://github.com/Chocobozzz/PeerTube.git synced 2025-10-04 10:19:35 +02:00

Don't block video update on storyboard generation

This commit is contained in:
Chocobozzz 2024-07-03 15:40:10 +02:00
parent e8ac84f1b3
commit 8ab6f23a00
No known key found for this signature in database
GPG key ID: 583A612D890159BE
4 changed files with 14 additions and 10 deletions

View file

@ -6,6 +6,7 @@ import {
EncoderProfile,
SimpleLogger
} from '@peertube/peertube-models'
import { MutexInterface } from 'async-mutex'
import ffmpeg, { FfmpegCommand } from 'fluent-ffmpeg'
export interface FFmpegCommandWrapperOptions {
@ -82,7 +83,7 @@ export class FFmpegCommandWrapper {
this.command = undefined
}
buildCommand (input: string) {
buildCommand (input: string, inputFileMutexReleaser?: MutexInterface.Releaser) {
if (this.command) throw new Error('Command is already built')
// We set cwd explicitly because ffmpeg appears to create temporary files when trancoding which fails in read-only file systems
@ -96,6 +97,12 @@ export class FFmpegCommandWrapper {
this.command.outputOption('-threads ' + this.threads)
}
if (inputFileMutexReleaser) {
this.command.on('start', () => {
setTimeout(() => inputFileMutexReleaser(), 1000)
})
}
return this.command
}