我使用gst-launch以这种方式使用GStreamer成功传输了我的网络摄像头图像:
SERVER
./gst-launch-1.0 -v -m autovideosrc ! video/x-raw,format=BGRA ! videoconvert ! queue ! x264enc pass=qual quantizer=20 tune=zerolatency ! rtph264pay ! udpsink host=XXX.XXX.XXX.XXX port=7480
客户端
./gst-launch-1.0 udpsrc port=7480 ! "application/x-rtp, payload=127" ! rtph264depay ! decodebin ! glimagesink
现在我尝试使用这个管道在我的应用程序中重现客户端(我没有发布代码,因为我在我的管道和元素周围做了一个Objective-C包装器):
带帽的udpsrc:"application/x-rtp,media=video,payload=127,encoding-name=H264"
rtph264depay
即使管道的状态消息看起来很“正常”,它也不起作用。我在控制台中有关于SecTaskLoadEntitlements failed error=22
的消息,但是在使用命令行时我也有这些消息
我问自己,我失踪了什么是gst-launch。我在基于udpsrc的管道上找不到任何关于web的例子。
我的问题是:
编辑
这是我的管道的图像。正如你所看到的,GstDecodeBin元素不会创建一个src pad,因为它没有接收 - 或者正在处理 - 任何东西(我在udpsrc元素上设置'timeout'属性为10秒,抛出它)。 可能是OSX沙盒问题吗?
现在我的管道看起来像这样:
使用this问题中的方法测试,该应用确实在此端口上收到了一些内容。
答案 0 :(得分:3)
找到为什么它没有收到任何内容: GstUdpSrc元素必须在 # Bridge test
connection br-win-to-deb
bridge_insecure true
address 192.168.138.166:1883
cleansession false
clientid br-win-deb
start_type automatic
notifications false
try_private true
# Forward di tutti i messaggi con topic GATEWAY su topic AZURE
topic # out 2 GATEWAY/ AZURE/
persistence true
persistence_file Messages.db
persistence_location C:/temp/
max_queued_messages 36000000
autosave_interval 10
queue_qos0_messages true
中分配一个端口来收听,否则它将会
现在一切正常。
为了获取信息,将环境变量GST_DEBUG设置为udpsrc:5有很多帮助。