android h264 hardware encoding
yoyosuper8
yoyosuper8 at yahoo.com
Thu Oct 24 17:36:58 CEST 2013
Ok, so I was mistaken on the previous post. Here is what is working and not
working:
MCPlayer works with the following two pipelines enable in the code:
// This pipeline is used to encode videotestsrc using the hardware
encoder and then stream it locally
GstNativeInit("videotestsrc is-live=true do-timestamp=true
name=videosrc ! capsfilter
caps=\"video/x-raw,format=(fourcc)NV12,width=320,height=240,framerate=30/1\"
! amcvidenc-omxtiducati1videoh264e bitrate=384 i-frame-interval=8 !
rtph264pay name=pay0 pt=96 ! bufferinspect ! udpsink host=10.42.226.176
port=8554 ! bufferinspect", 0x80000082);
// This pipeline is used to capture the udp packets locally and
decode them, then display the video.
GstNativeInit("udpsrc uri=udp://0.0.0.0:8554/test
caps=\"application/x-rtp,media=(string)video,clock-rate=(int)90000,payload=(int)96,encoding-name=(string)H264,sprop-parameter-sets=\"Z01AFNkBQfv/AasBQBAAAAMAEAAAAwMI8UKkgAA\\=\\,aOvMsg\\=\\=\"\"
! bufferinspect ! rtph264depay ! h264parse ! capssetter
caps=\"video/x-h264,profile=baseline\" ! amcviddec-omxtiducati1videodecoder
! eglglessink name=videosink", 0x80000082);
This works if I start another instance of MCPlayer just like cee1 said.
However, let say that instead of specifying the ip address of the android
device, I specify the ip address of a laptop. I notice in wireshark that the
laptop is receiving packets udp packets from the android device, but when
the laptop tries to communicate back to the android device, it can't. I
think that is why I vlc can't open the streaming video on the laptop because
the laptop can't commnicate back to the android device. Any thoughts on this
one?
Now the other problem I'm having in MCPlayer is that I can't seem to be able
to perform hardware encoding and decoding then displaying the videotestsrc
all in one pipeline. Here is the pipeline that is supposed to perform h264
hardware encoding of videotestsrc and then perform h264 hardware decoding
and displaying it on videosink:
GstNativeInit("videotestsrc is-live=true do-timestamp=true name=videosrc !
capsfilter
caps=\"video/x-raw,format=NV12,width=320,height=240,framerate=30/1\" !
amcvidenc-omxtiducati1videoh264e bitrate=1024 i-frame-interval=8 !
bufferinspect ! h264parse ! capssetter
caps=\"video/x-h264,profile=baseline\" ! amcviddec-omxtiducati1videodecoder!
bufferinspect ! eglglessink name=videosink", 0x80000082);
For some reason it doesn't decode or display anything. Any thoughts?
--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/android-h264-hardware-encoding-tp4662522p4662838.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
More information about the gstreamer-devel
mailing list