Кодировщик GStreamer avenc_mjpeg не работает

#c #stream #video-streaming #gstreamer #gstreamer-1.0

Вопрос:

Я транслирую MJPEG с помощью RTSP-сервера GStreamer и использую кодер jpegenc, но я хотел бы иметь возможность изменять битрейт, поэтому вместо этого я пытаюсь использовать avenc_mjpeg, но, похоже, не могу заставить его работать. Я что-то упускаю?

Это работает:

 string server_configs = "v4l2src device=/dev/video2 ! jpegenc ! rtpjpegpay name=pay0 pt=96";
gst_rtsp_media_factory_set_launch(factory, server_configs.c_str());
 

Это не работает:

 string server_configs = "v4l2src device=/dev/video2 ! avenc_mjpeg ! rtpjpegpay name=pay0 pt=96";
gst_rtsp_media_factory_set_launch(factory, server_configs.c_str());
 

Я также попытался изменить формат ввода кодера следующим образом:

 string server_configs = "v4l2src device=/dev/video2 !  video/x-raw, format=I420 ! avenc_mjpeg ! rtpjpegpay name=pay0 pt=96";
gst_rtsp_media_factory_set_launch(factory, server_configs.c_str());
 

Единственная ошибка, которую дает мне GST_DEBUG=3, — это:

 0:00:01.117815741 12592 0x7fe5f0003520 ERROR             rtspclient rtsp-client.c:1077:find_media: client 0x7fe61c2245e0: can't prepare media
 

Любая помощь будет признательна, спасибо!