[rtmpdump] Piping output to gstreamer / mplayer etc?
hyc at highlandsun.com
hyc at highlandsun.com
Fri Jan 29 00:13:02 CET 2010
On Fri, Jan 29, 2010 at 10:57:52AM +1300, Tim Smart wrote:
> Hi fellow dumpers,
>
> I am wondering if is possible to pipe / send the output as either a source
> for gstreamer, or play it within another player?
Sure, just omit the "-o output" option and it will write the stream
to stdout. Pipe it to anything you want from there.
> The reason I ask, is because it would be something awesome to have this set
> up in a gstreamer pipline:
>
> ------------------------------------------------
> queue -> playbin2
> rtmpdumpsrc -> tee |
> queue -> filesink
> ------------------------------------------------
>
> Meaning I could watch streams without the stupid overhead of flash, and also
> write them to disk at the same time! Any thoughts / opinions on how make
> this possible are appreciated!
Frankly I don't think this is even necessary. I watch streams as they're
downloading, all the time. "rtmpdump -o xx.flv" in one process, and
"mplayer xx.flv" in a separate session. As long as the download speed
is faster than the playback rate, you're fine.
Playing directly from a pipe can really limit your throughput if the
player doesn't read greedily from the pipe. The system only buffers 4KB
of data in a pipe, so if the player reads too slowly it will cause the
rtmpdump process to block waiting to write. And with only 4KB of buffer,
if there's a temporary pause in the download speed, the player will glitch.
All in all, it's better to use a tmp file as the buffer between the two.
More information about the rtmpdump
mailing list