Skip to content
This repository has been archived by the owner on Sep 20, 2023. It is now read-only.

Commit

Permalink
Merge remote-tracking branch 'upstream/master' into configuration-docs
Browse files Browse the repository at this point in the history
  • Loading branch information
mark-monteiro committed Apr 10, 2020
2 parents 395ce86 + 43073bf commit 384a8a9
Show file tree
Hide file tree
Showing 41 changed files with 572 additions and 366 deletions.
12 changes: 12 additions & 0 deletions .ci/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,18 @@ jobs:
submodules: true
persistCredentials: true

- task: CmdLine@2
displayName: "Install Markdownlint CLI"
inputs:
script: 'npm install markdownlint-cli'
workingDirectory: '$(Build.SourcesDirectory)'

- task: CmdLine@2
displayName: "Run Markdownlint"
inputs:
script: 'npx markdownlint **/*.md --ignore node_modules --ignore src'
workingDirectory: '$(Build.SourcesDirectory)'

- task: CmdLine@2
displayName: "Update Submodules"
inputs:
Expand Down
15 changes: 15 additions & 0 deletions .markdownlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
# MD013/line-length
MD013: false
# MD033/no-inline-html
MD033: false
# MD025/single-title
MD025:
# Ignore front matter 'title' property, it is not used in generated markup
front_matter_title: ""
# MD026/no-trailing-punctuation
MD026:
# Allow headings to end with '?'
punctuation: ".,;:!"
# MD028/no-blanks-blockquote
MD028: false
13 changes: 13 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp

// List of extensions which should be recommended for users of this workspace.
"recommendations": [
"davidanson.vscode-markdownlint"
],
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
"unwantedRecommendations": [

]
}
18 changes: 16 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
<!-- markdownlint-disable MD041 first-line-heading -->
<h1 align="center">Jellyfin Documentation</h1>
<h3 align="center">Part of the <a href="https://jellyfin.media">Jellyfin Project</a></h3>

