
У меня есть задача записывать покадровое видео с нескольких IP-камер (например, camera1.mp4, camera2.mp4, camera#.mp4 и т. д.). В настоящее время я запускаю отдельные экземпляры ffmpeg.exe одновременно на виртуальной машине MS Azure (C2D, 7 ГБ ОЗУ). Каждый ffmpeg.exe отвечает за объединение нового изображения (каждую минуту) с камеры с ее существующим файлом .mp4, тем самым создавая финальный файл camera#.mp4.
Хотя я и использовал трюки, например, ограничивал ffmpeg.exe, чтобы использовать только одно ядро ЦП из четырех доступных, но это все равно почти всегда загружало ЦП на 100%.
Есть ли у вас идеи по улучшению этой ситуации? (возможно: кто-то делал что-то подобное, используя один экземпляр ffmpeg.exe, выполняя задачи конкатенации, поставленные в очередь для каждой камеры?)
ИЛИ любые другие полезные идеи/подсказки, чтобы решить проблему.
решение1
Я предполагаю, что у вас Windows; почему бы не использоватькоманда "старт"с приоритетом ниже обычного, например /LOW
. Он все равно будет использовать 100% ресурсов ЦП, когда это возможно, но только если больше никто этого не захочет.