如何打包使用 gstreamer 开发的应用

2023-06-29 17:58:26 +08:00
 horou

目前我使用了 rust + gstreamer 开发了一款音视频相关应用,

我如何编译打包所有依赖的 dll 文件到 exe 同一目录,需要手动复制 dll 吗,

因为要依赖 gstreamer dll 非常多,不清除哪些是必要的。

我手动复制 gstreamer 库里面的 dll 到 exe 同文件目录里面还是不行,会有很多依赖相关问题。

还是说客户机器需要单独安装 gstreamer 的环境,这样感觉就走远了。

1346 次点击
所在节点    程序员
11 条回复
heiher
2023-06-29 18:03:35 +08:00
可能用到的插件都静态链接
horou
2023-06-29 18:11:44 +08:00
@heiher 怎么静态连接插件额,刚用 gstreamer 很多都不清楚,有没有详细的文档链接呢
julyclyde
2023-06-29 18:12:41 +08:00
应该选择操作系统提供的包机制,在里面声明运行时依赖
ysc3839
2023-06-29 18:24:13 +08:00
@heiher gstreamer 静态链接似乎有点麻烦,可能这也是其不如 FFmpeg 流行的原因。抛开这个因素,个人觉得 gstreamer 还是比 FFmpeg 简单直观很多的。
SenseHu
2023-06-29 19:42:37 +08:00
老哥也是音视频领域的? 可以交流交流 vx sense_hu
flyqie
2023-06-29 21:20:32 +08:00
动态链接然后复制 dll

这是唯一的办法, gstreamer windows 部署起来确实挺绝望的。。
zwzwzwzwzxt
2023-06-29 23:31:12 +08:00
微软自家有个工具叫 [Process Explorer]( https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer),可以在程序运行的时候查看其所有依赖的 DLL 路径。看哪些是非系统自带的就通通拷贝到 exe 目录下。
当年刚学 Qt 的时候百试百灵,后来才知道原来 Qt 自带部署的工具(
horou
2023-06-30 11:47:37 +08:00
@zwzwzwzwzxt 非常感谢,用这种方式找到 dll 拷进去可以了
@flyqie 哈哈,我看官方文档也是让我要么客户机装一个 gstreamer ,要么手动拷贝,确实太麻烦了
flyqie
2023-06-30 11:53:31 +08:00
@horou #8

其他平台倒还好,主要就是 windows 部署,真的很绝望。。

官方估计是弃疗了。。
zzl22100048
321 天前
我在用你的 airplay-protocol ,是不是没实现 ANNOUNCE ,我想用 Symphonia 做 alac 解码,没找到 fmtp 信息
horou
319 天前
@zzl22100048 看我的 kircast_desktop 仓库

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/952781

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX