vp8 streaming on Android
Lee Matthews
lma at spaceapplications.com
Tue Apr 22 08:11:13 PDT 2014
----- Original Message -----
From: "Andoni Morales" <ylatuya at gmail.com>
To: "Discussion of the development of and with GStreamer" <gstreamer-devel at lists.freedesktop.org>
Sent: Saturday, 19 April, 2014 4:31:10 PM
Subject: Re: vp8 streaming on Android
Thanks Andoni. Do you know where I can find the amcvideo video elements ? They don't seem to be included in my gstreamer version (1.2.1)
What is the difference between these amcvideo elements and the gst-omx elements ?
Cheers
Lee
2014-04-18 17:27 GMT+02:00 Lee Matthews < lma at spaceapplications.com > :
Hi
I'm trying to use gstreamer on a nexus 5 phone to stream video over the network to a PC using the vp8 codec.
I used buildroot to build gstreamer and its associated plugins for the ARM target.
To send data from the phone I use the following command :
../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
On my PC I visualise the incoming video using :
gst-launch-1.0 udpsrc port=5555 ! "application/x-rtp, payload=96" ! rtpvp8depay ! vp8dec ! xvimagesink
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.
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%.
By default vp8enc configures the encoder with deadline=0 ( VPX_DL_BEST_QUALITY ) but for realtime you should be using deadline=1 ( VPX_DL_REALTIME ).
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" ( http://www.webmproject.org/docs/encoder-parameters/ ).
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.
Cheers,
Andoni
Thanks
Lee
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
--
Andoni Morales Alastruey
LongoMatch:The Digital Coach
http://www.longomatch.ylatuya.es
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
More information about the gstreamer-devel
mailing list