我正在尝试修改当前的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管道的专家。
感谢您的任何帮助
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