<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">2014-04-18 17:27 GMT+02:00 Lee Matthews <span dir="ltr"><<a href="mailto:lma@spaceapplications.com" target="_blank">lma@spaceapplications.com</a>></span>:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi<br>
<br>
I'm trying to use gstreamer on a nexus 5 phone to stream video over the network to a PC using the vp8 codec.<br>
<br>
I used buildroot to build gstreamer and its associated plugins for the ARM target.<br>
<br>
To send data from the phone I use the following command :<br>
<br>
../lib/ld-linux.so.3 ./gst-launch-1.0 v4l2src device=/dev/video3 ! videoconvert !  video/x-raw, framerate=10/1, width=640, height=480 ! vp8enc target-bitrate=500000 keyframe-max-dist=20 threads=4  ! rtpvp8pay pt=96 ! udpsink host=10.1.5.21 port=5555<br>


<br>
On my PC I visualise the incoming video using :<br>
<br>
gst-launch-1.0 udpsrc port=5555 ! "application/x-rtp, payload=96" ! rtpvp8depay ! vp8dec ! xvimagesink<br>
<br>
The video framerate is really slow, ie 1 frame every second or two with a latency of around 10 seconds - is there something inherently wrong with the above pipeline configuration that would explain this ? Even if I reduce the resolution to 320x240, this yields very little improvement.<br>


<br>
Secondly, apparently the nexus 5 has built-in vp8 encoding/decoding hardware support. Is this taken into account by the vp8enc element ? My processor usage is currently hovering at around 40%.<br></blockquote><div><br></div>

<div>By default vp8enc configures the encoder with deadline=0 (<a class="" href="http://www.webmproject.org/docs/vp8-sdk/group__encoder.html#gab350573bea112f2fdf8e5677db3ac0da">VPX_DL_BEST_QUALITY</a>)  but for realtime you should be using deadline=1 (<a class="" href="http://www.webmproject.org/docs/vp8-sdk/group__encoder.html#ga04253cc9ec1146d72fa8bb86bcf32144">VPX_DL_REALTIME</a>).<br>

The property cpu-used also affects the encoding speed, where for realtime you should use a value from 5 to 15. Everything is better explained in "Encode Quality vs Speed" (<a href="http://www.webmproject.org/docs/encoder-parameters/">http://www.webmproject.org/docs/encoder-parameters/</a>).<br>

</div><div>Hardware encoders and decoders for Android are wrapper in the amcvideo{dec|enc} elements. For now only decoders are supported although there are patches in bugzilla for the encoders.<br><br>Cheers,<br></div><div>

Andoni<br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Thanks<br>
Lee<br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>Andoni Morales Alastruey<br><br>LongoMatch:The Digital Coach<br><a href="http://www.longomatch.ylatuya.es">http://www.longomatch.ylatuya.es</a>
</div></div>