gstreamer из потока RTSP, изменение разрешения - PullRequest
0 голосов
/ 14 февраля 2019

У меня ноль Raspberry Pi, работающая v4l2rtspserver и передающая поток RTSP с кодированными H264 кадрами 1640x1232.Я бы хотел, чтобы gst-launch-1.0 подключился к нему, изменил его разрешение и куда-то выгрузил.

Поскольку я не могу понять, что это правильно, и поскольку мои history | grep gst-launch | wc -l отметки превысили 500, я подумал, чтоБуду просить о помощи.

Для тех, кому интересно, это моя проблема: Raspberrypi Zero слишком медленный для запуска MotionEyeOS, и поэтому я хотел бы оптимизировать обнаружение движения, запустив motion на масштабированнойнисходящий видеопоток (160x120, из канала или устройства обратной связи), сохраняя при этом полномасштабный видеопоток (предпочтительно через RTSP, но также все остальное будет в порядке).Другими словами, я пытаюсь разделить вывод с камеры на 2 потока и изменить разрешение одного потока.

Любые другие настройки для достижения этой цели (я пробовал несколько: v4l2loopback, ffmpeg + ffserver, mjpeg_streamer и т. Д.) Будет в порядке.

1 Ответ

0 голосов
/ 15 февраля 2019

Я наконец нашел это.Итак ... при условии, что у вас v4l2rtspserver работает с параметрами по умолчанию, конвейер gstreamer 1.0 для изменения размера видео на лету:

gst-launch-1.0 -e rtspsrc location="rtsp://127.0.0.1:8554/unicast" ! capsfilter caps="application/x-rtp, media=(string)video, payload=(int)96, encoding-name=(string)H264" ! queue ! rtph264depay ! h264parse ! avdec_h264 ! queue ! videoconvert ! videoscale ! video/x-raw,width=160,height=120 ! avenc_h264_omx ! h264parse ! matroskamux ! filesink location=./video.mkv

...