[gst-devel] Grab video
Gary Thomas
gary at mlbassoc.com
Thu Oct 7 19:44:49 CEST 2010
I have a camera which only produces UYUY video - caps:
video/x-raw-yuv, format=(fourcc)UYVY, width=(int)720, height=(int)480, framerate=(fraction)30/1
I'd like to encode this as x264, so I tried this pipeline:
gst-launch -v v4l2src num-buffers=200 ! 'video/x-raw-yuv,width=720,height=480,format=(fourcc)UYVY' ! ffmpegcolorspace ! x264enc ! filesink location=/tmp/test.h264
There are no complaints and the process seems to launch, but I
get no data to my file. A similar pipeline using a hardware (DSP)
encoder on my platform works:
gst-launch -v v4l2src num-buffers=2000 ! 'video/x-raw-yuv,width=720,height=480' ! TIVidenc1 codecName=h264enc engineName=codecServer ! filesink location=/tmp/test.h264
The only difference is that I'm using ffmpegcolorspace to convert
the data from UYUV to I420.
Note: I enabled debug level 4 for ffmpeg and it produces lines
like these:
0:00:11.669219616 766 0x10bf50 DEBUG ffmpegcolorspace gstffmpegcolorspace.c:449:gst_ffmpegcsp_transform: from 35 -> to 0
0:00:11.689147594 766 0x10bf50 DEBUG ffmpegcolorspace gstffmpegcolorspace.c:476:gst_ffmpegcsp_transform: from 35 -> to 0 done
0:00:12.354461316 766 0x10bf50 DEBUG ffmpegcolorspace gstffmpegcolorspace.c:449:gst_ffmpegcsp_transform: from 35 -> to 0
0:00:12.368774059 766 0x10bf50 DEBUG ffmpegcolorspace gstffmpegcolorspace.c:476:gst_ffmpegcsp_transform: from 35 -> to 0 done
I'm not sure what they mean. I also enabled debug for x264enc and
it gave me these lines (the sizes tell me that the data coming from
ffmpegcolorspace is not good):
0:00:10.976440135 774 0x10bf30 LOG x264enc :0::<x264enc0> frame= 1 QP=22.65 NAL=2 Slice:P Poc:8 I:31 P:982 SKIP:337 size=13873 bytes
0:00:11.750701609 774 0x10bf30 LOG x264enc :0::<x264enc0> frame= 2 QP=27.69 NAL=2 Slice:B Poc:4 I:0 P:129 SKIP:1221 size=112 bytes
0:00:14.098602000 774 0x10bf30 LOG x264enc :0::<x264enc0> frame= 3 QP=34.39 NAL=0 Slice:B Poc:2 I:1333 P:14 SKIP:0 size=10943 bytes
0:00:14.993529978 774 0x10bf30 LOG x264enc :0::<x264enc0> frame= 4 QP=27.86 NAL=0 Slice:B Poc:6 I:3 P:63 SKIP:1284 size=174 bytes
Any ideas what I'm doing wrong? My goal is just to compare the
resulting encoded file between the hardware (DSP) version and the
software (x264enc) version.
One final question: I'd like to resize the data, e.g. from 720x480 to 360x240
before the encode, but none of the pipelines I've tried (yes, I'm new to this!)
seem to even want to run. Mostly, I get messages about not being able to connect
one endpoint to another, but I really don't understand either the messages or the
process.
Thanks for any pointers/ideas
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
More information about the gstreamer-devel
mailing list