tee won't go in playing state

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

tee won't go in playing state

filnet
Hi,

The following pipeline will not got to the playing state (using a Windows msys2 build of 1.9.90).

videotestsrc ! tee name=t \
   t. ! queue ! videoconvert ! autovideosink \
   t. ! queue ! videoconvert ! x264enc bitrate=1024 ! avimux ! filesink location=capture.avi

It goes to pause state and just hangs there. A single frame is shown in the videosink.

$ gst-launch-1.0.exe videotestsrc ! tee name=t t. ! queue ! videoconvert ! autovideosink t. ! queue ! videoconvert ! x264enc bitrate=1024 ! avimux ! filesink location=capture.avi
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...


Both branches work fine when used on their own.

Cheers,
Philippe.


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

Re: tee won't go in playing state

Arjen Veenhuizen
Did you try to put async=false on either of the sinks?
Reply | Threaded
Open this post in threaded view
|

Re: tee won't go in playing state

Sebastian Dröge-3
In reply to this post by filnet
On Wed, 2016-10-19 at 20:02 +0000, philippe renon wrote:

> Hi,
>
> The following pipeline will not got to the playing state (using a
> Windows msys2 build of 1.9.90).
>
> videotestsrc ! tee name=t \
>    t. ! queue ! videoconvert ! autovideosink \
>    t. ! queue ! videoconvert ! x264enc bitrate=1024 ! avimux !
> filesink location=capture.avi
>
> It goes to pause state and just hangs there. A single frame is shown
> in the videosink.
>
> $ gst-launch-1.0.exe videotestsrc ! tee name=t t. ! queue !
> videoconvert ! autovideosink t. ! queue ! videoconvert ! x264enc
> bitrate=1024 ! avimux ! filesink location=capture.avi
> Setting pipeline to PAUSED ...
> Pipeline is PREROLLING ...
> Redistribute latency...
>
>
> Both branches work fine when used on their own.
The problem here is that by default, x264enc has ~3 seconds of latency
and queue only has space for 1 second.

Either increase the queue limit (at the non-x264enc branch) to more
than 3 seconds (and disable the buffers/bytes limits), or change the
x264enc settings to have a lower latency (e.g. tune=zerolatency).

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (949 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: tee won't go in playing state

filnet
Adding async=false to the filesink works. The pipeline goes to running state.

I will try the other suggested solutions.




Le Jeudi 20 octobre 2016 6h22, Sebastian Dröge <[hidden email]> a écrit :


On Wed, 2016-10-19 at 20:02 +0000, philippe renon wrote:

> Hi,
>
> The following pipeline will not got to the playing state (using a
> Windows msys2 build of 1.9.90).
>
> videotestsrc ! tee name=t \
>    t. ! queue ! videoconvert ! autovideosink \
>    t. ! queue ! videoconvert ! x264enc bitrate=1024 ! avimux !
> filesink location=capture.avi
>
> It goes to pause state and just hangs there. A single frame is shown
> in the videosink.
>
> $ gst-launch-1.0.exe videotestsrc ! tee name=t t. ! queue !
> videoconvert ! autovideosink t. ! queue ! videoconvert ! x264enc
> bitrate=1024 ! avimux ! filesink location=capture.avi
> Setting pipeline to PAUSED ...
> Pipeline is PREROLLING ...
> Redistribute latency...
>
>
> Both branches work fine when used on their own.

The problem here is that by default, x264enc has ~3 seconds of latency
and queue only has space for 1 second.

Either increase the queue limit (at the non-x264enc branch) to more
than 3 seconds (and disable the buffers/bytes limits), or change the
x264enc settings to have a lower latency (e.g. tune=zerolatency).

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel




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

Re: tee won't go in playing state

Sebastian Dröge-3
On Thu, 2016-10-20 at 08:48 +0000, philippe renon wrote:
> Adding async=false to the filesink works. The pipeline goes to
> running state.
>
> I will try the other suggested solutions.

For synchronizing video sinks (like autovideosink), async=false is
usually not a good idea and can cause various problems later.

For filesink or similar it's ok, also in special other scenarios.

--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (949 bytes) Download Attachment