gpt4 book ai didi

opencv - 使用 appsrc 和 vaapiencode_h264 插件时的 GStreamer 管道问题

转载 作者:太空宇宙 更新时间:2023-11-03 22:54:08 24 4
gpt4 key购买 nike

我正在开发一个接受 Opencv 帧(源自 opencv camera Api)的应用程序,并在将它们编码为 H264 帧后尝试将这些帧发送到网络中。

对于这个项目,我被要求通过硬件执行编码。

我使用下面的管道来做发送器的编码位:

gst-launch-1.0 appsrc name=applicationSource ! videoconvert ! video/x-raw,width=640,format=I420,height=480,framerate=15/1 ! vaapiencode_h264 ! vaapiparse_h264 config-interval=1 ! rtph264pay config-interval=1 ! gdppay ! tcpserversink host=127.0.0.1 port=5002 sync=false

我的 Appsrc 的上限是:

video/x-raw","format""RGB","width"640,"height",G_TYPE_INT,480,
"framerate", 15, 1,
"pixel-aspect-ratio" 1, 1,

然而,当我尝试运行此管道时,出现以下错误:

libva info: VA-API version 0.37.0

libva info: va_getDriverName() returns 0

libva info: Trying to open /usr/lib64/dri/i965_drv_video.so

libva info: Found init function __vaDriverInit_0_37

libva info: va_openDriver() returns 0

0:00:04.597696251 23508 0x7f724003f940 WARN GST_PADS gstpad.c:3739:gst_pad_peer_query: could not send sticky events

0:00:05.030818739 23508 0x7f724003f940 WARN basesrc gstbasesrc.c:2933:gst_base_src_loop: error: Internal data flow error.

0:00:05.030864404 23508 0x7f724003f940 WARN basesrc gstbasesrc.c:2933:gst_base_src_loop: error: streaming task paused, reason not-negotiated (-4)

Error : Internal data flow error.

0:00:05.032763231 23508 0x7f724003f940 WARN baseparse gstbaseparse.c:1155:gst_base_parse_sink_event_default: error: No valid frames found before end of stream

Error : No valid frames found before end of stream

正如我所强调的,由于协商问题,管道没有启动

我已经测试了我的 Appsrc,它似乎可以正常工作(接收数据)。

谁能推荐任何其他插件来克服这个问题??

PS:我已经用相机 v4l2src 插件尝试过这个管道,管道似乎运行良好!

任何帮助都会很好!

谢谢!

最佳答案

我解决了上述问题,这是由于 gstreamer 管道中缺少 caps 属性...

我已经为 appsrc 插件添加了上限:

video/x-raw","format""RGB","width"640,"height",G_TYPE_INT,480,
"framerate", 15, 1,
"pixel-aspect-ratio" 1, 1,

但是我错过了一个

"interlace-mode",G_TYPE_STRING,"progressive",

检查 v4l2src 上限以验证:通过启用调试来做到这一点

--gst-debug=v4l2src:6

像这样在管道中运行它:

gst-launch-1.0 --gst-debug=v4l2src:6 v4l2src ! videoconvert ! video/x-raw,width=640,format=I420,height=480,framerate=15/1 ! vaapiencode_h264 ! vaapiparse_h264 config-interval=1 ! rtph264pay config-interval=1 ! gdppay ! tcpserversink host=127.0.0.1 port=5002 sync=false

关于opencv - 使用 appsrc 和 vaapiencode_h264 插件时的 GStreamer 管道问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33848698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com