This repository houses all documentation for Jellyfin available at [jellyfin.org](https://docs.jellyfin.org/) and written in markdown.

# Contributing
## Getting Started

The site is built with [DocFX](https://dotnet.github.io/docfx/) using [DocFX Flavored Markdown](https://dotnet.github.io/docfx/spec/docfx_flavored_markdown.html). See the content section [here](https://dotnet.github.io/docfx/tutorial/docfx_getting_started.html) for a quick tutorial on DocFX.

Expand All @@ -23,7 +24,20 @@ Next, you will need to install DocFx as a [command line tool](https://dotnet.git
docfx --serve
```

This will build the site and start up a development server to test out your changes available at http://localhost:8080.
This will build the site and start up a development server to test out your changes available at <http://localhost:8080>.

### Linting

This repository is configured to use [markdownlint](https://github.com/DavidAnson/markdownlint/) for linting Markdown files.

If you are editing files within Visual Studio Code, you can install the markdownlint [extension](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint) to see the linting errors as you work.

You can also easily run the linter manually using the associated markdownlint [CLI](https://github.com/igorshubovych/markdownlint-cli).

```bash
npm install -g markdownlint-cli
markdownlint **/*.md --ignore node_modules --ignore src
```

# Layout

Expand Down
2 changes: 1 addition & 1 deletion general/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ The Jellyfin project was started in early December 2018 as a result of Emby's de

You can find our main repository on [GitHub](https://github.com/jellyfin/jellyfin) as well as our [organization](https://github.com/jellyfin) page.

# Core Team
## Core Team

[Andrew Rabert (nvllsvm)](https://github.com/nvllsvm)<br/>
[Joshua Boniface (joshuaboniface)](https://github.com/joshuaboniface)<br/>
Expand Down
3 changes: 2 additions & 1 deletion general/administration/building.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
uid: admin-building
title: Building from Source
---
<!-- markdownlint-disable MD029 ol-prefix -->

# Source

Expand Down Expand Up @@ -55,7 +56,7 @@ All package builds begin with these two steps:

## Windows

3. Install the dotnet core SDK 2.2 from [Microsoft's Website](https://dotnet.microsoft.com/download/dotnet-core/2.2) and [install Git for Windows](https://gitforwindows.org/). You must be on Powershell 3 or higher.
3. Install the dotnet core SDK 3.1 from [Microsoft's Website](https://dotnet.microsoft.com/download/dotnet-core/3.1) and [install Git for Windows](https://gitforwindows.org/). You must be on Powershell 3 or higher.
4. From Powershell set the execution policy to unrestricted:
Expand Down
78 changes: 39 additions & 39 deletions general/administration/hardware-acceleration.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Jellyfin supports [hardware acceleration](https://trac.ffmpeg.org/wiki/HWAccelIn
OS | Recommended HW Acceleration
------- | -------------
Linux | QSV, NVENC, VAAPI
Windows | QSV, NVENC, AMF, VAAPI
Windows | QSV, NVENC, AMF
MacOS | None (VideoToolbox Coming Soon)
Android | MediaCodec, OMX
RPi | OMX
Expand Down Expand Up @@ -94,12 +94,12 @@ In order to achieve hardware acceleration using docker, several steps are requir
Prerequisites:
https://github.com/nvidia/nvidia-docker/wiki/Installation-(version-2.0)
[NVIDIA Docker Installation](https://github.com/nvidia/nvidia-docker/wiki/Installation-(version-2.0))
GNU/Linux x86_64 with kernel version > 3.10
Docker >= 1.12
NVIDIA GPU with Architecture > Fermi (2.1)
NVIDIA drivers ~= 361.93 (untested on older versions)
- GNU/Linux x86_64 with kernel version > 3.10
- Docker >= 1.12
- NVIDIA GPU with Architecture > Fermi (2.1)
- NVIDIA drivers ~= 361.93 (untested on older versions)
Confirm that your GPU shows up with this command.
Expand All @@ -122,13 +122,13 @@ apt-get install curl
Edit `sources.list` in `/etc/apt/sources.list` and add `non-free contrib` to each source as required.

```data
deb http://ftp.ch.debian.org/debian/ stretch main
deb http://deb.debian.org/debian/ stretch main
```

The line above should be modified to match the following line as an example.

```data
deb http://ftp.ch.debian.org/debian/ stretch main non-free contrib
deb http://deb.debian.org/debian/ stretch main non-free contrib
```

Download and add the sources for the Nvidia docker container.
Expand Down Expand Up @@ -275,24 +275,24 @@ To check information about VAAPI on your system install and run `vainfo` from th

1. Configure VAAPI for your system by following the [relevant documentation](https://wiki.archlinux.org/index.php/Hardware_video_acceleration). Verify that a `render` device is now present in `/dev/dri`, and note the permissions and group available to write to it, in this case `render`:

```sh
$ ls -l /dev/dri
total 0
drwxr-xr-x 2 root root 100 Apr 13 16:37 by-path
crw-rw---- 1 root video 226, 0 Apr 13 16:37 card0
crw-rw---- 1 root video 226, 1 Apr 13 16:37 card1
crw-rw---- 1 root render 226, 128 Apr 13 16:37 renderD128
```
```sh
$ ls -l /dev/dri
total 0
drwxr-xr-x 2 root root 100 Apr 13 16:37 by-path
crw-rw---- 1 root video 226, 0 Apr 13 16:37 card0
crw-rw---- 1 root video 226, 1 Apr 13 16:37 card1
crw-rw---- 1 root render 226, 128 Apr 13 16:37 renderD128
```

> [!NOTE]
> On some releases, the group may be `video` instead of `render`.
> [!NOTE]
> On some releases, the group may be `video` instead of `render`.

2. Add the Jellyfin service user to the above group to allow Jellyfin's FFMpeg process access to the device, and restart Jellyfin.
```sh
sudo usermod -aG render jellyfin
sudo systemctl restart jellyfin
```
```sh
sudo usermod -aG render jellyfin
sudo systemctl restart jellyfin
```
3. Configure VAAPI acceleration in the "Transcoding" page of the Admin Dashboard. Enter the `/dev/dri/renderD128` device above as the `VA API Device` value.
Expand All @@ -306,34 +306,34 @@ Follow the steps above to add the jellyfin user to the `video` or `render` group
1. Add your GPU to the container.
```sh
$ lxc config device add <container name> gpu gpu gid=<gid of your video or render group>
```
```sh
lxc config device add <container name> gpu gpu gid=<gid of your video or render group>
```
2. Make sure you have the card within the container:
```sh
$ lxc exec jellyfin -- ls -l /dev/dri
total 0
crw-rw---- 1 root video 226, 0 Jun 4 02:13 card0
crw-rw---- 1 root video 226, 0 Jun 4 02:13 controlD64
crw-rw---- 1 root video 226, 128 Jun 4 02:13 renderD128
```
```sh
$ lxc exec jellyfin -- ls -l /dev/dri
total 0
crw-rw---- 1 root video 226, 0 Jun 4 02:13 card0
crw-rw---- 1 root video 226, 0 Jun 4 02:13 controlD64
crw-rw---- 1 root video 226, 128 Jun 4 02:13 renderD128
```
3. Configure Jellyfin to use video acceleration and point it at the right device if the default option is wrong.
4. Try and play a video that requires transcoding and run the following, you should get a hit.
```sh
$ ps aux | grep ffmpeg | grep accel
```
```sh
ps aux | grep ffmpeg | grep accel
```
5. You can also try playing a video that requires transcoding, and if it plays you're good.

Useful Resources:

* https://github.com/lxc/lxd/blob/master/doc/containers.md#type-gpu
* https://stgraber.org/2017/03/21/cuda-in-lxd/
- [LXD Documentation - GPU instance configuration](https://github.com/lxc/lxd/blob/master/doc/instances.md#type-gpu)
- [NVidia CUDA inside a LXD container](https://stgraber.org/2017/03/21/cuda-in-lxd/)

### Raspberry Pi 3 and 4

Expand All @@ -344,8 +344,8 @@ Useful Resources:
sudo systemctl restart jellyfin
```
> [!NOTE]
> If you are using a Raspberry Pi 4, you might need to run `sudo rpi-update` for kernel and firmware updates.
> [!NOTE]
> If you are using a Raspberry Pi 4, you might need to run `sudo rpi-update` for kernel and firmware updates.
2. Choose `OpenMAX OMX` as the Hardware acceleration on the Transcoding tab of the Server Dashboard.
Expand Down
Loading

0 comments on commit 384a8a9

Please sign in to comment.