对于我的项目,我正在尝试使用 gumstix overo、gstreamer 和 TI 插件来利用 DSP,以便通过 RTP 流式传输视频。我找到了这两个教程,甚至能够成功地遵循它们:
^^在这个版本中,我可以使用 gstreamer 和 GstTIPlugIn 元素编译嵌入式 linux 操作系统。这样做之后,我能够成功地将 videotestsource 流式传输到远程 PC。
但是,该教程适用于 caspa 视频摄像头,我使用的是本教程中使用的 Logitech Pro C920:
http://www.oz9aec.net/index.php/gstreamer/473-using-the-logitech-c920-webcam-with-gstreamer
^^在这个我们使用H264模式的C920相机。由于 V4l2 驱动程序不支持这一点,我们使用 ac 脚本逐帧从相机捕获并将其流式传输到标准输出。从这里我们告诉 Gstreamer 从文件源中捕获,在这种情况下是 (/dev/fd/0) 中的标准。再次,我能够成功完成此操作并从 C920 相机进行流式传输,但无需使用 TIplugin 来使用 DSP。
现在解决问题:
./capture -c 10000 -o | gst-launch -v -e filesrc location=/dev/fd/0 !h264解析!rtph264pay!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!rtph264pay!udpsink 主机=192.168.1.100 端口=4000
我收到此错误:
将管道设置为 PAUSED ... Pipeline is PREROLLING ... ERROR: from element /GstPipeline:pipeline0/GstTIVidenc1:tividenc10: failed to create video encoder: h264enc
附加调试信息:gsttividenc1.c(1584):gst_tividenc1_codec_start ():/GstPipeline:pipeline0/GstTIVidenc1:tividenc10 错误:管道不想预卷。将管道设置为 NULL ...
我还尝试保留两个元素,然后错误说它无法将 h264parse0 链接到 tividenc10
有没有人对 GstTIPlugin 有任何经验并且知道我做错了什么?谢谢