43492

Gstreamer does not sink to named pipe

Question:

I'm getting different behavior when the sink of a gst-launch pipeline is a named pipe vs a normal file.

I have a gst-launch pipeline which displays video from a camera on an OMAP embedded (linux) board and delivers the video as avi via a tee.

gst-launch -v -e omx_camera device=0 do-timestamp=1 mode=0 name=cam cam.src ! "video/x-raw-yuv, format=(fourcc)NV12, width=240, height=320, framerate=30/1" ! tee name=t1 t1. ! queue ! ducatih264enc profile=100 level=50 rate-preset=low-delay bitrate=24000 ! h264parse ! queue ! avimux ! filesink location=/tmp/camerapipe t1. ! queue ! dri2videosink sync=false

If I make

filesink location=/some/real/file t1.

all is well

but I wish to read the output with a Java/opencv process, and when I do this I don't get anything to the java process. The gst-launch process does announc that it's changed to PLAY.

To simplify things instead of the java process I tail -f the named pipe

and also don't see any output, though in both cases the dri2videosink is displaying the video

With either tail or the java process, killing it also stops the gst-launch process, so obviously it's 'connected' in some sense.

Killing the gst-launch process with the tail running gets what looks like a few K, maybe 1 frame of data, after gst-launch exits.

I've tried saving to normal file and reading with the java process, that works, so I know it's not the data format.

Answer1:

I am trying to do the same thing, I am using opencv in c and working in ubuntu though.

I did get the following to work:

I created a named pipe in /dev/ called video_stream using mkfifo make sur eyou have permissions to read/write to/from it or just use sudo.

Play with test video to a named pipe

sudo gst-launch -e videotestsrc ! video/x-raw-yuv, framerate=20/1, width=640, height=480 ! ffenc_mpeg4 ! filesink location=/dev/video_stream

Play from web cam to a named pipe:

sudo gst-launch -e v4l2src device=/dev/video0 ! ffenc_mpeg4 ! filesink location=/dev/video_stream

I then used the face detection tutorial at

<a href="http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html#cascade-classifier" rel="nofollow">http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html#cascade-classifier</a>

to test everything, but changed my input from webcam 1 to the namedpipe.

capture = cvCaptureFromCAM( -1 );

Becomes

VideoCapture capture("/dev/video_stream");

Recommend

  • Pausing a gstreamer thread made with tee
  • remultiplexing a stream with gstreamer stops in PREROLLING
  • Can't DER encode and BER decode RSA public key
  • Gstreamer - stream h264 video from Logitech c920 over tcp
  • CMD Batch Variable Won't Save FFprobe Output
  • Clear Pole Display text using chrome serial
  • python gstreamer script error message no element “h264parse”
  • How to convert I420 frames to BGRA format with gst-launch-1.0?
  • opencv - videowriter control bitrate
  • Android video not valid for streaming
  • Android Studio 3.0 Canary 1 - Simulator stuck on boot
  • Changing column based on header ComboBox selection
  • How to deploy react with express to heroku
  • Feeding gstreamer fdsrc via STDIN only produces fraction of expected result
  • Bash: sort find results using part of a filename [duplicate]
  • UITableView takes much longer to load when numberOfRows returns a large number
  • How to get file download speed (transfer rate) with php?
  • How to remove all of a jQuery UI dialog when it is closed
  • Parenthesis() and SQL Query Performance
  • Responsive Form on top of Responsive Image? - Bootstrap
  • countdown bar android example
  • jQuery - resize an elements height to match window without refreshing, on window resize
  • .NET video play library which allows to change the playback rate?
  • Flex items with same property values are rendering in different sizes
  • How to pass nginx proxy url for socket
  • chrome video src change not working
  • WPF Template Binding in ToggleButton UserControl
  • blade.php method outputting it's result to the form
  • Floated image with variable width and heading with background image
  • Can't delete or rename original file after resizing
  • D3 get axis values on zoom event
  • Alternative to overridePendingTransition() - Android
  • OpenGL 3.3 on Mac OSX El Capitan with LWJGL
  • Update CALayer sublayers immediately
  • Array.prototype.includes - not transformed with babel
  • How to set/get protobuf's extension field in Go?
  • How to show dropdown in excel using jrxml (jasper api)?
  • Android Studio and gradle
  • How to get NHibernate ISession to cache entity not retrieved by primary key
  • Net Present Value in Excel for Grouped Recurring CF