Gstreamer One Liners: Unterschied zwischen den Versionen

aus Metalab, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Wechseln zu: Navigation, Suche
(Receive & dump synchronized video streams)
(Receive & play synchronized video streams)
Zeile 57: Zeile 57:
  
 
gst-launch-0.10 -v gstrtpbin name=rtpbin \
 
gst-launch-0.10 -v gstrtpbin name=rtpbin \
# Session 0: Join \
+
\ # Session 0: Join \
udpsrc caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, ssrc=(guint)469657143, payload=(int)96, clock-base=(guint)2841649723, seqnum-base=(guint)39869" port=9996 !\
+
udpsrc caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, ssrc=(guint)469657143, payload=(int)96, clock-base=(guint)2841649723, seqnum-base=(guint)39869" port=9996 ! \
 
rtpbin.recv_rtp_sink_0  \
 
rtpbin.recv_rtp_sink_0  \
rtpbin. ! rtpjpegdepay ! \  
+
rtpbin. ! rtpjpegdepay ! \
# Session 1: Decode video & adjust framerate \
+
\ # Session 1: Decode video & adjust framerate \
 
jpegdec ! videorate ! video/x-raw-yuv,framerate=15/1 ! \
 
jpegdec ! videorate ! video/x-raw-yuv,framerate=15/1 ! \
# Session 0: Play video \
+
\ # Session 0: Play video \
 
xvimagesink \
 
xvimagesink \
# Session 0: Receive RTCP packets \
+
\ # Session 0: Receive RTCP packets \
 
udpsrc port=9997 ! rtpbin.recv_rtcp_sink_0 \
 
udpsrc port=9997 ! rtpbin.recv_rtcp_sink_0 \
# Session 0: Send RTCP packets \
+
\ # Session 0: Send RTCP packets \
 
rtpbin.send_rtcp_src_0 ! multiudpsink clients="127.0.0.1:10000" sync=false async=false \
 
rtpbin.send_rtcp_src_0 ! multiudpsink clients="127.0.0.1:10000" sync=false async=false \
  
 
gst-launch-0.10 -v gstrtpbin name=rtpbin \
 
gst-launch-0.10 -v gstrtpbin name=rtpbin \
# Session 1: Join \
+
\ # Session 1: Join \
 
udpsrc caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, ssrc=(guint)469657143, payload=(int)96, clock-base=(guint)2841649723, seqnum-base=(guint)39869" port=9998 ! \
 
udpsrc caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, ssrc=(guint)469657143, payload=(int)96, clock-base=(guint)2841649723, seqnum-base=(guint)39869" port=9998 ! \
 
rtpbin.recv_rtp_sink_1  \
 
rtpbin.recv_rtp_sink_1  \
 
rtpbin. ! rtpjpegdepay ! \
 
rtpbin. ! rtpjpegdepay ! \
# Session 1: Decode video & adjust framerate \
+
\ # Session 1: Decode video & adjust framerate \
 
jpegdec ! videorate ! video/x-raw-yuv,framerate=15/1 ! \
 
jpegdec ! videorate ! video/x-raw-yuv,framerate=15/1 ! \
# Session 1: Play video \
+
\ # Session 1: Play video \
 
xvimagesink \
 
xvimagesink \
# Session 1: Receive RTCP packets \
+
\ # Session 1: Receive RTCP packets \
 
udpsrc port=9999 ! rtpbin.recv_rtcp_sink_1 \
 
udpsrc port=9999 ! rtpbin.recv_rtcp_sink_1 \
# Session 1: Send RTCP packets \
+
\ # Session 1: Send RTCP packets \
 
rtpbin.send_rtcp_src_1 ! multiudpsink clients="127.0.0.1:10001" sync=false async=false
 
rtpbin.send_rtcp_src_1 ! multiudpsink clients="127.0.0.1:10001" sync=false async=false
 
</pre>
 
</pre>

Version vom 9. Mai 2010, 11:48 Uhr

kind of.

Stereo video casting

Capture & send synchronized video streams

