我正在学习Gstreamer,我想将视频流保存到文件中,然后再播放。
服务器中的视频流如下:
gst-launch-1.0 -v udpsrc port=10000 ! application/x-raw,media=(string)video,clock-rate=(int)90000,encoding-name=(string)JPEG,payload=(int)26 ! rtpjpegdepay ! queue ! tcpserversink port=10001 host=192.168.1.200
客户端中的视频流如下:
gst-launch-1.0 -v tcpclientsrc port=10001 host=192.168.1.200 ! application/x-rtp,encoding=JPEG,payload=26 ! rtpjpegdepay ! decodebin ! videoconvert ! x264enc ! avimux ! filesink location=video.avi
在接收器上,出现以下错误:
0:00:00.140217727 22318 0x555582cb6000 ERROR
rtpbasedepayload gstrtpbasedepayload.c:583:
gst_rtp_base_depayload_handle_event:<rtpjpegdepay0>
Segment with non-TIME format not supported
我可以通过以下管道解决它:
GST_DEBUG=3 gst-launch-1.0 -v port=10001 host=192.168.1.200 \
! image/jpeg,framerate=15/1 \
! jpegparse \
! queue \
! avdec_mjpeg ! x264enc ! queue \
! avimux \
! filesink location=test1.avi
我可以保存视频流,但是视频可以快速播放。
我该如何解决?
谢谢。