x264enc on android: very slow.

Haiming Wang whm_buaa at hotmail.com
Mon Jul 29 06:28:36 PDT 2013

Hi Nicolas,
  Thank you very much for your help.   
  Regarding the colorspace conversation, as I mentioned in my previous email,   I used a pipeline in which I replaced all the elements just after ffmpegcolorspace with fakesink , and I found the speed is still quite quick. The framerate is around the same as the camera preview frame rate(15fps),  So I believe the bottle neck should not be at color space conversation.  Regarding the profiling tool,  what profiling tool do you suggest me to use?  I have some experience with gprof on android,  but it was said the tool doesn't support multi-thread very well.  It's also not easy to use.  Do you have any suggestion about the tool?
  You also suggest me using a simpler profile.   Does the profile here means h264 profile?   Can it be configed by x264enc properties? 
  Yes,  I also considered to use the hardware encoder on android. However I didn't think the performance of the software is so unacceptable.  I see some software encoder running on Android, and the frame rate can reach 15 fps, and the performance is quite acceptable.  I want to know if there are some settings for x264enc, which can improve the performance.
Thank you again for your answers. You help will always be appreciated!

Regards,Haiming Wang
> Subject: Re: x264enc  on android:  very slow.
> From: nicolas.dufresne at collabora.com
> To: gstreamer-devel at lists.freedesktop.org
> Date: Mon, 29 Jul 2013 13:14:09 +0200
> Le lundi 29 juillet 2013 à 16:18 +0800, Haiming Wang a écrit :
> >    data->pipeline = gst_parse_launch("gstrtpbin name=rtpbin appsrc
> > block=true is-live=true name=app_src ! video/x-raw-yuv,
> > format=(fourcc)NV21, width=(int)320, height=(int)240,
> > framerate=(fraction)15/1 ! ffmpegcolorspace ! x264enc tune=zerolatency
> > byte-stream=true bitrate=300 ! rtph264pay ! rtpbin.send_rtp_sink_0
> > rtpbin.send_rtp_src_0 ! udpsink name=udp_sink
> > clients=", &error);
> There is multiple ways this pipeline can be slow. Using profiling tool
> would be very useful. Meanwhile, I'm worried about the colorspace
> conversion, x264enc accept I420 and you send NV21. The direct conversion
> for that format was added upstream 0.10, but never released, so it is
> likely that you don't have this in your build.
> Other then that, you should consider using simpler profile, by default
> x264 produce main profile, try contrained-baseline. Finally, using a
> sofware encoder on Android is a little strange, any ready not to use the
> HW encoder ?
> Nicolas
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20130729/c11716d6/attachment.html>

More information about the gstreamer-devel mailing list