About videotest and rtsp-server : is-live true and false

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

About videotest and rtsp-server : is-live true and false

yangsb
I am trying my rtsp-server using videotestsrc as the video input.
I found that if the property is-live of videotestsrc is false , my server works fine.
Buf if is-live of videotestsrc is true , my server still works , but the client ( vlc media player  )
can only receiving  packets , not able to decode and display images.

I wish to know what happens to videotestsrc when is-live becomes true ?

Hope to get some advice

Thanks .
Best regards.
Reply | Threaded
Open this post in threaded view
|

Re: About videotest and rtsp-server : is-live true and false

Luca Ognibene-3
On Wed, Apr 1, 2009 at 12:37 PM, yangsb <[hidden email]> wrote:

>
> I am trying my rtsp-server using videotestsrc as the video input.
> I found that if the property is-live of videotestsrc is false , my server
> works fine.
> Buf if is-live of videotestsrc is true , my server still works , but the
> client ( vlc media player  )
> can only receiving  packets , not able to decode and display images.
>
> I wish to know what happens to videotestsrc when is-live becomes true ?
>

Hi, i had the same problem yesterday so i know what's going on! At
least i think..
If you set is-live to false:
 * client(vlc) send DESCRIBE request
 * rtsp-server creates your pipeline
 * rtsp-server set_state(gst.STATE_PAUSED) and wait for preroll
 * rtsp-server reply to client
 * client send SETUP and PLAY request
 * rtsp-server set_state(gst.STATE_PLAYING) your pipeline

If you set is-live to true:
 * client(vlc) send DESCRIBE request
 * rtsp-server creates your pipeline
 * rtsp-server set_state(gst.STATE_PLAYING)  (there's no preroll in a
live pipeline)
 * rtsp-server set_state(gst.STATE_PAUSED)
 * rtsp-server reply to client
 * client send SETUP and PLAY request
 * rtsp-server set_state(gst.STATE_PLAYING) your pipeline

This way your client loses buffers created from the first to the
second set_state and if you're encoding in mpeg4/h264 or so your
client will need to wait for the next keyframe to display something.
This is whay i've understood yesterday looking at rtsp-server code
(mainly rtsp-media.c).. please correct me if i'm wrong :)

ciao
Luca

------------------------------------------------------------------------------
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: About videotest and rtsp-server : is-live true and false

yangsb
Hi, Luca
Thanks for your reply.
I need to post my environment .
gstreamer-0.10.21
gst-plugin-base-0.10.21
gst-plugin-good-0.10.10
gst-plugin-ugly-0.10.9
gst-plugin-bad-0.10.10
gst-rtsp-server-0.10.1 ( http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/commit/?id=e789a8fdf31aeae4234a2fb7a7e4b251b47edfa5 )

I think the bug may be lies in the rtsp-server.
Plesae check this version of rtsp-server:
http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/commit/?id=de1ebbc21be20ab1ac6a6888e9830e084264e4d5


Thanks
Best regards.

Luca Ognibene-3 wrote
On Wed, Apr 1, 2009 at 12:37 PM, yangsb <yangsb05@gmail.com> wrote:
>
> I am trying my rtsp-server using videotestsrc as the video input.
> I found that if the property is-live of videotestsrc is false , my server
> works fine.
> Buf if is-live of videotestsrc is true , my server still works , but the
> client ( vlc media player  )
> can only receiving  packets , not able to decode and display images.
>
> I wish to know what happens to videotestsrc when is-live becomes true ?
>

Hi, i had the same problem yesterday so i know what's going on! At
least i think..
If you set is-live to false:
 * client(vlc) send DESCRIBE request
 * rtsp-server creates your pipeline
 * rtsp-server set_state(gst.STATE_PAUSED) and wait for preroll
 * rtsp-server reply to client
 * client send SETUP and PLAY request
 * rtsp-server set_state(gst.STATE_PLAYING) your pipeline

If you set is-live to true:
 * client(vlc) send DESCRIBE request
 * rtsp-server creates your pipeline
 * rtsp-server set_state(gst.STATE_PLAYING)  (there's no preroll in a
live pipeline)
 * rtsp-server set_state(gst.STATE_PAUSED)
 * rtsp-server reply to client
 * client send SETUP and PLAY request
 * rtsp-server set_state(gst.STATE_PLAYING) your pipeline

This way your client loses buffers created from the first to the
second set_state and if you're encoding in mpeg4/h264 or so your
client will need to wait for the next keyframe to display something.
This is whay i've understood yesterday looking at rtsp-server code
(mainly rtsp-media.c).. please correct me if i'm wrong :)

ciao
Luca

------------------------------------------------------------------------------
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: About videotest and rtsp-server : is-live true and false

yangsb
Hi , luca
I tried this version :
http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/commit/?id=de1ebbc21be20ab1ac6a6888e9830e084264e4d5
But it seems doesn't work.

I read the log messages from client( vlc media player  ).
###########################################
packetizer_h264 warning: waiting for SPS/PPS
###########################################
So, the thing we miss between the two set_state may be NAL_SPS

Hope to be helpful


yangsb wrote
Hi, Luca
Thanks for your reply.
I need to post my environment .
gstreamer-0.10.21
gst-plugin-base-0.10.21
gst-plugin-good-0.10.10
gst-plugin-ugly-0.10.9
gst-plugin-bad-0.10.10
gst-rtsp-server-0.10.1 ( http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/commit/?id=e789a8fdf31aeae4234a2fb7a7e4b251b47edfa5 )

I think the bug may be lies in the rtsp-server.
Plesae check this version of rtsp-server:
http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/commit/?id=de1ebbc21be20ab1ac6a6888e9830e084264e4d5


Thanks
Best regards.

Luca Ognibene-3 wrote
On Wed, Apr 1, 2009 at 12:37 PM, yangsb <yangsb05@gmail.com> wrote:
>
> I am trying my rtsp-server using videotestsrc as the video input.
> I found that if the property is-live of videotestsrc is false , my server
> works fine.
> Buf if is-live of videotestsrc is true , my server still works , but the
> client ( vlc media player  )
> can only receiving  packets , not able to decode and display images.
>
> I wish to know what happens to videotestsrc when is-live becomes true ?
>

Hi, i had the same problem yesterday so i know what's going on! At
least i think..
If you set is-live to false:
 * client(vlc) send DESCRIBE request
 * rtsp-server creates your pipeline
 * rtsp-server set_state(gst.STATE_PAUSED) and wait for preroll
 * rtsp-server reply to client
 * client send SETUP and PLAY request
 * rtsp-server set_state(gst.STATE_PLAYING) your pipeline

If you set is-live to true:
 * client(vlc) send DESCRIBE request
 * rtsp-server creates your pipeline
 * rtsp-server set_state(gst.STATE_PLAYING)  (there's no preroll in a
live pipeline)
 * rtsp-server set_state(gst.STATE_PAUSED)
 * rtsp-server reply to client
 * client send SETUP and PLAY request
 * rtsp-server set_state(gst.STATE_PLAYING) your pipeline

This way your client loses buffers created from the first to the
second set_state and if you're encoding in mpeg4/h264 or so your
client will need to wait for the next keyframe to display something.
This is whay i've understood yesterday looking at rtsp-server code
(mainly rtsp-media.c).. please correct me if i'm wrong :)

ciao
Luca

------------------------------------------------------------------------------
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel