Смотрите правку внизу. Некоторая информация ниже неверна.
Есть ли способ заставить FFMPEG записывать напрямую в место назначения и пропускать каталог tmp?
Если нет, то есть ли способ выбрать временный каталог во время выполнения? Скажем, я хотел использовать /mnt/hgfs/videos/tmp
вместо каталога /tmp
.
Я знаю, что с моей ситуацией я могу сделать ряд других вещей, чтобы решить проблему, но я хочу посмотреть, смогу ли я сначала сделать что-либо из вышеперечисленного.
У меня есть виртуальная машина, которая использует ffmpeg для перекодирования файлов. Мне нужно объединить кучу больших файлов и перекодировать их. Объединенный файл может быть больше, чем 60 ГБ. Дисковое пространство виртуальной машины составляет 46 ГБ, что достаточно, потому что у меня есть все видео (входные и выходные) на drobo, смонтированном в /mnt/hgfs/videos
. Когда я запускаю свой ffmpeg concat
для 15 файлов 4 ГБ, у меня есть файл 60 ГБ. FFMPEG сначала записывает в каталог /tmp
затем перемещает его в каталог назначения. Поскольку каталог /tmp
находится в системе 46 ГБ, он заполняется и происходит сбой FFMPEG.
Несколько работ, которые могут помочь другим с подобными проблемами: (Я не хочу использовать их для моей проблемы)
1) Выполните шаги здесь, чтобы перекомпилировать FFMPEG с другим временным каталогом.
2) Выполните это в мв /tmp
на больший диск и симлинки его в /tmp
и в моем случае я мог бы просто:3) перекодировать видео, затем объединить их с MP4Box или FFMPEG, чтобы вам никогда не приходилось работать с таким большим файлом.
РЕДАКТИРОВАТЬ: я был неправ все время.
FFMPEG не записывает файл в /tmp
затем перемещает его в место назначения. Я использую проект узла, который вызывает FFMPEG, но он устанавливает пункт назначения /tmp
затем, когда FFMPEG завершает перекодирование видео, проект узла перемещает его в пункт назначения, который я хочу. Так что все время это был не FFMPEG, использующий каталог /tmp
.