如何在RTSP上发送MJPEG帧

问题描述 投票:0回答:1

我正在尝试修改当前的GStreamer管道

appsrc name=source caps=video/x-raw, format=BGR,width=640,height=480,framerate=30/1 ! videoconvert ! x264enc speed-preset=ultrafast tune=zerolatency ! rtph264pay config-interval=1 name=pay0 pt=96

我在python RTSP Server中使用的是使用MJPEG而不是x264。

尤其是,因为我读here avenc_mjpeg是性能更好的编码器,所以我决定使用它。我尝试的第一件事是用avenc_mjpeg替换x264enc及其参数。

另一方面,在我用来读取流的命令中(到目前为止,从终端)

gst-launch-1.0 rtsprc location=127.0.0.1:8554/test is-live=true ! rtph264depay ! h264parse ! avdec_264 ! videoconvert ! videoscale ! autovideosink

我尝试删除h264parse并将avdec_264替换为avdec_mjpeg。

但是这不起作用。

Here我启发我开发RTSP服务器的代码

我不是GStreamer管道的专家。

感谢您的任何帮助

python gstreamer h.264 rtsp mjpeg
1个回答
0
投票

MJPEG基本上是一系列JPEG图像。因此,您可以将帧转换为JPEG并进行传输。

根据您的情况:

appsrc name=source caps=video/x-raw, format=BGR,width=640,height=480,framerate=30/1 ! videoconvert ! jpegenc ! rtpjpegpay name=pay0 pt=96

对于接收方:

gst-launch-1.0 rtsprc location=127.0.0.1:8554/test is-live=true ! rtpjpegdepay ! jpegdec ! videoconvert ! videoscale ! autovideosink
© www.soinside.com 2019 - 2024. All rights reserved.