gst-launch-0.10 -v gstrtpbin name=rtpbin \
\ # Capture video0 \
v4l2src device=/dev/video0 ! \
'image/jpeg, width=(int)640, height=(int)480, framerate=(fraction)30/1' ! \
\ # Session 0: Create \
rtpjpegpay ! rtpbin.send_rtp_sink_0 \
rtpbin.send_rtp_src_0 ! multiudpsink clients="127.0.0.1:9996" \
\ # Session 0: Send RTCP packets \
rtpbin.send_rtcp_src_0 ! multiudpsink clients="127.0.0.1:9997" sync=false async=false \
\ # Session 0: Receive RTCP packets \
udpsrc port=10000 ! rtpbin.recv_rtcp_sink_0 \
\ # Capture video1 \
v4l2src device=/dev/video1 ! \
'image/jpeg, width=(int)640, height=(int)480, framerate=(fraction)30/1' ! \
\ # Session 1: Create \
rtpjpegpay ! rtpbin.send_rtp_sink_1 \
rtpbin.send_rtp_src_1 ! multiudpsink clients="127.0.0.1:9998" \
\ # Session 1: Receive RTCP packets \
rtpbin.send_rtcp_src_1 ! multiudpsink clients="127.0.0.1:9999" sync=false async=false \
\ # Session 1: Send RTCP packets \
udpsrc port=10001 ! rtpbin.recv_rtcp_sink_1

Receive & dump synchronized video streams

gst-launch-0.10 -v gstrtpbin name=rtpbin \
\ # Session 0: join \
udpsrc caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, ssrc=(guint)469657143, payload=(int)96, clock-base=(guint)2841649723, seqnum-base=(guint)39869" port=9996 ! \
rtpbin.recv_rtp_sink_0  \
rtpbin. ! rtpjpegdepay ! \
\ # Session 0: Dump video \
filesink location=session0.mjpeg \
\ # Session 0: Receive RTCP packets \
udpsrc port=9997 ! rtpbin.recv_rtcp_sink_0 \
\ # Session 0: Send RTCP packets \
rtpbin.send_rtcp_src_0 ! multiudpsink clients="127.0.0.1:10000" sync=false async=false \
\ # Session 1: join \
udpsrc caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, ssrc=(guint)469657143, payload=(int)96, clock-base=(guint)2841649723, seqnum-base=(guint)39869" port=9998 ! \
rtpbin.recv_rtp_sink_1  \
rtpbin. ! rtpjpegdepay ! \
\ # Session 1: Dump video \
filesink location=session1.mjpeg \
\ # Session 1: Receive RTCP packets \
udpsrc port=9999 ! rtpbin.recv_rtcp_sink_1 \
\ # Session 1: Send RTCP packets \
rtpbin.send_rtcp_src_1 ! multiudpsink clients="127.0.0.1:10001" sync=false async=false

Receive & play synchronized video streams


gst-launch-0.10 -v gstrtpbin name=rtpbin \
\ # Session 0: Join \
udpsrc caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, ssrc=(guint)469657143, payload=(int)96, clock-base=(guint)2841649723, seqnum-base=(guint)39869" port=9996 ! \
rtpbin.recv_rtp_sink_0  \
rtpbin. ! rtpjpegdepay ! \
\ # Session 1: Decode video & adjust framerate \
jpegdec ! videorate ! video/x-raw-yuv,framerate=15/1 ! \
\ # Session 0: Play video \
xvimagesink \
\ # Session 0: Receive RTCP packets \
udpsrc port=9997 ! rtpbin.recv_rtcp_sink_0 \
\ # Session 0: Send RTCP packets \
rtpbin.send_rtcp_src_0 ! multiudpsink clients="127.0.0.1:10000" sync=false async=false \

gst-launch-0.10 -v gstrtpbin name=rtpbin \
\ # Session 1: Join \
udpsrc caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, ssrc=(guint)469657143, payload=(int)96, clock-base=(guint)2841649723, seqnum-base=(guint)39869" port=9998 ! \
rtpbin.recv_rtp_sink_1  \
rtpbin. ! rtpjpegdepay ! \
\ # Session 1: Decode video & adjust framerate \
jpegdec ! videorate ! video/x-raw-yuv,framerate=15/1 ! \
\ # Session 1: Play video \
xvimagesink \
\ # Session 1: Receive RTCP packets \
udpsrc port=9999 ! rtpbin.recv_rtcp_sink_1 \
\ # Session 1: Send RTCP packets \
rtpbin.send_rtcp_src_1 ! multiudpsink clients="127.0.0.1:10001" sync=false async=false

Play dumped videos

gst-launch-0.10 -v \
# Open session0.mjpeg \
filesrc location=session0.mjpeg ! \
# Decode video & adjust framerate \
jpegdec ! videorate ! video/x-raw-yuv,framerate=15/1 ! \
# Play video \
xvimagesink \
# Open session1.mjpeg \
filesrc location=session1.mjpeg ! \
# Decode video & adjust framerate \
jpegdec ! videorate ! video/x-raw-yuv,framerate=15/1 ! \
# Play video \
xvimagesink