[gst-devel] filesink and pipe

Terry Leung terry83 at gmail.com
Fri Nov 7 08:01:26 CET 2008


Hi all,

I have a problem when i try to use a pipe as a file for filesink

What I want to do is to make a proxy to convert a file rtp
stream(audio,video) into a file for progressive download and the
progressive download will start before the end of stream

my testing pipeline is here:

gst-launch -m -v  ffmux_3gp name=mux ! filesink name=filesink
location=/home/video/pipe \
{ udpsrc name=audioudp port=23456 num-buffers=1000
caps="application/x-rtp, media=(string)audio, payload=(int)98,
clock-rate=(int)8000, encoding-name=(string)AMR,
encoding-params=(string)1, octet-align=(string)1" ! gstrtpjitterbuffer
name=audiojitter latency=4000 ts-offset=1000000 ! rtpamrdepay
queue-delay=0 name=audiodepay ! queue name=audioqueue } ! mux.audio_0
\
{ udpsrc name=videoudp port=23458 num-buffers=1000
caps="application/x-rtp, media=(string)video, payload=(int)34,
clock-rate=(int)90000, encoding-name=(string)H263" !
gstrtpjitterbuffer name=videojitter latency=0 ts-offset=1000000 !
rtph263depay queue-delay=0 name=videodepay ! ffdec_h263 name=videodec
! videorate name=videorate ! video/x-raw-yuv,framerate=8/1 !
ffenc_h263 name=videoenc rtp-payload-size=500 gop-size=24 me-method=4
bitrate=40000 ! queue name=videoqueue } ! mux.video_0;

It just recieve a h263 and amr stream and put it into a 3gp file
but now the file is a pipe instead of a normal file

when i start the pipeline, it freeze and give the following line only:
Setting pipeline to PAUSED ...


then I press ctrl+c to stop it
it give out error message as below:

Caught interrupt -- ERROR: Pipeline doesn't want to pause.
Got Message from element "filesink" (error): GstMessageError,
gerror=(GstGError)(NULL), debug=(string)"gstfilesink.c\(359\):\
gst_file_sink_open_file\ \(\):\ /pipeline0/filesink:\012system\
error:\ Interrupted\ system\ call";
ERROR: from element /pipeline0/filesink: Could not open file
"/home/video/pipe" for writing.
Additional debug info:
gstfilesink.c(359): gst_file_sink_open_file (): /pipeline0/filesink:
system error: Interrupted system call
Setting pipeline to NULL ...
FREEING pipeline ...

Does gstreamer have any mechanism to support pipe? or any plugin to
support progressive download(i've search for it and no result so far)?

Terry




More information about the gstreamer-devel mailing list