Nano Hash - криптовалюты, майнинг, программирование

Транскодирование потока камеры по запросу

Я использую VLC для перекодирования потока rtsp с IP-камеры в поток http mjpg с помощью следующей команды:

cvlc -vvv -Idummy -q rtsp://user:password@hostname:554 --sout '#transcode{vcodec=MJPG,venc=ffmpeg{strict=1}}:standard{access=http{mime=multipart/x-mixed-replace;boundary=--7b3cc56e5f51db803f790dad720ed50a},mux=mpjpeg,dst=:8081/}'

Это прекрасно работает.

Мне не нужно перекодировать поток все время, а только его часть. VLC перекодирует, даже если ни один клиент не подключен. Это все время использует все ядро ​​процессора на моем сервере.

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

Большое спасибо!

03.02.2019

Ответы:


1

Я думаю, вы спрашиваете, можете ли вы запустить приведенную выше команду командной строки с вашего сервера - если да, то это зависит от сервера и языка, но в целом да, вы можете.

Логика вашего сервера будет примерно такой:

Когда клиент подключается:

  • если это первый клиент, запустите команду для запуска транскодирования
  • предоставить ссылку на поток клиенту

Когда клиент отключается:

  • если это последний клиент, остановить транскодирование

Будет задержка для первого клиента, поскольку поток буферизуется, но я предполагаю, что вы уже это знаете.

Способ запуска команды будет зависеть от сервера, но обычно вы можете найти примеры, например. для узла: выполнить двоичный файл командной строки с Node.js

Если вы используете Java, также есть очень известная и полезная статья о запуске командной строки из Java — даже если вы не используете Java, полезно прочитать: https://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html

04.02.2019
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..