Here's my gstreamer version: gst-launch-1.0 --version gst-launch-1.0 version 1.12.4 GStreamer 1.12.4 I have two examples of queue working contrary to expectations gst-launch-1.0 -v -e \ videotestsrc ! tee name=t0 \ t0. ! queue ! x264enc ! matroskamux ! filesink location="test.mkv" \ t0. ! queue ! queue ! autovideosink Works, with both the file, and the on-screen display working gst-launch-1.0 -v -e \ videotestsrc ! tee name=t0 \ t0. ! queue ! x264enc ! matroskamux ! filesink location="test.mkv" \ t0. ! queue ! autovideosink Does not work. The autovideosink shows a single frame, and the mkv file is zero bytes. What makes the second queue needed on the last line? Here's another set of examples. gst-launch-1.0 -v -e \ videotestsrc ! tee name=t0 \ t0. ! queue ! autovideosink \ t0. ! queue ! autovideosink Works. gst-launch-1.0 -v -e \ videotestsrc ! tee name=t0 \ t0. ! queue ! autovideosink \ t0. ! autovideosink Doesn't. Why not? Why do both outputs from the tee need to be queues? At worst, I'd expect one autovideosink to work and the other to be blank, but instead one displays a single frame and the other is black. But the following DOES work. What's going on? gst-launch-1.0 -v -e \ videotestsrc ! tee name=t0 \ t0. ! queue ! autovideosink \ t0. ! queue ! autovideosink \ t0. ! autovideosink Why does adding a third output negate the need for a queue on all of them? Does anyone know why queue behaves like this? _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Le mercredi 21 mars 2018 à 00:55 -0500, Michael Jones a écrit :
> Here's my gstreamer version: > > gst-launch-1.0 --version > gst-launch-1.0 version 1.12.4 > GStreamer 1.12.4 > https://packages.gentoo.org/package/media-libs/gstreamer > > I have two examples of queue working contrary to expectations > > gst-launch-1.0 -v -e \ > videotestsrc ! tee name=t0 \ > t0. ! queue ! x264enc ! matroskamux ! filesink > location="test.mkv" \ > t0. ! queue ! queue ! autovideosink > > Works, with both the file, and the on-screen display working > > gst-launch-1.0 -v -e \ > videotestsrc ! tee name=t0 \ > t0. ! queue ! x264enc ! matroskamux ! filesink > location="test.mkv" \ > t0. ! queue ! autovideosink > > Does not work. The autovideosink shows a single frame, and the mkv > file is zero bytes. What makes the second queue needed on the last > line? With two queues, you have doubled the capacity. Default encoding settings for x264enc will introduce a very large delay, while the maximum queue size default to 10s or 10MB or 200 buffers (whatever is met first, see max-size-time, max-size-bytes and max-size-buffers property). If you would like to use this insanely high quality default settings of x264enc with a single queue, you'll have to increase this settings until it works. > > Here's another set of examples. > > gst-launch-1.0 -v -e \ > videotestsrc ! tee name=t0 \ > t0. ! queue ! autovideosink \ > t0. ! queue ! autovideosink > > Works. > > gst-launch-1.0 -v -e \ > videotestsrc ! tee name=t0 \ > t0. ! queue ! autovideosink \ > t0. ! autovideosink > > Doesn't. Why not? Why do both outputs from the tee need to be queues? > At worst, I'd expect one autovideosink to work and the other to be > blank, but instead one displays a single frame and the other is > black. > > But the following DOES work. What's going on? > > gst-launch-1.0 -v -e \ > videotestsrc ! tee name=t0 \ > t0. ! queue ! autovideosink \ > t0. ! queue ! autovideosink \ > t0. ! autovideosink > > Why does adding a third output negate the need for a queue on all of > them? > > Does anyone know why queue behaves like this? > > _______________________________________________ > 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 |
Free forum by Nabble | Edit this page |