我对gstreamer没有多少经验,也找不到线上的东西来搞清楚。使用GStreamer通过UDP流式传输Android摄像头H264 mpeg-ts
我使用this open-source来开发一个Android应用程序,通过UDP流式传输相机作为H264 mpegts。
我被卡住了管道,我有两个工作管道,我不能合并在一起工作。 原来开源的管道:
"ahcsrc ! queue ! glimagesink name=vsink sync=false"
(当ahcsrc代表Android的硬件相机-SRC)
而且我的测试管道:
"videotestsrc ! decodebin ! x264enc bframes=2 ! mpegtsmux ! udpsink host=192.168.102.74 port=1234"
两个工作完全正常。
我的目标是把我的测试管道,并切换videotestsrc到ahcsrc为:
"ahcsrc ! decodebin ! x264enc bframes=2 ! mpegtsmux ! udpsink host=192.168.102.74 port=1234"
遗憾的是没有运气。真的很感激任何帮助!
编辑: 我试图在任何地方添加日志,然后看到没有任何错误,除了每个模块都将其状态从PAUSED更改为PLAYING(除了udpsink外)。
我添加到它“udpsink async = false”,这使它变成播放,但没有数据包发送和没有明显的错误。 也许水槽没有得到任何数据?
EDIT2:乱投医后,我会发现它认为这可能是与ahcsrc问题,因为这条管道:
ahcsrc ! video/x-raw-yuv, framerate=25/1, width=640, height=360 ! videoconvert.....
结果与
Could not link ahcsrc0 to videoconvert0
毕竟,这是部分的gst-plugins-bad。任何配置都会很棒。
试图运行你的管道。我收到此错误: gst_video_overlay_set_window_handle:断言'GST_IS_VIDEO_OVERLAY(覆盖)'失败 – Weknin
我的管道没有经过测试..所以也许有什么问题..但为什么我的管道的任何元素产生这个错误 - 这看起来像你正在使用一些视频汇 - 你呢?请使用此管道添加更多日志 - 理想情况下在您的问题中(其他人会在您更新问题时注意到)..您可以使用pastebin并复制粘贴重要部分 – nayana