Posted On

2017 Jun 17

over 7 years ago

Updated On

2023 Jan 06

almost 2 years ago

Aug 27, 2018 Update

Revisited this post to try to fix the workaround by applying read permissions to all users, which is not ideal if your NAS is shared with other users

Had fun with docker building, and found another image that works better than dmaxwell/airvideohd's, as the image was supposed to be used in unRAID other than Synology. More misc details on the Synology forums, AirVideo and Docker

Tested on the following:

DMS version: 6.2-23739 Update 2

hdo26/airvideohd

Great thanks to both hdo26 and dmaxwell for providing the airvideohd docker images

As most of the installation steps are the same as before, I won't repeat the tutorial below. Just replace dmaxwell/airvideohd with hdo26/airvideohd for the image

Remember to restart the container after the initial run. If you don't, you will still see the "Could not load folder content" error

New tip

(Single User) If you have multiple shared folders and wish to add it to AirVideoHD, you do not need to edit the server.properties settings. Just add the shared folder(s) as a separate virtual mount in /videos

Eg:

Syno folder: /volume1/video1 Syno folder: /volume1/video2

Add the Syno shares as a subfolder in "/videos" mount during container creation

"/volume1/video1:/videos/videos in shared video1" "/volume1/video2:/videos/videos in shared video2"

This way, when you browse in AirVideoHD, you will see the following:

  • videos
    • videos in shared video1
      • video files from a separate Syno share
    • videos in shared video2
      • video files from a separate Syno share

This works if you are the only user, if you need a more specific configuration like multi-user, you still need to edit the server.properties file accordingly

It works now since the container have the proper permissions (docker) to read your video files

Moving on, post archive

As I've moved on to using Plex for better library management, this will be the last update to this post

Synology AirVideoHD Docker - Graphical Install without SSH

Installed on the following:

NAS: Synology DS916+ Version: DSM 6.1.2-15132

Requirements:

  • Access to the DSM Desktop as administrator level

If you have not installed Docker on your Synology, please do so by installing it via the Package Centre.

dmaxwell/airvideohd hdo26/airvideohd

Under Docker's page, go to "Registry" and enter "airvideo" into the search bar and proceed to download "hdo26/airvideohd"

After it has been downloaded, click on Launch from the same Image tab

When shown with "Create container" settings page, change Container Name if you wish or just leave it

click on Advanced Settings

Advanced Settings >> check "Enable auto-restart" (self explanatory)

Volume tab

  • Add and/or create the following folders for the File/Folder column by clicking on "Add Folder" button.

Column File/Folder - this is the "real"/existing locations/folder on your Synology

Mount path - "virtual" paths, this can be anything, but in this case, we have to set it to match hdo26/airvideohd's settings, shown in the picture above except for your media location for the Mount path of "/videos"

The /docker Shared Folder should be automatically created for you by Synology when you first install Docker. For simplicity, just install everything onto the /docker shared folder. If you do not want it to show up on your network shares, hide it in your Control Panel >> Shared Folder settings

Eg:

File/Folder = /anywhere/on-your-synology (Your media location)
Mount path = /videos ("/videos" do not change, keep it this way)

File/Folder = /docker/airvideohd/conversionpath (Self-created. You can change it to something else if you want like /temp)
Mount path = /conversionPath ("/conversionPath", case sensitive)

File/Folder = /docker/airvideohd/config (Self-created. As above for conversionpath)
Mount path = /config ("/config" do not change)

Adding more Media locations as you would normally do on your Desktop version of the AirVideoHD Server >> Bottom of this post

Network tab - local or WAN (host)?

Network >> check "Use the same network as Docker Host"

I chose to use host for the airvideo container as it does not give me any network problems that I might come across, especially when accessing via VPN. In a nutshell, if you set ports other than using "host", the server will only be reachable via a local network, and you need to fiddle other settings to allow access into your Docker container which is out of the scope of this tutorial. (That includes opening your router port forwarding etc)

Almost there...!

After you have created the container, the container should run automatically

Restart the container

Once it is running, proceed to restart the container by right-clicking the container, Action >> Restart

