使用Python-GStreamer时Gst.Bin.add()参数数量错误求助
解决Gst.Bin.add()参数数量错误的问题
嘿,我之前刚碰到过一模一样的问题,马上就能帮你搞定!
你看到的这个错误TypeError: Gst.Bin.add() takes exactly 2 arguments (5 given),核心原因很简单:Gst.Bin.add()方法一次只能往管道里添加一个元素,你一次性传了4个元素(加上pipeline自身就是5个参数),自然就触发了参数数量不匹配的报错。
这里有两种简单的解决办法:
方法一:逐个调用add()
把每个元素单独传给add()方法,像这样:
pipeline.add(source) pipeline.add(filter_vertigo) pipeline.add(videoconvert) pipeline.add(sink)
方法二:使用add_many()方法
GStreamer其实提供了专门用来批量添加元素的方法add_many(),直接把所有元素传进去就行,更省事:
pipeline.add_many(source, filter_vertigo, videoconvert, sink)
另外提醒一句,添加完元素后别忘了把它们按顺序链接起来,比如用gst.element_link_many(source, filter_vertigo, videoconvert, sink),不然管道还是没法正常运行哦~
内容的提问来源于stack exchange,提问作者Urvish
相关产品推荐
相关产品推荐

