Thanks for yout great help here ATC!
I managed to get the major MKV and MP4 files that have a supported video codec working now.
Still only just playing with no fast forward or such that does a good job but still
Had to edit a few files to swap the english audio track though.
If there is one thing I learned from this bit so far then that it makes no real sense trying to provide a home streaming solution for VR headsets unless the content is already suited for it.
These toys cost a small fortune and offer less support than what you had on your phone in 2015
FB seems to intentionally cripple these devices with the sole aim to make money through the additional apps you need to make them usable.
I have an old Galaxy S5 that I only use when going bush or fishing as it is now of little value, wouldn't like to lose my new phone in the dark or water.
Still, I just put a nice and free video player on it and with just the generic profile in Serviio it allows me to watch EVERYTHING.
In terms of actually learning something and wanting to share:
If you struggle to get a video playing on your device or your devices tells you the video is not available:
First check what your device can support natively, with no extras.
For most Android devices on the lower end a working combo would be MP4 with H264 and AAC with forced stereo for the audio.
Some newer devices will offer much more, so it really helps to check the manufacturers websites for the real specs.
Create a user-profiles.xml!!!
It is easy to just edit the profiles.xml but it is also very easy to mess it up, so a user profile makes double sense.
Do not make a ton of changes at a time, do one or two and then test.
If the service starts and stops shortly after it means you made an error in your profile - so make sure to restart the service after every change
Keep in mind that Serviio checks for everything you define while "ignoring" the rest, this means you need to make rule for every video and audio codec your device won't support.
Remux VS transcoding....
In many cases you can find video files with a supporting video, like in my case H265, that still refuse to give you a visible video.
In other cases it might just be the audio having too many channels.
If possible and as far as uderstand, Serviio will just remux the video if the codec and container allow it.
You might have to specify max bitrates and resulutions for some files with supporting video codes!
If too much Serviio will then transcode instead of just remuxing/repacking to make your video work.
Video formats, codecs, containers - WTF?!?
I do video stuff now for quite a few years but still get confused every now and then, especially when it comes to my collection of vintage files.
Yes, I still have videos from my old Nokia phone in 3GP and a bunch of home videos that back in the day were transfered from VHS to AVI.
Basically for every video codec used you might find some files in my collection.
You can imgine that finding something capable of playing basically everything from vintage to modern 7.1 channel 4K HDR is a hard task.
Serviio can do an awful lot to help out, but you can too.
In most cases a user will use a computer or TV to watch videos, my VR set must be an exception I guess.
For the rest it is down to phones and tablets.
I found it rather helpful to start with Serviio in the generic profile and then to test what my devices can and can't play porperly.
My PC does not really care what I feed it, basically everything just plays when using VLC as a free player.
My tablet is an old Nexus7 and also has little to no struggles, thanks to Nvidia I guess.
The TV's though are a different story.
The small one only likes MP4 with AAC or AC3 sound, the later often comes with weird volume mixes.
It does support H264 and H265 as well as AVI but is rather limited in terms of processing something with high bit reates.
The big one claims to support much more, including DTS, TrueHD, HDR and such fancy stuff.
I fell for the datasheet only to find out that this claim is not true for build in player - it only supports the most basic Android profiles.
To actually use what is advertised I need a video player capable of using the provided libraries.
Routers, hard drives, CPU and WiFi....
Had to learn the hard way that these four can play a vital role in your video experience.
Transcoding often requires a lot of hard drive activity.
Some old, standard drive might not cope well here when it comes to 4K and multi channel audio to be transcoded.
SSD's or a RAM drive will bring a big performance boost if your files are not processed fast enough.
Transcoding also needs a lot of CPU power, meaning it might be quite a wait until a video actually starts playing - be patient before you think it failed.
Not sure if the PC version of Serviio supports GPU use for transcoding but would be a great feature.
In terms of WiFi I have to say that 5GHz does work better here, especially if you only use it for your streaming devies and keep the rest on the 2GHz band.
Bandwidth should not be a bottleneck anymore, however bad signal quality will!
Keep that in mind when troubleshooting and check that you actually get enough data through to your device.
Some routers are special, like those from your ISP....
In my case the router recognises DLNA traffic and provides some sort of prioritisation for it.
Sounds great but can mean that if you get the source already over WiFi and have busy kids in lockdown that everything else comes to a crawl if you stream 4K content.
Sadly it can also mean that your ISP messes up your experience by not properly forwarding control commands.
Most people won't need to control the player through the sending device but if you do and I does not work at all chack your router setting for something to disable DLNA.
Most have a section for what's connected to the USB port.
Sometimes you find the general setting in there, sometimes it has it's own section.
If you find nothing then don't worry too much
Ok then, how did I get the unsupported formats playing in VR?
By making a list, on one side the files I wanted to watch, on the other side the container, codecs, track numbers and audio channels.
Thanks to modern technology it was then just a few clicks to sort the list by the things I needed.
I ticked the ones off that my headset played properly and noted what was supported.
Then I tried various profiles to check if any of them provide support without transcoding.
The few files that worked this way were noted and the corresponding rules taken from that section in the profile to be used in a user-profile.xml.
Tested that with that the files still play fine.
As MP4 was my target I sorted the remaining files for this and first focussed on the audio stream.
Whatever unsupported audio container or codec I found that still provided a video got a transcoding rule with an * for the video container.
Again in the user-profiles.xml.
Tested that the videos now had sound but ignored if they had the wrong language.
IMHO the important step right after was to change those rules so instead of the * the actual container type was set.
I did without this at first but realised it becomes hard to troubleshoot if make too generic.
Serviio seems to need a specific approach here.
With that I had all the formats sorted that my device could play natively for the video and also had a good starting point for unsupported audio formats.
The rest of my still rather long list of files contains videos in containers or with codecs my headset just won't play.
That means the only way out is to actually transcode them.
Sadly for this step it is not possible to start with just the audio as in most cases the player won't start.
And with the need to transcode the video and audio comes the question of: How much time do you have for it?
I mean both in terms of waiting for a transcoded file to play and defining all the required rules correctly.
Just because my PC can convert a 4K HDR video with True HD sound into a MP4 with AAC stereo about 20 times faster than it play in realtime does not mean it works the same way for streaming it through Serviio.
Makes a lot of sense to prepare some short clips cut out from the original to do the testing.
I found that in many cases Serviio seems to fully convert the file first before even starting to stream it - for a 15GB file that can mean a very very long time until you see something.
The less your device supports the more you need to define rules for and the more transcoding you need.
Is it really worth the hassle?
Don't really know...
It is rewarding though to see more and more files play properly.
IMHO it all depends on how powerful your server machine is and how much your playing device can support.
And I say: If you can cheat than do so first!
Means for things like sound bars and home cinema setups check first if you can simply set your devices to do the required transcoding, especially in terms of audio.
Your amp might accept all sorts of audio codecs but is utterly uselss if your TV as the main receiver won't pass the signal through correctly.
But you might have a setting on both that allows them to deal with the native audio stream in an acceptable way
As long as you don't need to transcode the video of some huge files and a remux wil do I guess Serviio does a really good job.
If you create your own collection from your own DVD's it makes sense to rip them in the best possible way, meaning just the audio you need and all in a container your devices accept without transcoding.