Ben*_*hoz 3 macos streaming udp gstreamer h.264
我使用 gst-launch 以这种方式成功地使用 GStreamer 流式传输我的网络摄像头图像:
服务器
./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
Run Code Online (Sandbox Code Playgroud)
客户
./gst-launch-1.0 udpsrc port=7480 ! "application/x-rtp, payload=127" ! rtph264depay ! decodebin ! glimagesink
Run Code Online (Sandbox Code Playgroud)
现在我尝试使用这个管道在我的应用程序中重现客户端(我没有发布代码,因为我在我的管道和元素周围做了一个 Objective-C 包装器):
udpsrc 带大写:"application/x-rtp,media=video,payload=127,encoding-name=H264"
rtph264depay
它不起作用,即使管道的状态消息看起来很“正常”。我在控制台中有有关消息,SecTaskLoadEntitlements failed error=22但在使用命令行时也有消息。
我在问自己 gst-launch 下我缺少什么。我在基于 udpsrc 的管道的网络上找不到任何示例。
我的问题是:
编辑
这是我的管道的图像。如您所见,GstDecodeBin 元素不会创建 src pad,因为它没有接收或处理任何内容(我将 udpsrc 元素上的“超时”属性设置为 10 秒,即抛出)。这可能是 OSX 沙盒问题吗?
现在我的管道看起来像这样:
使用此问题中的方法进行测试,该应用程序确实在此端口上收到了一些东西。
找到它没有收到任何东西的原因:必须在 GstUdpSrc 元素中 GST_STATE_NULL 分配一个要监听的端口,否则它将静默监听默认端口 (5004)。
现在一切正常。
将环境变量 GST_DEBUG 设置为 udpsrc:5 有很大帮助,以获取信息。
| 归档时间: |
|
| 查看次数: |
5627 次 |
| 最近记录: |