如何解决Windows上的gstreamer设置问题
我走得最远的是一个错误,即找不到程序入口点(不知道确切的用词,因为奇怪的是,此消息是德语的,尽管我的系统是英语:“ Prozedureinsprungspunkt”) :
-
harfbuzz.dll中的
- FT_Done_MM_Var
- gstopenjpeg.dll中的opj_codec_set_threads
安装:
我使用了标准gst download site中的gstreamer-1.0-devel-msvc-x86_64-1.18.0.msi
和gstreamer-1.0-msvc-x86_64-1.18.0.msi
。
环境变量:
- 添加了
GST_PLUGIN_PATH
并将其设置为GSTREAMER_1_0_ROOT_MSVC_X86_64
,因为我以前遇到过诸如“ playbin”之类的简单插件未知的问题。 - 将dll的
GSTREAMER_1_0_ROOT_MSVC_X86_64/bin/
添加到PATH
cmake设置:
我写了一个丑陋但简单的FindGSTREAMER.cmake,用在我的CMakeLists.txt中。为目标添加了相应的库和包含路径。
源代码:
到目前为止,我仅编译gstreamer "HelloWorld"进行测试。
我为vs2019生成了解决方案。可以找到Gstreamer并进行编译。问题是上述运行时错误/我看不到我应该看的视频。
我在控制台中也有警告/错误,我想将此问题发送到文件中。 .exe怪异地放置在build/src/{Debug / Release}/
目录中,如果我从命令行执行它,我再次不链接到dll,因此我从gst二进制目录执行了它。从那里执行。
那么,我需要更改什么以便它也可以在Visual Studio中运行,而不必从gst二进制目录执行?
编辑:忘记了console output,我觉得这就像是更多相同的“无法加载模块”。
更新:因此,这并不是真正的解决方案,而是一种变通方法和观察结果。我使用了相应的gst方法来创建管道和元素,这些管道和元素仅在从gstreamer的二进制目录执行时才有效,如我的问题所述。最近,我尝试建立自己的管道,以明确定义要使用的解复用器,解析器和解码器。在使用gst-launch-1.0
进行试验时,此方法工作正常,但在使用gst_element_link
进行代码时,解复用器和解析器之间的链接失败。因此,我切换到gst_parse_launch
并成功了。不仅链接,而且现在它也可以直接从Visual Studio中执行...老实说,我不知道为什么,但是现在这是一个很好的解决方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。