Назад | Перейти на главную страницу

Как сохранить преобразованный файл в другую систему с помощью ffmpeg

Я хочу разработать сервис онлайн-конвертера в локальной сети от ffmpeg.

служба получает адрес файла для преобразования и адрес вывода для помещения в него преобразованного файла.

может ли ffmpeg сохранить выходной файл в другой системе в локальной сети?

или я должен сначала сохранить выходной файл, а затем перейти в другую систему?

Да, вы можете смонтировать удаленную систему в каталог. И сохраните выходной файл в смонтированный каталог.

монтировать

Варианты монтирования файловой системы:

  1. NFS более нормален в мире UNIX / Linux
  2. SMB более нормален в мире Windows.

Непонятно, в каком контексте вы находитесь. Нет ничего особенного в ffmpeg о любом из них.

ssh

Другой вариант, если вы находитесь в мире UNIX / Linux или имитируете Linux под Windows, - это потоковая передача ssh. Большинство команд отправят свой вывод в STDOUT, если вы укажете - как выходной файл. Итак, вы можете сделать что-то вроде:

ffmpeg <your options> - | ssh user@remote 'cat > /tmp/ffmpeg.out'

(Я использую эту технику с tar как вход довольно часто.) ffmpeg документы скажем, что последний аргумент - это выходной файл, поэтому, как ни странно, вы должны поместить - (тире) с пробелами вокруг него в качестве последнего аргумента для ffmpeg, после того, как будут указаны все остальные варианты.

производительность

Запись вывода в удаленную систему может привести к замедлению обработки в исходной системе, поскольку буферы заполняются быстрее из-за более медленного ввода-вывода. Если все буферы заполнены ffmpeg процессу придется подождать, пока он сможет обработать больше. Если вы можете запускать больше процессов параллельно, это может помочь, но рано или поздно вы, вероятно, переполните сетевое соединение, и большее количество процессов / ЦП не поможет.