x264enc on android: very slow.
Haiming Wang
whm_buaa at hotmail.com
Wed Jul 31 02:54:05 PDT 2013
HI Nicolas First up, let me explain how did I try to prove colorspace conversation is not the bottleneck. I set property "block" of appsrc to true. So each time when I want to feed data to appsrc, the function will block, untill there is a vacant buffer available. In android camer preview callback, each time when I got a new frame, I will feed the data to appsrc through jni synchronously. If there is no vacant buffer available at appsrc, the feeding will block. I count the framerate in camera preview callback. In this way I can evaluate how fast the pipeline encoding frames.
I really appreciate if neon optimization can be in the soft encoder :).
I heard some one encounter some problems in using hardware encoder. They said the bitrate is very high. I didn't try in person. I will try it later.
BTW, by many times try, I found the property "speed-preset" magically improved the encoding speed . Now I can get 8 fps for320x240 video.
Thank you very much for your help as ever!
Best Regards,Haiming Wang
> Subject: Re: x264enc on android: very slow.
> From: nicolas.dufresne at collabora.com
> To: gstreamer-devel at lists.freedesktop.org
> Date: Wed, 31 Jul 2013 00:36:19 +0200
>
> Le lundi 29 juillet 2013 à 21:28 +0800, Haiming Wang a écrit :
> > 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.
>
> I don't fully understand what you have done to prove there was no
> colorspace conversion issues, neither in what replacing the encoder by
> fakesink show that. But I'm just giving you hints and this is might not
> be your issue. I had problem produce 30 fps in QSIF sized stream in the
> past because of that NV12 to I420 conversion issue on both iOS and
> Android. This is fixed upstream but not in any released version. Sharing
> more details about your build would help in figuring if you might have
> an affected build.
>
> > 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?
>
> I have never used any profiling tools on Android. Last time I had the
> iOS profiling tool to show be the bottleneck. I have been told that
> oprofile and prof may way, but will require a rooted device and a kernel
> rebuild.
>
> >
> > You also suggest me using a simpler profile. Does the profile here
> > means h264 profile? Can it be configed by x264enc properties?
>
> Yes, h264 profile is usually set through caps, but that might not be
> true if you are using 0.10.
>
> > 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.
>
> That being said, I realized it's not written yet, see:
>
> https://bugzilla.gnome.org/show_bug.cgi?id=705129
>
> Also, as Arun have said, if you are using the SDK, it is built without
> NEON acceleration. Adding that does increase the performance a lot.
>
> regards,
> 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/20130731/b84bafdc/attachment.html>
More information about the gstreamer-devel
mailing list