Basic question about using playbin/playbin2
hoyt6 at llnl.gov
Thu Mar 10 09:34:52 PST 2011
> Is there a way to configure the amount of time playbin will try to connect before giving up?
It gets complicated and it depends on what playbin autoplugs and determines is its source. You'll need to listen to the various signals it produces and catch when it determines what its source is (in the past at least, you had to catch when playbin2 added a uridecodebin and then catch when uridecodebin added a decodebin and then catch when the decodebin added its source element -- a bit convoluted for sure). Then you can adjust the source's parameters. But elements like souphttpsrc don't give you much to play with. neonhttpsrc, however, has a connect-timeout property, for instance.
> I tried playbin2, but it wants to buffer for 10-15 seconds before it starts giving me any data.
There are various things that come into play here. If you're using MJPEG, then the auto-plugged multipartdemux in playbin2 can take a while before it determines (decides) that you're only looking at motion jpeg and don't have another (audio) stream muxed as well. With OSSBuild (I don't recall if this was added upstream or not), you can use a pipeline like the following (I did this from memory so it may not be 100% perfect) to take out that decision time:
gst-launch souphttpsrc location=http://...../video.mjpg ! multipartdemux single-stream=true ! jpegdec ! ffmpegcolorspace ! autovideosink
Note the addition of the "single-stream=true" property. I'm not much help w/ mpeg2. I'd also suggest you use the latest OSSBuild, v0.10.7 beta 4 -- it's almost as stable as 0.10.6 and uses a more up-to-date gstreamer.
More information about the gstreamer-devel