JPEG SNAPSHOT из RTSP потока

Возникла задача взять с камеры транслирующей только видео через RTSP статичный скриншот в формате JPEG. Решено написать консольное приложение параметрах которого откуда взять поток и куда сохранить скриншот с использованием OpenCV (EmguCV).

Использовать можно ffmpeg, но внятного и быстро работающего решения, которое не зависало бы в памяти при любой проблеме, не нашлось.

Код упрощенно выглядит так:

Готовое приложение: rtsp2jpeg (x86). Перед использованием установить vcredist_x86.exe.

UPD: Добавлена функция таймаута подключения к потоку. В предыдущей версии, при проблемах с подключением, приложение оставалось в памяти.

Использовать так:

10 мыслей о “JPEG SNAPSHOT из RTSP потока”

    1. Ну, по идее, она ничего больше и делать то не должна… Она делает снапшот по URL на RTSP поток и сохраняет его в JPG. “Откуда” и “куда” – нужно указать в параметрах запуска.

  1. Как ни странно, но у меня приложение при проблеме с коннектом не закрывается, а продолжает ждать по несколько часов. (Версия файла из тела поста.)

  2. Пока борюсь powershell-ом, раз в 10 секунд проверяю не завис ли процесс, если да, то убиваю его:
    ###############
    #зациклили функцию
    while(1)
    {
    #раз в какой промежуток проверять процесс
    start-sleep -seconds 10
    #получаем сколько уже времени запущен процесс.
    $time=”$($$ = (date) – (ps rtsp2jpeg).StartTime)$$”
    #если процесс запущен больше 30 секунд – убиваем его.
    if ($time -gt “00:30:00.0000000”) {Stop-Process -processname rtsp2jpeg}
    }
    ###############

  3. Добрый день.

    Извините за некорректный вопрос.
    А возможно получить исходный код программы?

    Это очень хорошее приложение, и хотелось его чуток изменить и внедрить в свою систему видеонаблюдения.

    Спасибо большое.

    1. Исходный код не могу предоставить, т.к. проект разросся и был интегрирован в другой. Если будете реализовывать самостоятельно, рекомендую использовать OpenCV 3.X. Он более стабилен.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.