|
1 | 1 | # VlcMedia |
2 | 2 |
|
3 | | -Unreal Engine 4 Media Framework plug-in using the Video LAN Codec (libvlc). |
4 | | - |
| 3 | +Unreal Engine Media Framework plugin using VideoLAN libvlc. |
5 | 4 |
|
6 | 5 | ## About |
7 | 6 |
|
8 | | -This plug-in is still under development and likely has a lot of remaining issues |
9 | | -to be fixed. Use in production is not yet recommended. |
10 | | - |
11 | | -Make sure to pull the *Tag* that matches your Unreal Engine version. If you sync |
12 | | -to *Master* the code may not compile, because it may depend on Engine changes |
13 | | -that are not yet available in the UE4 Master branch. |
| 7 | +This repository is based on the original `ue4plugins/VlcMedia` project and has |
| 8 | +been updated to run on Unreal Engine 5.6. |
14 | 9 |
|
| 10 | +The plugin is still community maintained. Test carefully before production use. |
15 | 11 |
|
16 | | -## Supported Platforms |
| 12 | +## Engine and Platform Status |
17 | 13 |
|
18 | | -This plug-in was last built against **Unreal Engine 4.19** and tested |
19 | | -against the following platforms: |
| 14 | +- Engine target: **Unreal Engine 5.6** (`VlcMedia.uplugin`) |
| 15 | +- Confirmed working path in this branch: **Win64** |
| 16 | +- Linux and Mac modules are still present, but may require platform-specific |
| 17 | + validation and packaging updates. |
20 | 18 |
|
21 | | -- Linux (Ubuntu 16.04) |
22 | | -- ~~Mac~~ |
23 | | -- Windows |
| 19 | +## Licensing and Distribution Notes |
24 | 20 |
|
25 | | -**IMPORTANT**: Please note that this repository contains pre-compiled binaries |
26 | | -for libvlc and its plug-ins, which are licensed under LGPL. This means that you |
27 | | -cannot create monolithic builds of your game without violating LGPL, the UE4 |
28 | | -EULA or both. The libvlc libraries must remain dynamic libraries that are bound |
29 | | -at run-time - static linking is not allowed - and the licensing related files in |
30 | | -*/ThirdParty/vlc* must be retained. |
| 21 | +This repository includes precompiled libvlc binaries and plugins licensed under |
| 22 | +LGPL. |
31 | 23 |
|
32 | | -This also means that this plug-in cannot work on platforms that do not support |
33 | | -dynamically linked libraries (i.e. iOS, HTML5) or do not currently implement |
34 | | -support for it (i.e. Android, XboxOne). |
| 24 | +Important requirements: |
35 | 25 |
|
36 | | -Epic is in the process of adding plug-in support to monolithic builds, but there |
37 | | -is no ETA yet. Once this is supported, you will be able to distribute monolithic |
38 | | -game and server builds with VlcMedia, provided that the libvlc libraries and |
39 | | -plug-ins remain as separate DLLs. |
| 26 | +- Keep libvlc as dynamically loaded libraries (DLL/dylib/so) |
| 27 | +- Do not statically link libvlc into game binaries |
| 28 | +- Keep licensing and notice files in `ThirdParty/vlc` |
40 | 29 |
|
| 30 | +Because of these constraints, platforms without practical dynamic library plugin |
| 31 | +support are not expected to work. |
41 | 32 |
|
42 | 33 | ## Prerequisites |
43 | 34 |
|
44 | | -A relatively recent version of libvlc is required. The latest stable release |
45 | | -(currently 2.2.1) is not sufficient. |
46 | | - |
47 | | -For Mac and Windows, the following nightly builds are currently included: |
48 | | -* macOS: vlc-4.0.0-20180319-0303-dev |
49 | | -* Win32: vlc-4.0.0-20180319-0303-dev-win32 |
50 | | -* Win64: vlc-4.0.0-20180319-1331-dev-win64 |
51 | | - |
52 | | -Nightly builds can be downloaded from the VideoLAN web site (see below). |
53 | | - |
54 | | -For debugging on Win32 and Win64, you can download debug builds and replace the |
55 | | -corresponding files and folders in the *VlcMedia/ThirdParty/vlc/* directory. |
56 | | - |
57 | | -### Linux (Ubuntu 16.04) |
58 | | - |
59 | | -A suitable version of **libvlc** must be installed or compiled from source. If |
60 | | -you ship your game on Linux, you will likely want to include libvlc with it, so |
61 | | -that users don't have to install it themselves. We will eventually include those |
62 | | -binaries in this repository, although it is not clear what distros should be |
63 | | -supported and where the builds are coming from. A better workflow needs to be |
64 | | -established for this (https://github.com/ue4plugins/VlcMedia/issues/17). |
65 | | - |
66 | | -To clean up, clone, make and install VLC (including libvlc) into your project, |
67 | | -run the *VlcMedia/Build/Vlc4LinuxCloneMakeInstall.sh* script from within your |
68 | | -project's root folder. If you later need to make and re-install VLC from the |
69 | | -existing VLC code, run the *Vlc4LinuxMakeInstall.sh* script instead. |
| 35 | +- Unreal Engine 5.6 |
| 36 | +- Visual Studio toolchain for C++ builds on Windows |
| 37 | +- A C++ project (or full source engine build) to compile plugin modules |
70 | 38 |
|
71 | | -### Mac, Windows |
| 39 | +## Included Runtime Binaries |
72 | 40 |
|
73 | | -All required libraries and plug-ins are included in the *ThirdParty* directory |
74 | | -and work out of the box. |
| 41 | +`ThirdParty/vlc` contains bundled VLC runtime files used by the plugin. |
75 | 42 |
|
| 43 | +- Win64 binaries and plugins are refreshed in this branch |
| 44 | +- Linux helper scripts are available in `Build/` for local libvlc setup |
76 | 45 |
|
77 | | -## Dependencies |
| 46 | +If you need to swap libvlc builds, replace the corresponding files under |
| 47 | +`ThirdParty/vlc/<Platform>` and re-test playback. |
78 | 48 |
|
79 | | -This plug-in requires Visual Studio and either a C++ code project or the full |
80 | | -Unreal Engine 4 source code from GitHub. If you are new to programming in UE4, |
81 | | -please see the official [Programming Guide](https://docs.unrealengine.com/latest/INT/Programming/index.html)! |
| 49 | +## Installation |
82 | 50 |
|
| 51 | +### As Project Plugin (recommended) |
83 | 52 |
|
84 | | -## Usage |
| 53 | +1. Copy or clone this repository into your project at `Plugins/VlcMedia` |
| 54 | +2. Regenerate project files if needed |
| 55 | +3. Build the project from Visual Studio (or via Unreal Build Tool) |
85 | 56 |
|
86 | | -You can use this plug-in as a project plug-in, or an Engine plug-in. |
| 57 | +### As Engine Plugin |
87 | 58 |
|
88 | | -If you use it as a project plug-in, clone this repository into your project's |
89 | | -*/Plugins* directory and compile your game in Visual Studio. A C++ code project |
90 | | -is required for this to work. |
| 59 | +1. Place repository under `Engine/Plugins/Media/VlcMedia` |
| 60 | +2. Rebuild engine/project modules |
91 | 61 |
|
92 | | -If you use it as an Engine plug-in, clone this repository into the |
93 | | -*/Engine/Plugins/Media* directory and compile your game. Full Unreal Engine 4 |
94 | | -source code from GitHub is required for this. |
| 62 | +## RTSP Notes |
95 | 63 |
|
| 64 | +RTSP-specific setup notes are available in `RTSP_SETUP.md`. |
96 | 65 |
|
97 | 66 | ## References |
98 | 67 |
|
99 | | -* [VideoLAN Homepage](http://videolan.org) |
100 | | -* [VideoLAN Nightly Builds](http://nightlies.videolan.org/) |
101 | | -* [Introduction to UE4 Plugins](https://wiki.unrealengine.com/An_Introduction_to_UE4_Plugins) |
| 68 | +- [VideoLAN](https://www.videolan.org/) |
| 69 | +- [VlcMedia upstream repository](https://github.com/ue4plugins/VlcMedia) |
0 commit comments