winget install FFMPEG不同发行ID及版本比较
PS C:\Users\rgqan> winget search ffmpeg
名称 ID 版本 匹配 源
----------------------------------------------------------------------------------------------------------------------------------
FFmpeg Gyan.FFmpeg 7.1 winget
FFmpeg (GPL static variant, master branch) BtbN.FFmpeg.GPL N-118197-gbb85423142-20241231 Command: ffmpeg winget
FFmpeg (GPL static variant, 5.1 release branch) BtbN.FFmpeg.GPL.5.1 5.1.6-20241231 Command: ffmpeg winget
FFmpeg (GPL static variant, 6.1 release branch) BtbN.FFmpeg.GPL.6.1 6.1.2-20241231 Command: ffmpeg winget
FFmpeg (GPL static variant, 7.1 release branch) BtbN.FFmpeg.GPL.7.1 7.1-20241231 Command: ffmpeg winget
FFmpeg (GPL shared variant, master branch) BtbN.FFmpeg.GPL.Shared N-118197-gbb85423142-20241231 Command: ffmpeg winget
FFmpeg (GPL shared variant, 5.1 release branch) BtbN.FFmpeg.GPL.Shared.5.1 5.1.6-20241231 Command: ffmpeg winget
FFmpeg (GPL shared variant, 6.1 release branch) BtbN.FFmpeg.GPL.Shared.6.1 6.1.2-20241231 Command: ffmpeg winget
FFmpeg (GPL shared variant, 7.1 release branch) BtbN.FFmpeg.GPL.Shared.7.1 7.1-20241231 Command: ffmpeg winget
FFmpeg (LGPL static variant, master branch) BtbN.FFmpeg.LGPL N-118197-gbb85423142-20241231 Command: ffmpeg winget
FFmpeg (LGPL static variant, 5.1 release branch) BtbN.FFmpeg.LGPL.5.1 5.1.6-20241231 Command: ffmpeg winget
FFmpeg (LGPL static variant, 6.1 release branch) BtbN.FFmpeg.LGPL.6.1 6.1.2-20241231 Command: ffmpeg winget
FFmpeg (LGPL static variant, 7.1 release branch) BtbN.FFmpeg.LGPL.7.1 7.1-20241231 Command: ffmpeg winget
FFmpeg (LGPL shared variant, master branch) BtbN.FFmpeg.LGPL.Shared N-118197-gbb85423142-20241231 Command: ffmpeg winget
FFmpeg (LGPL shared variant, 5.1 release branch) BtbN.FFmpeg.LGPL.Shared.5.1 5.1.6-20241231 Command: ffmpeg winget
FFmpeg (LGPL shared variant, 6.1 release branch) BtbN.FFmpeg.LGPL.Shared.6.1 6.1.2-20241231 Command: ffmpeg winget
FFmpeg (LGPL shared variant, 7.1 release branch) BtbN.FFmpeg.LGPL.Shared.7.1 7.1-20241231 Command: ffmpeg winget
FFmpeg (Essentials Build) Gyan.FFmpeg.Essentials 7.1 Tag: ffmpeg winget
FFmpeg (Shared) Gyan.FFmpeg.Shared 7.1 Tag: ffmpeg winget
Wav2Bar Picorims.wav2bar 0.3.0 Tag: ffmpeg winget
cyanrip cyanreg.cyanrip 0.9.3.1 Tag: ffmpeg winget
wcap mmozeiko.wcap 2024.10.18 Tag: ffmpeg winget
y2mp3 moshfeu.y2mp3 3.0.0 Tag: ffmpeg winget
Recode Converter murgatt.recode-converter 2.0.5 Tag: ffmpeg winget
FFmpeg Batch AV Converter eibol.FFmpegBatchAVConverter 3.0.9 winget
Videomass GianlucaPernigotto.Videomass 3.5.8 Tag: ffmpeg-gui winget
1. Gyan.FFmpeg和BtbN.FFmpeg区别
Gyan.FFmpeg是基于MSVC [Microsoft Visual C++ Runtime] (最新受支持的 Visual C++ 可再发行程序包下载)开发的版本
BtbN.FFmpeg是基于MinGW [Minimalist GNU for Windows](GCC, the GNU Compiler Collection - GNU Project){Linux C++}开发的版本。
基于MinGW [Minimalist GNU for Windows]的知名软件:Cygwin,GitGUI(windows · gitgui-0.21.0 · GitLab.org / Git · GitLab)
2. GPL, LGPL区别。
GPL,[The GNU General Public License v3.0 - GNU Project - Free Software Foundation](https://www.gnu.org/licenses/gpl-3.0.en.html)
LGPL,[GNU Lesser General Public License v3.0 - GNU Project - Free Software Foundation](https://www.gnu.org/licenses/lgpl-3.0.en.html)
3.Essentials,Static,Shared
Essentials,本质,核心功能。
Static, Static Variant, 静态变量。
Shared,Shared Variant,共享变量。
- 编译和链接方式
Static Variant:静态版本在编译时会将所有依赖的库都静态链接到可执行文件中。这意味着最终生成的 FFmpeg 可执行文件是一个独立的、包含了所有必要代码的文件,不依赖于外部的共享库。它的优点是在部署和使用时非常方便,无需担心目标系统上是否安装了相应的依赖库,直接运行即可。
Shared Variant:共享版本在编译时会使用动态链接的方式,将一些常用的库编译成共享库(.so 文件或.dll 文件等),FFmpeg 可执行文件在运行时会动态加载这些共享库。这种方式可以减少可执行文件的大小,并且多个程序可以共享使用相同的共享库,节省内存空间。 - 文件大小和资源占用
Static Variant:由于包含了所有依赖库,静态版本的 FFmpeg 可执行文件通常会比较大。例如,如果 FFmpeg 依赖了多个音频、视频编解码库以及其他辅助库,这些库的代码都会被包含在静态可执行文件中,可能会导致文件大小达到几十 MB 甚至更大。
Shared Variant:共享版本的可执行文件相对较小,因为它只包含了 FFmpeg 本身的核心代码和一些必要的链接信息,实际的库代码在共享库文件中。在运行时,虽然总体占用的内存空间可能与静态版本相当,但在多个使用 FFmpeg 的进程同时运行时,共享库可以被多个进程共享,从而在一定程度上节省内存。 - 部署和更新
Static Variant:部署简单,只需将静态可执行文件复制到目标系统即可运行,适合在一些环境相对固定、对依赖管理要求不高的场景使用,比如一些嵌入式设备或者独立运行的小型应用。但更新时,需要替换整个可执行文件,如果只是库的版本更新,也需要重新编译和替换整个 FFmpeg 静态文件。
Shared Variant:在部署时,需要确保目标系统上安装了 FFmpeg 所依赖的共享库,并且版本兼容。更新时相对灵活,如果只是共享库的更新,只需更新相应的共享库文件,无需重新编译和替换 FFmpeg 可执行文件,前提是共享库的接口没有发生重大变化。 - 应用场景
Static Variant:适用于需要在不同环境中快速部署且不希望受到依赖库版本问题困扰的情况,如一些便携式的音视频处理工具、一次性的脚本任务等。
Shared Variant:适合在服务器环境或者大型应用系统中使用,这些环境通常有完善的库管理机制,能够方便地安装和更新共享库,并且可以充分利用共享库带来的资源共享优势。
参考:
https://blog.csdn.net/qq_41211900/article/details/135123918
[GPL vs. LGPL vs. APGL | Chris Short](https://chrisshort.net/micro/gpl-lgpl-agpl/)
[GNU 许可证常见问题 - GNU 工程 - 自由软件基金会](https://www.gnu.org/licenses/gpl-faq.html)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2020-01-21 机器学习 数据挖掘
2020-01-21 WSL Ununtu MYSQL & InnoDB: Linux Native AIO interface is not supported on this platform. Please check your OS documentation and install appropriate binary of InnoDB.
2020-01-21 Linux 文件名 按照日期 取最大最小时间值
2020-01-21 希腊哲学 思辨精神
2019-01-21 scp Permission denied