Regarding dx9screencapsrc udp pipleline
Ashish Gupta
ashish.krish.gupta at gmail.com
Fri Dec 4 00:17:10 PST 2015
When I play the below example(in windows)
Server
gst-launch-1.0 videotestsrc ! x264enc ! h264parse ! rtph264pay ! udpsink
host=127.0.0.1 port=5000
Client
gst-launch-1.0 udpsrc port=5000 !
application/x-rtp,encoding-name=H264,payload=96 ! rtpjitterbuffer !
rtph264depay ! h264parse ! avdec_h264 ! autovideosink
It works perfectly well.
But when I play the same example with dx9screencapsrc
Server
gst-launch-1.0 dx9screencapsrc ! video/x-raw,framerate=30/1 ! queue !
videoconvert ! x264enc ! h264parse ! rtph264pay ! udpsink host=127.0.0.1
port=5000
Client
gst-launch-1.0 udpsrc port=5000 !
application/x-rtp,encoding-name=H264,payload=96 ! rtpjitterbuffer !
rtph264depay ! h264parse ! avdec_h264 ! autovideosink
client gives me the below error
C:\Users\ashg>gst-launch-1.0 -v udpsrc port=5000 !
application/x-rtp,encoding-name=H264,payload=96 ! rtpjitterbuffer !
rtph264depay ! h264parse ! avde
c_h264 ! autovideosink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps =
"application/x-rtp\,\ encoding-name\=\(string\)H264\,\
payload\=\(int\)96\,\ media
\=\(string\)video\,\ clock-rate\=\(int\)90000"
/GstPipeline:pipeline0/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink:
caps = "application/x-rtp\,\ encoding-name\=\(string\)H264\,\
payload\=\(int\)
96\,\ media\=\(string\)video\,\ clock-rate\=\(int\)90000"
/GstPipeline:pipeline0/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink:
caps = "application/x-rtp\,\ encoding-name\=\(string\)H264\,\
payload\=\(int\)
96\,\ media\=\(string\)video\,\ clock-rate\=\(int\)90000"
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps =
"video/x-h264\,\ stream-format\=\(string\)avc\,\ alignment\=\(string\)au\,\
co
dec_data\=\(buffer\)01f40032ffe1001967f40032919b280f004bd80880000003008000001e478c18cb01000668ebec448440\,\
level\=\(string\)5\,\ profile\=\(string\)h
igh-4:4:4"
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps =
"video/x-h264\,\ stream-format\=\(string\)avc\,\ alignment\=\(string\)au\,\
codec_da
ta\=\(buffer\)01f40032ffe1001967f40032919b280f004bd80880000003008000001e478c18cb01000668ebec448440\,\
level\=\(string\)5\,\ profile\=\(string\)high-4:
4:4\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ width\=\(int\)1920\,\
height\=\(int\)1200\,\ framerate\=\(fraction\)30/1\,\
parsed\=\(boolean\)true"
Redistribute latency...
/GstPipeline:pipeline0/avdec_h264:avdec_h264-0.GstPad:sink: caps =
"video/x-h264\,\ stream-format\=\(string\)avc\,\ alignment\=\(string\)au\,\
codec_d
ata\=\(buffer\)01f40032ffe1001967f40032919b280f004bd80880000003008000001e478c18cb01000668ebec448440\,\
level\=\(string\)5\,\ profile\=\(string\)high-4
:4:4\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\ width\=\(int\)1920\,\
height\=\(int\)1200\,\ framerate\=\(fraction\)30/1\,\
parsed\=\(boolean\)true"
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps =
"video/x-h264\,\ stream-format\=\(string\)avc\,\ alignment\=\(string\)au\,\
codec_d
ata\=\(buffer\)01f40032ffe1001967f40032919b280f004bd80880000003008000001e478c18cb01000668ebec448440\,\
level\=\(string\)5\,\ profile\=\(string\)high-4
:4:4"
/GstPipeline:pipeline0/avdec_h264:avdec_h264-0.GstPad:src: caps =
"video/x-raw\,\ format\=\(string\)Y444\,\ width\=\(int\)1920\,\
height\=\(int\)1200\
,\ interlace-mode\=\(string\)progressive\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\ chroma-site\=\(string\)mpeg2\,\
colorimetry\=\(string\)bt709\,\ fra
merate\=\(fraction\)30/1"
ERROR: from element /GstPipeline:pipeline0/GstUDPSrc:udpsrc0: Internal data
flow error.
Additional debug info:
gstbasesrc.c(2943): gst_base_src_loop ():
/GstPipeline:pipeline0/GstUDPSrc:udpsrc0:
streaming task paused, reason not-negotiated (-4)
Execution ended after 0:00:08.986212260
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
What problem it can be?
Secondly, is it possible to send the byte streams(dx9screencapsrc) over the
udp sink server and then on
client side, parse with h264 and play it.
For e.g below works for videotestsrc
gst-launch-1.0 videotestsrc ! x264enc ! udpsink host=127.0.0.1 port=5000
gst-launch-1.0 udpsrc port=5000 ! h264parse ! avdec_h264 ! autovideosink
Can I do the same with dx9screencapsrc?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20151204/62e0915d/attachment.html>
More information about the gstreamer-devel
mailing list