|
Hello List,
I am running FFMPEG codecs on an ARM processor. In an attempt to figure out performance, I am trying to encode the videotestsrc with the MPEG4 software encoder.
I initially pulled together this pipeline, which worked:
gst-launch -e videotestsrc ! video/x-raw-yuv, framerate=15/1,
width=320, height=240 ! ffenc_mpeg4 ! avimux ! filesink location=test.avi
However, I notice that the processor over 100% utilization (Not surprising, since I am doing in software). In an attempt to figure out how under real time it is, I figured I would create a RAW file on the target with a known length. (IE---10 seconds) and then, ENCODE that file with a separate command. That way, I could see if it takes 12 seconds or 20 seconds to encode. (And I will know how close the processor is to handling it real time.)
To create the RAW file, I pulled together this pipeline, which appeared to work fine:
gst-launch -e videotestsrc ! video/x-raw-yuv framerate=15/1, width=320, height=240 ! filesink location=testraw.avi
Now, I was thinking I could use this command to “TIME” how long it would take to encode the file. However, I get a bunch of errors. (At Bottom of post)
time gst-launch -e filesrc location=testraw.avi ! ffenc_mpeg4 ! avimux ! filesink location=test.avi
UPDATE!!!!
I did add the videoparse before the ffenc_mpeg4. This DID encode the file, and didnt create any errors, but the video looks incorrect. Almost as if there is a mismatch between the formats.
Any Help or suggestions would be GREATLY appreciated!
** (gst-launch-0.10:2013): CRITICAL **: gst_ffmpegenc_chain_video: assertion `frame_size == GST_BUFFER_SIZE (inbuf)' failed
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2378): gst_base_src_loop (): /GstPipeline:pipeline0/GstFileSrc:filesrc0:
streaming task paused, reason error (-5)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
root@freescale ~$
|