Encoding 为Gstreamer使用GstTIPlugin元素时出现问题

Encoding 为Gstreamer使用GstTIPlugin元素时出现问题,encoding,signal-processing,h.264,gstreamer,rtp,Encoding,Signal Processing,H.264,Gstreamer,Rtp,在我的项目中,我尝试使用gumstix overo、gstreamer和TI插件,利用DSP通过RTP传输视频。我找到了这两个教程,甚至成功地学习了它们: ^^在这篇文章中,我能够使用gstreamer和GstTIPlugIn元素编译一个嵌入式linux操作系统。这样做之后,我能够成功地将videotestsource流式传输到远程PC 然而,该教程是针对caspa摄像机的,我使用的是本教程中使用的Logitech Pro C920: ^^在本例中,我们使用H264模式下的C920摄像头。由

在我的项目中,我尝试使用gumstix overo、gstreamer和TI插件,利用DSP通过RTP传输视频。我找到了这两个教程,甚至成功地学习了它们:

^^在这篇文章中,我能够使用gstreamer和GstTIPlugIn元素编译一个嵌入式linux操作系统。这样做之后,我能够成功地将videotestsource流式传输到远程PC

然而,该教程是针对caspa摄像机的,我使用的是本教程中使用的Logitech Pro C920:

^^在本例中,我们使用H264模式下的C920摄像头。由于V4l2驱动程序不支持这一点,因此我们使用c脚本逐帧从摄影机捕获并将其流式传输到标准输出。从这里我们告诉Gstreamer从文件源捕获,在本例中是(/dev/fd/0)中的标准。再一次,我能够成功地完成这项工作,并从C920相机中播放流媒体,但无需使用TIplugin来使用DSP

现在谈谈问题:

./capture-c 10000-o | gst launch-v-e filesrc location=/dev/fd/0!h264parse!RTPH264支付!udpsink主机=192.168.1.100端口=4000 ^^此命令将运行捕获程序,gstreamer将使用h264parse管道捕获并流式传输视频进行编码(我相信?)

当我用第一个教程中的TIplugin替换h264parse时,如下所示:

./capture-c 10000-o | gst launch-v-e filesrc location=/proc/self/fd/0!TIVidenc1 codecName=h264enc engineName=codecServer!RTPH264支付!udpsink主机=192.168.1.100端口=4000

我得到这个错误:

正在将管道设置为暂停。。。 管道正在预滚。。。 错误:来自元素/GstPipeline:pipeline0/GstTIVidenc1:tividenc10:无法创建视频编码器:h264enc

其他调试信息: gsttividenc1.c(1584):gst\u tividenc1\u codec\u start():/GstPipeline:pipeline0/gsttividenc1:tividenc10 错误:管道不想预卷。 正在将管道设置为空

我还尝试保留这两个元素,但错误显示它无法将h264parse0链接到tividenc10

有没有人有过使用GSTTI插件的经验,知道我做错了什么?
谢谢

你到底想解决什么问题?您是否正在尝试使用TI的编码元素对H.264进行编码?因为如果我完全正确地阅读了这些内容,“/capture”实用程序已经接收到H.264格式的帧-,无需编码

假设我们有这样一个黄金例子(这对你有用,对吗?):

“h264parse”将H.264流解析为H.264 NAL单元,以利于RTP接收器。如果这样做有效,那么h264parse元素会很高兴,因为它正在从捕获程序获取H.264数据

如果您试图用一个TI H.264编码器元素替换h264parse,那么,这会让人困惑。再说一次,我不知道你到底想解决什么问题,所以我可能不了解整个情况

如果您还不熟悉它,请了解“gst inspect”命令。例如,“gst检查h264parse”。这将使您了解元素可以使用或生成什么类型的数据

./capture -c 10000 -o | gst-launch -v -e filesrc location=/dev/fd/0 ! 
h264parse ! rtph264pay ! udpsink host=192.168.1.100 port=4000