AR Drone 2.0, Gstreamer, C ++ RTMP Server (streaming without SDK)

This question is the next question to this topic: AR Drone 2 and ffserver + ffmpeg streaming

We are trying to get a stream from our AR Drone through a Debian server and into a Flash application.

The overall picture is as follows:

AR Drone β†’ Gstreamer β†’ CRTMPServer β†’ Flash Application

We use the PaveParse plugin for Gstreamer found in this thread: https://projects.ardrone.org/boards/1/topics/show/4282

As you can see from the stream, AR Drone uses PaVE, Parrot Video Ecapsulation, which is unrecognizable by most players such as VLC. The PaVeParse plugin removes them.

We used different pipelines and they all give the same error.

Example conveyor:

GST_DEBUG=3 gst-launch-0.10 tcpclientsrc host=192.168.1.1 port=5555 ! paveparse ! queue ! ffdec_h264 ! queue ! x264enc ! queue ! flvmux ! queue ! rtmpsink localtion='rtmp://0.0.0.0/live/drone --gst-plugin-path=. 

The PaVEParse plugin must be located along the gst-plugin path for it to work.

The output of a test error from Gstreamer located in the ffdec_h264 element can be found at: http://pastebin.com/atK55QTn

The same thing will happen if decoding occurs in the player / self-test, for example. VLC, FFplay, RTMPDUMP.

The problem boils down to missing headers: PPS Reference does not exist. We know that the PaVEParse plugin deletes the PaVE headers, but we suspect that when they are deleted there are no H264 headers for the decoder / player to identify the frame.

Is it possible to "restore" these H264 headers either from scratch or by converting PaVE headers?

+4
source share
1 answer

Can you share sample traffic between gstreamer and crtmpserver?

You can always use the LiveFLV support built into crtmpserver. Here is more detailed information:

Reprogram TSAL MPEG2 TS stream with crtmpserver

0
source

All Articles