LINUX.ORG.RU

Запись RTSP стрима + рестриминг

 , ,


1

1

Есть IP камера (в будущем две) которая отдает RTSP стрим. Задача: писать стрим в файл с разбиением по размеру или времени и рестримить поток, чтобы несколько пользователей могли смотреть +- текущую картину.

Была идея использовать nginx + rtmp модуль. В принципе все работает, но запись идет только когда кто-то смотрит стрим, что нехорошо.

rtmp_auto_push on;
rtmp_auto_push_reconnect 1s;

rtmp {
    server {
        listen 1935;
        ping 30s;
        notify_method get;
        application video {
            live on;           # Enable live streaming

            allow play all;
            exec_pull /usr/bin/ffmpeg -i rtsp://xxx -vcodec copy -acodec copy -f flv rtmp://localhost:1935/live/cam1;

            record all;
            record_path /media/video;
            record_suffix -%y-%m-%d-%T.flv;
            record_max_size 128M;
        }
    }
}

Есть идеи?

П.С. Сейчас все запущено на cubietruck, т.е. ресурсов не много.



Последнее исправление: strange_v (всего исправлений: 1)

Подход зависит от твоих возможностей. Если умеешь в программирование, то можно с помощью live555 получать и транслировать по RTSP. Запись в файл через libavformat.

Можно попытаться собрать в консоли из говна и палок с помощью gstreamer и gst-rtsp-server. Получать поток через rtspsrc. Писать в файл через splitmuxsink.

ox55ff ★★★★★
()
Ответ на: комментарий от strange_v

А что мешает для записи использовать ffmpeg, а для рестримминга какой нить motion?

burato ★★★★★
()
Ответ на: комментарий от strange_v

exec_pull же выполняется, когда кто-то смотрит, вот отсюда и эффект, что запись идет, только когда смотрят. Замените на exec_static или как-то так

goingUp ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.