Gstreamer AVNU Stdin Stdout Streaming doubt

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Gstreamer AVNU Stdin Stdout Streaming doubt

christy_jp
This post was updated on .
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Gstreamer AVNU Stdin Stdout Streaming doubt

Arjen Veenhuizen
You will have to tell the receiving end what kind of stream it is receiving. Assuming default videotestsrc settings, its caps will be something like "video/x-raw,format=I420,width=320,height=240,framerate=(fraction)25/1,pixel-aspect-ratio=(fraction)1/1".
In that case, your receiving pipeline should read something like (untested):
/listener eth3 1024 | gst-launch-1.0 fdsrc fd=0 ! queue ! rawvideoparse format=I420 width=320 height=240 framerate=25/1 ! queue ! autovideosink

Note that setting sync=false is hardly ever a good solution.
Reply | Threaded
Open this post in threaded view
|

Re: Gstreamer AVNU Stdin Stdout Streaming doubt

christy_jp
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Gstreamer AVNU Stdin Stdout Streaming doubt

christy_jp
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Gstreamer AVNU Stdin Stdout Streaming doubt

Arjen Veenhuizen
I checked your pipelines and they indeed will not work:
You sender pipeline:
gst-launch-1.0 --gst-debug=*:2 -v uridecodebin uri=file:/mnt/ssd/Serenity_Trailer.mp4 caps="video/x-h264" ! h264parse ! video/x-h264,stream-format=byte-stream ! rtph264pay ! fdsink fd=1 | ./talker eth0 1024

is missing a demultiplexer element, e.g. qtdemux:
gst-launch-1.0 --gst-debug=*:2 -vm uridecodebin uri=file:/mnt/ssd/Serenity_Trailer.mp4 ! qtdemux ! h264parse ! video/x-h264,stream-format=byte-stream ! rtph264pay ! fdsink fd=1 | ./talker eth0 1024

When running this pipeline, as said before, you will find the correct application/x-rtp caps shown at stdout. You have to copy these caps over to the receiver pipeline. Otherwise, the receiver pipeline has no means to figure out what it is receiving.

./listener eth3 1024 | gst-launch-1.0 --gst-debug=*:2 -v fdsrc fd=0 ! capsfilter caps="application/x-rtp, ....." ! rtpjitterbuffer latency=200 ! rtph264depay ! decodebin ! videoconvert ! autovideosink

Btw, you could have used gst-inspect-1.0 fdsrc to see that fdsrc does not have a caps property.

Example of rtp h264 caps:
"application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)42c01e, sprop-parameter-sets=(string)"Z0LAHtwLQ9sBEAAAAwAQAAADAyhA\,aM48gA\=\=", payload=(int)96, ssrc=(uint)2323517954, timestamp-offset=(uint)2162767804, seqnum-offset=(uint)16555, a-framerate=(string)25"
Reply | Threaded
Open this post in threaded view
|

Re: Gstreamer AVNU Stdin Stdout Streaming doubt

christy_jp
CONTENTS DELETED
The author has deleted this message.