Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Запись RTSP потока через свою программу  (Прочитано 2381 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vlad.V

  • Автор темы
  • Активист
  • *
  • Сообщений: 478
    • Просмотр профиля
Всем доброго времени суток!
Есть необходимость создать программу на С++ которая будет записывать RTSP поток в файл с функцией предзаписи. Т.е. чтобы программа постоянно производила запись с камеры, а если есть событие, то сохраняла эту запись, ну как на ручных видеокамерах, системах наблюдения.
Например, камера пишет в буфер 30 секунд, каждые 30 секунд буфер обнуляется и в него снова происходит запись, все это длится до тех пор, пока не произойдет событие (пока программа не получит сигнал "START", не важно каким способом), если получен такой сигнал, программа не затирает буфер, а продолжает запись, например до 120 секунд или следующего сигнала "STOP", после чего вся запись сохраняется в файл и цикл пошел сначала, таким образ я получаю съемку за несколько секунд до события.

Данную программу я написал, но в силу того, что я не смог разобраться с помощью чего лучше писать такую программу (FFMPEG, LibVLC, Live555), буфером у меня выступает реальный файл на жестком диске, а вместо n-го количества строк кода у меня одна строка ввиде "system(ffmpeg -i "rtsp://admin:admin@192.168.1.106:554/0/" -r 25 -acodec aac -strict -2 -vcodec copy cam__buff_1.mp4)" и мне кажется, что это не совсем верное решение задачи)), исходя из это два вопроса:

1. Насколько такое решение заслуживает шанс на жизнь?
2. Кто может подсказать, какая из библиотек больше подходит для моей задачи (FFMPEG, LibVLC, Live555), c чего начать полному нубу в плане работы с видео, может у кого-то есть примеры?

Спасибо всем отозвавшимся!

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3271
    • Просмотр профиля
Re: Запись RTSP потока через свою программу
« Ответ #1 : 26 Июля 2016, 23:50:57 »
Это ещё зависит от того, в каком формате с камеры идёт видеопоток.
Я имел дело только с MJPEG, из пакетов, передаваемых камерой, собирал очередной jpg
и уже его сохранял в каталоге на диске, а потом моя же программа их воспроизводила,
но она была написана в Qt. В Qt можно писать и консольные программы.
Вы можете просто сохранять пакеты от камеры в каталоге, а не фильм в файле,
а потом воспроизводить видеопоток из этих пакетов так же, как если бы они
шли с камеры, но это, наверное, не то, что вы хотите.
Пётр.

Оффлайн Vlad.V

  • Автор темы
  • Активист
  • *
  • Сообщений: 478
    • Просмотр профиля
Re: Запись RTSP потока через свою программу
« Ответ #2 : 27 Июля 2016, 02:01:17 »
Спасибо, поток идёт в h264. Я думаю к QT, тоже подключилась какая-то библиотека...

 

Страница сгенерирована за 0.016 секунд. Запросов: 21.