Всем доброго времени суток!
Есть необходимость создать программу на С++ которая будет записывать 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 чего начать полному нубу в плане работы с видео, может у кого-то есть примеры?
Спасибо всем отозвавшимся!