我正在使用LibVLCSharp在我的WinForms应用程序中播放RTSP流。这个库很棒,一切都运行正常。然而,我对应用程序的RAM使用量从大约20- 30 MB跳升到了大约140 MB!此外,我还必须在我的应用程序中包含大约140 MB价值的DLL文件,尽管可执行文件是2 MB!现在的库是Bascaily,与我的应用程序捆绑的Whold VLC媒体播放器应用程序。
我只使用了非常有限的库功能(只从RTSP URL流媒体并以某种形式显示,甚至没有播放功能),所以我想一定有办法在程序中包含我的应用程序所需的DLL。
为了测试我的理论,我试着从libVLC目录中随机删除一些DLL。通过一些猜测和反复试验,我实际上能够从库中删除~ 20 MB,流工作得很好。例如,通过删除音频目录下的DLL,流工作得很好,但没有音频(在我的情况下我不需要)。不幸的是,仍然有~ 120 MB的DLL。
我试着搜索如何只包含所使用的特性所需的DLL,或者如何确定这样的DLL,以便可以删除其余的DLL,但我找不到任何解决方案。
在stackoverflow上还有一个类似的未解问题:Libvlc - minimal files (functions) set for streaming out
1条答案
按热度按时间zujrkrfu1#
没有这样的指导方针,因为这实际上取决于您尝试对应用执行的操作。例如,99%的构建版本都需要libavcodec,但您是否需要D3D9插件取决于您将安装应用的计算机。
一旦确定了要排除的内容,就可以在csproj中使用排除列表,如下所示:
如果您只想包含选定的插件,您可以这样做:
请在此处查看完整文档:https://code.videolan.org/videolan/libvlc-nuget/-/blob/master/cherry-picking.md