shmsrc and x264enc do not work together
Cheolho Park
cheolhop at gmail.com
Thu Apr 3 11:42:20 PDT 2014
Hi,
I am trying to forward a video between two GStreamer pipelines by using
shmsink/shmsrc, and make the receiving side to encode the video.
The following is a command line for the sending side:
gst-launch-0.10 -v videotestsrc \
! 'video/x-raw-yuv, format=(fourcc)"I420", framerate=30/1, width=1280,
height=720' \
! shmsink socket-path=/tmp/xxx shm-size=10000000 wait-for-connection=0
sync=false
The following is a command line for the receiving side:
gst-launch-0.10 -v shmsrc socket-path=/tmp/xxx \
! 'video/x-raw-yuv, format=(fourcc)"I420", framerate=30/1, width=1280,
height=720' \
! x264enc
! filesink location=/tmp/yyy
A problem is that nothing is recorded. It seems that the pipeline is not
rolling. The below shows the output message:
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps =
video/x-raw-yuv, format=(fourcc)I420, framerate=(fraction)30/1,
width=(int)1280, height=(int)720
/GstPipeline:pipeline0/GstX264Enc:x264enc0.GstPad:src: caps = video/x-h264,
width=(int)1280, height=(int)720, framerate=(fraction)30/1,
pixel-aspect-ratio=(fraction)1/1,
codec_data=(buffer)014d401fffe10018674d401feca02802dd8088000003000bb9aca00078c18cb001000468ebecb2,
stream-format=(string)avc, alignment=(string)au, level=(string)3.1,
profile=(string)main
/GstPipeline:pipeline0/GstX264Enc:x264enc0.GstPad:sink: caps =
video/x-raw-yuv, format=(fourcc)I420, framerate=(fraction)30/1,
width=(int)1280, height=(int)720
When I remove x264enc as below, the pipeline is rolling and the output
file, /tmp/yyy is increasing.
gst-launch-0.10 -v shmsrc socket-path=/tmp/xxx \
! 'video/x-raw-yuv, format=(fourcc)"I420", framerate=30/1, width=1280,
height=720' \
! filesink location=/tmp/yyy
Interestingly the output message below shows "New clock: GstSytemclock"
which was not shown previously.
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps =
video/x-raw-yuv, format=(fourcc)I420, framerate=(fraction)30/1,
width=(int)1280, height=(int)720
/GstPipeline:pipeline0/GstFileSink:filesink0.GstPad:sink: caps =
video/x-raw-yuv, format=(fourcc)I420, framerate=(fraction)30/1,
width=(int)1280, height=(int)720
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
I have no idea why the pipeline does not work with x264enc. Any help will
be really appreciated.
Thanks,
Cheolho
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140403/054fa27d/attachment.html>
More information about the gstreamer-devel
mailing list