chore: update paths

Signed-off-by: Varun Patil <radialapps@gmail.com>
pull/653/merge
Varun Patil 2023-11-01 10:14:24 -07:00
parent 12137fe2a7
commit 6d2ef1cf97
6 changed files with 15 additions and 50 deletions

View File

@ -48,7 +48,7 @@ Memories is a _batteries-included_ photo management solution for Nextcloud with
## 🏗 Development Setup ## 🏗 Development Setup
1. ☁ Clone this into your `custom_apps` folder of your Nextcloud. 1. ☁ Clone this monorepo into the `custom_apps` folder of your Nextcloud.
1. 📥 Install [Composer](https://getcomposer.org/) and [Node.js 18](https://nodejs.org) 1. 📥 Install [Composer](https://getcomposer.org/) and [Node.js 18](https://nodejs.org)
1. 👩‍💻 In a terminal, run the command `make dev-setup` to install the dependencies. 1. 👩‍💻 In a terminal, run the command `make dev-setup` to install the dependencies.
1. 🏗 To build/watch the UI, run `make watch-js`. 1. 🏗 To build/watch the UI, run `make watch-js`.
@ -85,4 +85,8 @@ For the full changelog, see [CHANGELOG.md](CHANGELOG.md).
To the great folks building Nextcloud, PHP, Vue and all the other dependencies that make this project possible. To the great folks building Nextcloud, PHP, Vue and all the other dependencies that make this project possible.
Thanks to [GitHub](https://github.com), [CircleCI](https://circleci.com/) and [BrowserStack](https://www.browserstack.com) for sponsorship for Open Source projects for CI / testing on different devices. Thanks to [GitHub](https://github.com), [CircleCI](https://circleci.com/) and [BrowserStack](https://www.browserstack.com) for sponsorship for Open Source projects for CI / testing on different devices.
## 📄 License
Memories is licensed under the [AGPLv3](LICENSE). Subpackages such as `go-vod` are licensed under their respective licenses. See the directory of the subpackage for more information.

View File

@ -58,7 +58,7 @@ Memories works out-of-the-box with most Nextcloud setups, including with externa
## Transcoding ## Transcoding
Memories bundles a [transcoding server](https://github.com/pulsejet/go-vod) with HLS capabilites for adaptive streaming. You need to configure transcoding to be able to play any videos. HLS enables the browser to download the video as small chunks and in resolutions adaptive to the connection speed. As a result, this is usually expected to have a major boost in video experience and performance. Memories bundles a [transcoding server](https://github.com/pulsejet/memories/tree/master/go-vod) with HLS capabilites for adaptive streaming. You need to configure transcoding to be able to play any videos. HLS enables the browser to download the video as small chunks and in resolutions adaptive to the connection speed. As a result, this is usually expected to have a major boost in video experience and performance.
You can configure transcoding from the admin panel. Make sure to test all settings carefully on different kinds of videos. You can configure transcoding from the admin panel. Make sure to test all settings carefully on different kinds of videos.

View File

@ -34,9 +34,9 @@ NVIDIA GPUs support hardware transcoding using NVENC.
!!! warning "Memories v6+ required" !!! warning "Memories v6+ required"
This method is only supported in Memories v6 and newer. For older versions, see [below](#external-transcoder-v5). This method is only supported in Memories v6 and newer. If you're on an old version, see the instructions [here](https://github.com/pulsejet/memories/blob/v5.5.0/docs/hw-transcoding.md#external-transcoder).
[go-vod](https://github.com/pulsejet/go-vod), the transcoder of Memories, comes with a pre-built Docker image based on `linuxserver/ffmpeg`. The docker image connects to your Nextcloud instance and pulls the go-vod binary on startup. To set up an external transcoder, follow these steps. [go-vod](https://github.com/pulsejet/memories/tree/master/go-vod), the transcoder of Memories, comes with a pre-built Docker image based on `linuxserver/ffmpeg`. The docker image connects to your Nextcloud instance and pulls the go-vod binary on startup. To set up an external transcoder, follow these steps.
1. Use a `docker-compose.yml` that runs the go-vod container and mounts the Nextcloud data directories to it. You must specify `NEXTCLOUD_HOST` to match the name of your Nextcloud container. 1. Use a `docker-compose.yml` that runs the go-vod container and mounts the Nextcloud data directories to it. You must specify `NEXTCLOUD_HOST` to match the name of your Nextcloud container.
@ -87,41 +87,6 @@ Your external transcoder should now be functional. You can check the transcoding
You can run a similar setup without `docker-compose`. Make sure that the Nextcloud and go-vod containers are in the same network and that the Nextcloud data directories are mounted at the same locations in both containers. You can run a similar setup without `docker-compose`. Make sure that the Nextcloud and go-vod containers are in the same network and that the Nextcloud data directories are mounted at the same locations in both containers.
## External Transcoder (v5)
!!! danger "Deprecated"
Use this method if you're running a version of Memories v5 or older. For newer versions, see [above](#external-transcoder).
[go-vod](https://github.com/pulsejet/go-vod), the transcoder of Memories, ships with a Dockerfile that already includes the latest ffmpeg and VA-API drivers. To set up an external transcoder, follow these steps.
1. Clone the go-vod repository. Make sure you use the correct tag, which can be found in the admin panel. Note that this is **not** the same as the version of Memories you run.
```bash
git clone -b <tag> https://github.com/pulsejet/go-vod
```
!!! tip "go-vod version"
Make sure you always use the correct version of go-vod corresponding to your Memories installation. If you use a different version, the admin panel will show a warning and transcoding may not work properly.
1. Use a `docker-compose` file that builds the go-vod container and mounts the Nextcloud data directories to it. The directory containing the `docker-compose.yml` must contain the `go-vod` repository in it. You can then run `docker compose build` to build the image and `docker compose up -d` to start the containers.
```yaml
# docker-compose.yml
services:
server:
image: nextcloud
volumes:
- ncdata:/var/www/html
go-vod:
build: ./go-vod
restart: always
devices:
- /dev/dri:/dev/dri
volumes:
- ncdata:/var/www/html:ro
```
## Internal Transcoder ## Internal Transcoder
Memories ships with an internal transcoder binary that you can directly use. In this case, you must install the drivers and ffmpeg on the same host as Nextcloud, and Memories will automatically handle starting and communicating with go-vod. This is also the default setup when you enable transcoding without hardware acceleration. Memories ships with an internal transcoder binary that you can directly use. In this case, you must install the drivers and ffmpeg on the same host as Nextcloud, and Memories will automatically handle starting and communicating with go-vod. This is also the default setup when you enable transcoding without hardware acceleration.
@ -134,7 +99,7 @@ Memories ships with an internal transcoder binary that you can directly use. In
!!! tip "NVENC" !!! tip "NVENC"
These instructions mostly focus on VA-API. For NVENC, you may find further useful These instructions mostly focus on VA-API. For NVENC, you may find further useful
pointers in [this](https://github.com/pulsejet/go-vod/blob/master/build-ffmpeg-nvidia.sh) build script. pointers in [this](https://github.com/pulsejet/memories/blob/master/go-vod/build-ffmpeg-nvidia.sh) build script.
### Bare Metal ### Bare Metal
@ -178,7 +143,7 @@ sudo -u www-data \
!!! warning "Beware of old ffmpeg and driver versions" !!! warning "Beware of old ffmpeg and driver versions"
Some package repositories distribute old ffmpeg versions that do not support some modern hardware. (e.g., the VA-API driver installed by `apt` in the current debian image used by Nextcloud only supports up to 10th generation Intel Ice Lake CPUs). To ensure you have a compatible version, you may want to remove your existing ffmpeg version and build the drivers and ffmpeg from source. [This script](https://github.com/pulsejet/go-vod/blob/master/build-ffmpeg.sh) for VA-API or [this one](https://github.com/pulsejet/go-vod/blob/master/build-ffmpeg-nvidia.sh) for NVENC might be useful. Some package repositories distribute old ffmpeg versions that do not support some modern hardware. (e.g., the VA-API driver installed by `apt` in the current debian image used by Nextcloud only supports up to 10th generation Intel Ice Lake CPUs). To ensure you have a compatible version, you may want to remove your existing ffmpeg version and build the drivers and ffmpeg from source. [This script](https://github.com/pulsejet/memories/blob/master/go-vod/build-ffmpeg.sh) for VA-API or [this one](https://github.com/pulsejet/memories/blob/master/go-vod/build-ffmpeg-nvidia.sh) for NVENC might be useful.
### Docker ### Docker

View File

@ -1,10 +1,6 @@
# go-vod # go-vod
Extremely minimal on-demand video transcoding server in go. Used by the FOSS photos app, [Memories](https://github.com/pulsejet/memories). Extremely minimal on-demand video transcoding server in go.
## Filing Issues
Please file issues at the [Memories](https://github.com/pulsejet/memories) repository.
## Usage ## Usage

View File

@ -9,7 +9,7 @@ use OCA\Memories\Settings\SystemConfig;
class BinExt class BinExt
{ {
public const EXIFTOOL_VER = '12.60'; public const EXIFTOOL_VER = '12.60';
public const GOVOD_VER = '0.1.25'; public const GOVOD_VER = '0.2.2';
public const NX_VER_MIN = '1.1'; public const NX_VER_MIN = '1.1';
/** Get the path to the temp directory */ /** Get the path to the temp directory */

View File

@ -42,8 +42,8 @@ chmod 755 exiftool/exiftool
# Get go-vod prebuilt binaries # Get go-vod prebuilt binaries
echo "Getting go-vod $GOVOD_VER" echo "Getting go-vod $GOVOD_VER"
wget -q "https://github.com/pulsejet/go-vod/releases/download/$GOVOD_VER/go-vod-amd64" wget -q "https://github.com/pulsejet/memories/releases/download/go-vod/$GOVOD_VER/go-vod-amd64"
wget -q "https://github.com/pulsejet/go-vod/releases/download/$GOVOD_VER/go-vod-aarch64" wget -q "https://github.com/pulsejet/memories/releases/download/go-vod/$GOVOD_VER/go-vod-aarch64"
chmod 755 go-vod-* chmod 755 go-vod-*
# Check the version of go-vod is correct internally # Check the version of go-vod is correct internally