2012-11-28 32 views
4

這個問題的跟進問題,此主題:AR Drone 2 and ffserver + ffmpeg streamingAR無人機2.0的Gstreamer,C++ RTMP服務器(流無SDK)

我們正在試圖通過一個Debian服務器,並進入到從我們的AR無人機流一個Flash應用程序。

的大畫面看起來是這樣的:

AR無人機 - >的Gstreamer - > CRTMPServer - > Flash應用程序

我們使用PaveParse插件的Gstreamer在這個線程發現:https://projects.ardrone.org/boards/1/topics/show/4282

正如線程中所見,AR無人機使用的是Pave,Parrot Video Ecapsulation,這是大多數玩家無法識別的,如VLC。 PaVeParse插件刪除這些。

我們使用了不同的管道,它們都產生相同的錯誤。

樣品管道:

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=. 

的PaVEParse插件必須位於GST-插件路徑爲它工作。

的Gstreamer從A輸出抽樣誤差位於所述ffdec_h264元件可以發現於:http://pastebin.com/atK55QTn

同樣的事情不會發生,如果解碼發生在播放器/翻鬥例如VLC,FFplay,RTMPDUMP。

問題歸結爲缺少標題:PPS參考不存在。我們知道PaVEParse插件刪除PaVE標題,但我們懷疑當這些插件被刪除時,解碼器/播放器沒有H264標題來標識幀。

是否可以從頭開始或通過轉換Pave標題來「恢復」這些H264標題?

+1

感謝 - 您的樣品管道幫助我的覆盆子Pi和nginx的,RTMP解決問題的進步! – ppumkin

回答