From your iOS device connected to the same network, enter the IP address of your Synology NAS and leave the port number unchanged (default: 45633)

Remember to restart the container after the initial run. If you don't, you will still see the "Could not load folder content" error

Click on OK and save other settings. Refresh the media directory on your iOS devices and you should see your video folders load up

Congratulations! You have successfully installed AirVideoHD server on your Synology and you should be able to transcode/stream your videos onto your iOS devices

Note:

  • Experience: Not always, but larger than >3GB, FLAC, HQ 1080p video files will tend to load and close itself during playback. As it works for my usage, I did not proceed further to diagnose the problem. I am guessing it is due to capabilities of the NAS
  • 1080p HQ videos will take some time during load, but usually, streams fine during playback. Seek while playback will also take some time

Server Settings - PIN, Media Locations, Single-user password

Now, to the geeky part (but it is not difficult)

Finding your server PIN

While the airvideohd container is running, go to Docker >> Container >> double-click on the airvideohd container or select and then click on the "Details" button

Go to the Terminal tab >> click on "Create" (not on the small arrow)

and a new item called "bash" should appear below the "hdo26-airvideohd", select the new "bash" entry

and you will be greeted with the following screen:

Type in the following command followed by an enter/return:

cd config/

(goes to the config folder)

cd logs/

(goes to the logs folder located inside config)

cat network.log | grep Generated

(shows network.log contents and filter only the term "Generated" note: Generated is case-sensitive)

It should return your airvideohd server PIN

Adding Media Locations & Single-user password & other settings - server.properties

Go back to the root folder by typing the following command (for simplicity sake, just go back to the starting point/root to avoid any wrong directories)

cd /

To view your server.properties file which is the home of your airvideohd settings, go back to the "config" folder

cd config/

cat server.properties

(shows your current server.properties settings)

Now to proceed to edit the server.properties file, type in the following command:

vi server.properties

To make changes to the file, press "i" (you should see a "-- INSERT --" at the bottom of the screen, and scroll down to the entry which you would like to edit by using the keyboard arrow keys

After you have changed your desired settings:

  • Press "Esc" on your keyboard to exit "-- INSERT --" mode
  • Type the following to save your server.properties file
  • :wq note the colon (:) sign in front of letters (w) and (q)

More info on how to use "vi" command

After you have saved your settings, go back to Docker >> Container, choose the airvideohd container and restart it under Actions or just switch it off and on

More on Adding Media Locations

Did not test this by adding more locations as I have my files on one shared folder, but it should work by first stopping your airvideohd container, go to the settings page of the Container by clicking on "Edit" in your Docker >> Container page. Proceed to add your new Media Locations to the Volume mounts

Eg:

File/Folder = /media-location2 (this is your "real"/existing folder)
Mount point = /video2 (this is the "virtual" folder that you have created in your server.properties file, you need to point your "virtual" folder to your "real" folder. This mount point should be the same as the new media location you have entered in your server.properties file eg: /video2)

Archived content

Please skip this entire section as it no longer applies to hdo26/airvideohd's image

Solution to "Could not load folder content - Access to file denied: /videos/"

"Could not load folder content, sorry :( "

Access to file denied: /videos/

The quickest way to fix this problem without dwelling deep into the details is to enable "Read" access to the "users" group. I am not a Linux veteran, so I don't know what should be the best settings used for this, or the default permissions for Docker when accessing shared folders on the Synology. If anyone knows what Docker's default user/permissions are, please do let me know in the comments!

Open File Station on your Synology Desktop and right-click on the "Media" folder that you have selected and choose "Properties"

Under the Permission tab >> Create >>

Choose from the list of user or group: users

and check "Read"

Copyright © 2012 - 2024 Jason Loong and jasonloong.com
Logo by itsjanelia
Excerpts and links may be used, provided that full and clear credit is given to Jason Loong and jasonloong.com with appropriate and specific direction to the original content. Unauthorized use and/or duplication of this material without express and written permission from this site’s author and/or owner is strictly prohibited.
jasonloong.com site uptime badge