Pipeline problem

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

Pipeline problem

morrisford

I am having a problem with a pipeline that I am working on. Actually,
several interconnected pipelines. The origin is in a gstreamer-java
routine attached to a large java app. The pipe coming out of gstreamer
is essentially "appsrc ! ffmpegcolorspace ! ffenc_mpeg4 !
tcpserversink"

The caps coming out of appsrc is video/x-raw-rgb,width=320,
height=240, bpp=32, endianness=4321,
depth=24,red_mask=65280,green_mask=16711680,blue_mask=-16777216,framerate=10/1

If I connect to that tcpserver with a pipe like:
gst-launch tcpclientsrc host=127.0.0.1 port=3000  ! decodebin !
xvimagesink sync=false
I see the expected video.

The desired end result is to have a pipe that connects to that
tcpserver and creates a rtsp feed. I have tried about a million
variations but cannot find a pipe that will work as expected. It
either won't work at all or quits shortly after connecting. Here is an
example of the pipe:

./test-launch "( tcpclientsrc port=3000 ! decodebin ! ffenc_mpeg4 !
rtpmp4vpay name=pay0 pt=96 )"

Please note the "decodebin ! ffenc_mpeg4" in there. I assume that is
funky but I did that to get it to run without errors.

Help! Please!
Morris

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Pipeline problem

Tal Shalif-3
If you are already using Pipeline.launch() to create your pipelines from inside Java, your task now is to choose a pipeline which works. This can/should be done outside of Java using gst-launch. If you are already doing this, then your next step is to simplify your pipelines to the bare minimum (shed elements, replace real sources with test sources with which require simple and stable codecs, replace decodebin elements with 'real' elements, etc.). Once you have dummy pipelines working, you can try adding/replacing elements to slowly work towards your pipeline goal using the good-old trial-and-error method. 

Gstreamer-java should not be used at all until you have figured-out a functional pipeline graph.

On 24 February 2011 10:24, Morris Ford <[hidden email]> wrote:

I am having a problem with a pipeline that I am working on. Actually,
several interconnected pipelines. The origin is in a gstreamer-java
routine attached to a large java app. The pipe coming out of gstreamer
is essentially "appsrc ! ffmpegcolorspace ! ffenc_mpeg4 !
tcpserversink"

The caps coming out of appsrc is video/x-raw-rgb,width=320,
height=240, bpp=32, endianness=4321,
depth=24,red_mask=65280,green_mask=16711680,blue_mask=-16777216,framerate=10/1

If I connect to that tcpserver with a pipe like:
gst-launch tcpclientsrc host=127.0.0.1 port=3000  ! decodebin !
xvimagesink sync=false
I see the expected video.

The desired end result is to have a pipe that connects to that
tcpserver and creates a rtsp feed. I have tried about a million
variations but cannot find a pipe that will work as expected. It
either won't work at all or quits shortly after connecting. Here is an
example of the pipe:

./test-launch "( tcpclientsrc port=3000 ! decodebin ! ffenc_mpeg4 !
rtpmp4vpay name=pay0 pt=96 )"

Please note the "decodebin ! ffenc_mpeg4" in there. I assume that is
funky but I did that to get it to run without errors.

Help! Please!
Morris

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Pipeline problem

morrisford
Tal,
Thanks for your response.

The only part inside java is the part with appsrc which has to be in java because it is grabbing frames from a java program. I am doing the rest from command line with test-launch and gst-launch.

The pipeline inside the java program ends with tcpserversink port=3000 and I am trying to create a rtsp pipeline that will connect to that.

I can connect a pipeline to the tcpserversink output that displays with xvimagesink successfully.
I can create a test-launch pipeline that uses videotestsrc to do a rtsp stream successfully.
I can connect to that test-launch pipeline with a gst-launch pipeline using rtspsrc to display the video successfully.
I can connect to that test-launch pipeline with either quicktime or vlc successfully.

So, I have working test pieces for every part of what I am trying to do.

When I try to do a test-launch pipeline that connects to the tcpserversink output and is supposed to create a rtsp connection, nothing can connect to it. A local gst-launch using rtspsrc cannot connect. Quicktime cannot connect. Vlc cannot connect.

I cannot find out what is wrong. I have been trying to make this work correctly forl days. More details of the pipes I am trying are in the previous email. Any clues about how to try to figure out why this won't work would be greatly appreciated.

Morris

On Wed, Feb 23, 2011 at 10:46 PM, Tal Shalif <[hidden email]> wrote:
If you are already using Pipeline.launch() to create your pipelines from inside Java, your task now is to choose a pipeline which works. This can/should be done outside of Java using gst-launch. If you are already doing this, then your next step is to simplify your pipelines to the bare minimum (shed elements, replace real sources with test sources with which require simple and stable codecs, replace decodebin elements with 'real' elements, etc.). Once you have dummy pipelines working, you can try adding/replacing elements to slowly work towards your pipeline goal using the good-old trial-and-error method. 

Gstreamer-java should not be used at all until you have figured-out a functional pipeline graph.

On 24 February 2011 10:24, Morris Ford <[hidden email]> wrote:

I am having a problem with a pipeline that I am working on. Actually,
several interconnected pipelines. The origin is in a gstreamer-java
routine attached to a large java app. The pipe coming out of gstreamer
is essentially "appsrc ! ffmpegcolorspace ! ffenc_mpeg4 !
tcpserversink"

The caps coming out of appsrc is video/x-raw-rgb,width=320,
height=240, bpp=32, endianness=4321,
depth=24,red_mask=65280,green_mask=16711680,blue_mask=-16777216,framerate=10/1

If I connect to that tcpserver with a pipe like:
gst-launch tcpclientsrc host=127.0.0.1 port=3000  ! decodebin !
xvimagesink sync=false
I see the expected video.

The desired end result is to have a pipe that connects to that
tcpserver and creates a rtsp feed. I have tried about a million
variations but cannot find a pipe that will work as expected. It
either won't work at all or quits shortly after connecting. Here is an
example of the pipe:

./test-launch "( tcpclientsrc port=3000 ! decodebin ! ffenc_mpeg4 !
rtpmp4vpay name=pay0 pt=96 )"

Please note the "decodebin ! ffenc_mpeg4" in there. I assume that is
funky but I did that to get it to run without errors.

Help! Please!
Morris

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel