VideoLAN, 既是一个项目组,也是一家 非盈利组织.,旗下包含了非常多的项目,VLC就是其中一个。
VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。
VLC特点
- 能播放任何内容 - 文件、光盘、摄像头、设备及流媒体
- 可播放大多数格式,无需安装编解码器包 - MPEG-2, MPEG-4, H.264, MKV, WebM, WMV, MP3...
- 可在所有平台运行 - Windows, Linux, Mac OS X, Unix, iOS, Android ...
- 完全免费 - 无间谍软件,无广告,无跟踪用户的行为
编译指南
参考windows编译指南,如果要打包Windows的dll,就使用MYSYS2,在linux编译不出来.dll
,只能编译.so
官网提供的下载包是3.0.18,这个版本安装上边的编译文档,是缺失下边的文件的:
../vlc/extras/package/win32/build.sh -a x86_64
而在官方的仓库中3.0.18分支是有这个文件的,真坑啊!
编译过程中可能遇到的问题:
Package 'wine' has no installation candidate
为了让某些windows系统下的软件(EXE)适应Ubuntu,我们一般需要安装wine。
Wine (“Wine Is Not an Emulator” 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Linux,macOS 及 BSD 等)上运行 Windows 应用的兼容层。Wine 不是像虚拟机或者模拟器一样模仿内部的 Windows 逻辑,而是將 Windows API 调用翻译成为动态的 POSIX 调用,免除了性能和其他一些行为的内存占用,让你能够干净地集合 Windows 应用到你的桌面。
error: target not found: ragel
Ragel
是个有限状态机编译器,它将基于正则表达式的状态机编译成传统语言(C,C++,D,Java,Ruby等)的解析器。Ragel不仅仅可以用来解析字节流,它实际上可以解析任何可以用正则表达式表达出来的内容。而且可以很方便的将解析代码嵌入到传统语言中。
环境缺少Ragel
,安装前先查看下版本
pacman -Ss ragel
- 64位
pacman -S mingw64/mingw-w64-x86_64-ragel
- 32位
pacman -S mingw32/mingw-w64-i686-ragel