这个问题是这个帖子的后续问题:AR Drone 2 and ffserver + ffmpeg streaming
我们正在尝试通过Debian服务器从我们的AR无人机中获取一个流,并将其输入到flash应用程序中。
总体情况看起来像这样:
AR Drone --> Gstreamer --> CRTMPServer -->闪存应用
我们使用的是Gstreamer的PaveParse插件,可以在这个线程中找到:https://projects.ardrone.org/boards/1/topics/show/4282
正如在线程中看到的AR无人机正在使用PaVE,这是无法识别的大多数玩家,如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- plugin -path才能工作。
可以在以下位置找到位于ffdec_h264元素中的Gstreamer的错误输出示例:http://pastebin.com/atK55QTn
如果解码发生在播放器/转储程序中,也会发生同样的事情,例如VLC、FFplay、RTMPDUMP。
问题归结为缺少头部: PPS引用是不存在的。我们知道PaVEParse插件会删除PaVE标头,但我们怀疑当这些标头被删除时,解码器/播放器就没有H264标头来识别帧了。
是否可以从头开始或通过转换H264标头来“恢复”这些PaVE标头?
发布于 2012-11-29 08:52:01
你能分享一个gstreamer和crtmpserver之间的流量样本吗?
您可以始终使用crtmpserver中内置的LiveFLV支持。以下是更多详细信息:
https://stackoverflow.com/questions/13607070
复制相似问题