android h264 hardware encoding

cee1 fykcee1 at gmail.com
Fri Oct 25 06:23:08 CEST 2013


2013/10/24 yoyosuper8 <yoyosuper8 at yahoo.com>:
> 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);
udpsink is the end of the pipeline, should not follow a bufferinspect.

> 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 encoder is probably working.

> 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?
It just do one-way sending for udp, there isn't any communication back.

So, you don't get a picture on the laptop ?

Try to start the receiver first, wait for it be ready, and then start
the sender.
Check the following pipelines on the receiver side:
[1] gst-launch-1.0 -v udpsrc uri=udp://0.0.0.0:8554
caps='application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264,payload=(int)96,sprop-parameter-sets=(string)\"J0LgH41oBQBbpsgAAAMACAAAAwBAeKEVAA\\=\\=\\,KM4ESSA\\=\"'
! fakesink silent=false

Does the above print log message regularly?

[2] gst-launch-1.0 -v udpsrc uri=udp://0.0.0.0:8554
caps='application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264,payload=(int)96,sprop-parameter-sets=(string)\"J0LgH41oBQBbpsgAAAMACAAAAwBAeKEVAA\\=\\=\\,KM4ESSA\\=\"'
! rtpjitterbuffer latency=10 ! rtph264depay ! fakesink silent=false

Does the above print log message regularly?

[3] gst-launch-1.0 -v udpsrc uri=udp://0.0.0.0:8554
caps='application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264,payload=(int)96,sprop-parameter-sets=(string)\"J0LgH41oBQBbpsgAAAMACAAAAwBAeKEVAA\\=\\=\\,KM4ESSA\\=\"'
! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! fakesink silent=false

What about the above?

> 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?
Note the above pipeline miss a space between
amcviddec-omxtiducati1videodecoder and "!".

Also, remove the "name=videosrc" of the videotestsrc.


-- 
Regards,

- cee1


More information about the gstreamer-devel mailing list