4

This question is the follow up question to this thread: 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 big picture looks like this:

AR Drone --> Gstreamer --> CRTMPServer --> Flash Application

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

As seen in the thread the AR Drone is using PaVE, Parrot Video Ecapsulation, which is unrecognizable by most players like VLC. The PaVeParse plugin removes these.

We have used different pipelines and they all yield the same error.

Sample pipeline:

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 needs to be located at the gst-plugin-path for it to work.

A sample error output from Gstreamer located in the ffdec_h264 element can be found at: http://pastebin.com/atK55QTn

The same thing will happen if the decoding is taking place in the player/dumper e.g. VLC, FFplay, RTMPDUMP.

The problem comes down to missing headers: PPS Reference is non-existent. We know that the PaVEParse plugin removes PaVE headers but we suspect that when these are removed there are no H264 headers for the decoder/player to identify the frame by.

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

Community
  • 1
  • 1
Steiniche
  • 41
  • 1
  • 5
  • 1
    Thanks - your sample pipeline helped me progress with solving a problem on the raspberry Pi and nginx-rtmp! – Piotr Kula Oct 29 '13 at 12:36

1 Answers1

0

Can you please share a sample of the traffic between gstreamer and crtmpserver?

You can always use the LiveFLV support built inside crtmpserver. Here are more details:

Re-Stream a MPEG2 TS PAL Stream with crtmpserver

Community
  • 1
  • 1