Вопрос или проблема
Я хочу купить старый мини-компьютер, чтобы обрабатывать потоки от (также старых) IP-камер TP Link, добавлять временную метку и перекодировать видео с использованием H.265, чтобы сэкономить место для хранения.
У меня 4 камеры, и исходные потоки – mjpeg разрешением 640×480.
Справится ли с этой задачей Intel i3-4-го поколения, или мне нужно что-то быстрее? Компьютер будет работать круглосуточно, поэтому энергопотребление также является проблемой.
В настоящее время я использую следующую команду (оптимизации приветствуются):
ffmpeg -i "http://<camera-ip>:8080/stream/video/mjpeg?Username=admin&Password=<base64-password>" -map 0 -c:v libx265 -preset veryfast -f segment -segment_time 60 -reset_timestamps 1 -segment_format mp4 -strftime 1 -vf "drawtext=fontsize=36:fontcolor=white:text="%{localtime\:%d/%m/%Y %H\\\\\:%M\\\\\:%S}"" "camera/frente/capture-%Y-%m-%d_%H-%M-%S.mp4"
единственный способ действительно узнать, будет ли это работать, — провести тест, но попробуйте с пресетом ultrafast и уменьшенной частотой кадров до 15:
ffmpeg -i “http://:8080/stream/video/mjpeg?Username=admin&Password=”
-map 0 -c:v libx264 -preset ultrafast -b:v 1000k -r 15
-f segment -segment_time 60 -reset_timestamps 1 -segment_format mp4 -strftime 1
-vf “drawtext=fontsize=24:fontcolor=white:text=”%{localtime:%d/%m/%Y %H\\:%M\\:%S}””
“camera/frente/capture-%Y-%m-%d_%H-%M-%S.mp4”
Ответ или решение
Разработка специализированного ПК для работы с ffmpeg и задачами перекодировки видеопотоков может быть непростой задачей, особенно если учесть требования к эффективности хранения и потреблению электроэнергии. В данном случае необходимо учитывать несколько важных факторов: производительность процессора, требования к оперативной памяти, эффективность видеокодеков и энергопотребление системы.
Теоретическая основа (Theory)
Ваша задача заключается в обработке видео с IP-камер, которые передают поток mjpeg при разрешении 640×480. Вы планируете добавлять временные метки и перекодировать видео в формат H.265, чтобы снизить объем занимаемого пространства для хранения. Кодек H.265 (или HEVC) предлагает заметное снижение размера файлов при сохранении качества, но требует больше ресурсов процессора по сравнению с более старыми кодеками, такими как H.264.
Процессоры Intel i3 четвертого поколения базируются на архитектуре Haswell, которая была представлена в 2013 году. Эти процессоры либо двухъядерные, либо четырехъядерные, и, хотя они могут справляться с базовыми задачами обработки видео, для эффективной работы с кодеком H.265 лучше использовать более мощные процессоры или современные ускорители, такие как Intel Quick Sync Video, доступный в более новых процессорах Intel.
Пример (Example)
На практике это выглядит следующим образом. Предположим, у вас есть Intel i3-4-го поколения, например, i3-4150 с 2 ядрами и частотой 3.5 ГГц. Хотя этот процессор может справляться с некоторыми простыми задачами ffmpeg, для стабильного 24/7 транскодирования нескольких потоков видео он может оказаться недостаточным. Исследования показывают, что кодек H.265 требует значительных вычислительных ресурсов для кодирования, особенно при использовании более высокого качества (медленных пресетов). Ваша команда использует пресет «veryfast», что хоть и снижает нагрузку на процессор, но все равно может быть требовательным для вашего процессора.
Кроме того, работа ПК 24×7 приводит к тому, что энергопотребление становится важным фактором. Различные исследования показывают, что старые настольные процессоры потребляют больше энергии, чем современные энергоэффективные решения. Например, потребление Intel i3-4-го поколения может составлять до 54 Вт только для процессора, не учитывая потребление остальной системы.
Применение (Application)
С учетом всего вышеописанного, рекомендуется учесть несколько аспектов при выборе ПК для ваших задач. Во-первых, рассмотрите возможность использования процессоров Intel более новой архитектуры, например, i3-8-го поколения и выше, которые обладают улучшенной поддержкой аппаратного кодирования через Intel Quick Sync Video. Это позволит значительно снизить нагрузку на процессор при работе с H.265 и снизит общее энергопотребление системы.
Во-вторых, обратите внимание на оперативную память. Для работы с несколькими потоками рекомендуется минимум 8 ГБ ОЗУ. Это позволит создать достаточно буфера для работы ffmpeg и других задач, связанных с сетью и операционной системой.
В-третьих, обратите внимание на поддержку SSD для системы хранения. SSD-накопители ускоряют доступ к данным и могут уменьшить задержки при записи сегментов видео, что особенно важно при таком сегментировании, как в вашем случае.
Наконец, учитывая вашу задачу, вы можете рассмотреть возможность использования мини-ПК на базе процессоров с низким энергопотреблением, таких как Intel NUC с процессорами серии U, которые обладают достаточной мощностью для выполнения ваших задач и потребляют меньше электроэнергии. Такие решения могут обеспечить не только эффективную работу с видео, но и экономию пространства и электроэнергии.
Итак, для ваших задач с ffmpeg мы бы рекомендовали следующие параметры системы:
- Процессор: Intel Core i3-8100 или выше, предпочтительно модели с поддержкой Quick Sync Video для аппаратного ускорения кодирования H.265.
- Оперативная память: минимум 8 ГБ.
- Система хранения: SSD с объемом от 256 ГБ для повышения скорости доступа и уменьшения задержки.
- Питание: внимание на энергоэффективность блока питания и оснащенность системы энергосберегающими технологиями.
Это должно обеспечить не только удовлетворительную производительность для перекодирования потоков от ваших камер, но и долгосрочную надежную работу без излишних энергозатрат.