Error parsing JPEG header: Not a JPG file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Greetings, and apologies in advance if my question is excessively simple,
although my searches have so far proven futile.

I'm running Angstrom on a BeagleBoard C (OMAP3530) with the gstreamer-ti
package (GStreamer 0.10.30) installed. At boot the following commands are
run:

 cd /usr/share/ti/gst/omap3530/
 ./loadmodules.sh
 export GST_REGISTRY=/tmp/gst_registry.bin
 export LD_LIBRARY_PATH=/usr/lib
 export GST_PLUGIN_PATH=/usr/lib/gstreamer-0.10
 export PATH=/usr/bin:$PATH
 cat /dev/zero > /dev/fb2 2> /dev/null


Running the command

 gst-launch v4l2src ! video/x-raw-yuv,width=640,height=480 !
ffmpegcolorspace ! jpegenc ! multipartmux ! udpsink host=<DEST> port=5000

Succeeds (I can open VLC on <DEST> and view the stream, although it's
pretty choppy). However, I'd like to do an MPEG4 stream instead. Following
the example from 
http://processors.wiki.ti.com/index.php/Example_GStreamer_Pipelines#OMAP35x
 , I tried:

 gst-launch-0.10  v4l2src ! 'video/x-raw-yuv,width=640,height=480' !
ffenc_mpeg4 ! rtpmp4vpay ! udpsink host=169.254.12.28 port=5000 -v

But I get 

 Setting pipeline to PAUSED ...
 /GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps =
video/x-raw-yuv, format=(fourcc)I420, width=(int)640, height=(int)480,
framerate=(fraction)30/1
 Pipeline is live and does not need PREROLL ...
 Setting pipeline to PLAYING ...
 New clock: GstSystemClock
 /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps =
video/x-raw-yuv, format=(fourcc)I420, width=(int)640, height=(int)480,
framerate=(fraction)30/1
 /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps =
video/x-raw-yuv, format=(fourcc)I420, width=(int)640, height=(int)480,
framerate=(fraction)30/1
 /GstPipeline:pipeline0/ffenc_mpeg4:ffenc_mpeg40.GstPad:src: caps =
video/mpeg, width=(int)640, height=(int)480, framerate=(fraction)30/1,
mpegversion=(int)4, systemstream=(boolean)false
 /GstPipeline:pipeline0/ffenc_mpeg4:ffenc_mpeg40.GstPad:sink: caps =
video/x-raw-yuv, format=(fourcc)I420, width=(int)640, height=(int)480,
framerate=(fraction)30/1
 /GstPipeline:pipeline0/GstRtpMP4VPay:rtpmp4vpay0.GstPad:sink: caps =
video/mpeg, width=(int)640, height=(int)480, framerate=(fraction)30/1,
mpegversion=(int)4, systemstream=(boolean)false
 /GstPipeline:pipeline0/GstRtpMP4VPay:rtpmp4vpay0.GstPad:src: caps =
application/x-rtp, media=(string)video, clock-rate=(int)90000,
encoding-name=(string)MP4V-ES, profile-level-id=(string)1,
config=(string)000001b001000001b58913000001000000012000c48d8800f514043c1463
000001b24c61766335322e39372e32, payload=(int)96, ssrc=(uint)1464948709,
clock-base=(uint)3097574894, seqnum-base=(uint)47019
 /GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps =
application/x-rtp, media=(string)video, clock-rate=(int)90000,
encoding-name=(string)MP4V-ES, profile-level-id=(string)1,
config=(string)000001b001000001b58913000001000000012000c48d8800f514043c1463
000001b24c61766335322e39372e32, payload=(int)96, ssrc=(uint)1464948709,
clock-base=(uint)3097574894, seqnum-base=(uint)47019
 libv4l2: error converting / decoding frame data: v4l-convert: error
parsing JPEG header: Not a JPG file ?
 Caught SIGSEGV accessing address 0x4
 unable to fork gdb: Cannot allocate memory
 Spinning.  Please run 'gdb gst-launch 1582' to continue debugging, Ctrl-C
to quit, or Ctrl-\ to dump core.



I assume this is related to the error parsing the JPEG header? The v4l2
source is a Logitech C310 USB webcam.

Trying to encode as h.264 instead, from the same examples, I use:
 
 gst-launch -v v4l2src ! TIVidenc1 codecName=h264enc
engineName=codecServer ! rtph264pay pt=96 ! udpsink host=<DEST> port=5000
-v
 
But I get:
 
 Setting pipeline to PAUSED ...
 ERROR: Pipeline doesn't want to pause.
 ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not
negotiate format
 Additional debug info:
  gstbasesrc.c(2755): gst_base_src_start ():
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
 Check your filtered caps, if any
 Setting pipeline to NULL ...
 Freeing pipeline ...


 Cat /proc/cmdline gives:
 
 console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2 rw rootwait
rootdelay=2 mem=80M video=omapfb:vram:2M,vram:4M



Any suggestions as to what I might be missing or something I should be
trying instead to get MPEG4 or H.264 streaming to work?

Thank you very much for any guidance or suggestions!

--
Matthew Braun
mjbraun at leydenjar.com







[Index of Archives]     [Linux Embedded]     [Linux ARM Kernel]     [Linux for ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux Media]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux