Page 1 of 1

Custom Oculus Go profile

PostPosted: Wed Jul 31, 2019 7:21 pm
by random_name
I am trying to set a custom profile for an Oculus Go but as a newbie finding this difficult.

I would like any video up to 2048p to not transcode, and every above to transcode to 2048p. I think audio wise and codec wise everything can stay as it is. I can set the profile up manually so there's no need for it to be detected automatically. I'm not sure if my CPU (or any CPU) has enough grunt for these types of transcodes, but we will see.

Would anyone be able to help. I have spent ages just getting Serviio to run using docker, and now am falling on the last hurdle.

Re: Custom Oculus Go profile

PostPosted: Wed Jul 31, 2019 8:58 pm
by atc98092
This page (https://www.serviio.org/index.php?optio ... icle&id=24) has the details about building profiles, if you haven't seen it. I believe what you need is a matches line that captures the width (heightGreaterThan - optional; matches videos that have height in pixels more than the provided value). This is the basic structure:
  Code:
<Video targetContainer="[container]" targetVCodec="[video_codec]" targetACodec="[audio_codec]" maxVBitrate="[bit_rate]">
            <Matches container="[container]" vCodec="[video_codec]" aCodec="[audio_codec]"/>
         </Video>


The target container is required, the other fields are optional, although you need to ensure your video has compatible audio and video codecs if you aren't transcoding them. In the Matches line, you would have something like this:
  Code:
<Matches container="*" heightGreaterThan="2048" />


The asterisk tells Serviio to match all containers, and match any video that has a pixel height greater than 2048. I don't think it will be necessary to specify the targetVCodec, but it might since you are transcoding the video. In that case you woulds likely be OK with [targetVCodec="h264"]. Don't set a max bitrate if you think your NAS hasn't the power for it. I only use that when I have a device (older Roku players usually needed it) that can't accept HD bitrates.

Re: Custom Oculus Go profile

PostPosted: Wed Jul 31, 2019 10:29 pm
by random_name
Thanks for your help. From what you have said I have come up with the following

  Code:
<Profile id="oculusgo" name="Oculus Go" extendsProfileId="1">
   <Transcoding>
      <Video targetContainer="mpeg" maxHeight="2048">
         <Matches container="*" heightGreaterThan="2048" />
      </Video>
   </Transcoding>
</Profile>


Its not working properly, but hopefully I am on the right track.

I have just tried a few vids. Under 2048p stream straight away as you would expect. However over 2048p don't seem to work as most are H.265. Presumably if a video transcodes, it has to be/is easiest if its to H.264 and not H.265?

  Code:
ERROR [ResourceTransportRequestHandler] Error while processing resource, sending back 500 error. Message: Cannot transcode to H265

Re: Custom Oculus Go profile

PostPosted: Wed Jul 31, 2019 10:41 pm
by random_name
This seems to work as far as trying to transcode, but as expected my CPU doesn't seem to have the grunt. I think I will have to investigate Intel Quicksync, and/or generally a beefier CPU.

  Code:
<Profile id="oculusgo" name="Oculus Go" extendsProfileId="1">
   <Transcoding>
      <Video targetContainer="mpeg" maxHeight="2048" targetVCodec="h264">
         <Matches container="*" heightGreaterThan="2048" />
      </Video>
   </Transcoding>
</Profile>

Re: Custom Oculus Go profile

PostPosted: Wed Jul 31, 2019 11:02 pm
by atc98092
You might try the mpegts as your target container instead of mpeg. Not certain if it will help, but the TS container is designed for streaming. And yes, transcoding H.265 to anything else is likely going to strain your NAS, unless it's really a powerful box. If your NAS has an Intel processor, then Quicksync might help. Serviio does support it, but you have to manually edit a file for it to work. I'd have to search the site to find the instructions.

Oh, and I don't think you need the Max Height switch in the first line. Just the matches line should be fine. At least give it a shot. That might reduce the load on your CPU.

Re: Custom Oculus Go profile

PostPosted: Thu Aug 01, 2019 1:27 am
by random_name
It might be the player I'm using, but mpegts seems worse as its just skips to the next video when the very small amount that has encoded ends, whereas mpeg seems to pause and buffer while encoding.

So are you saying that with the match line at 2048p, the software 'knows' that is the target, so it doesn't need to be specifically defined?

The NAS was built around being a simple Plex box and has ballooned to being much more, so I would not surprise me if I need to upgrade.

In any case its running OpenMediaVault based on Debian linux, just in case anyone can lend a hand with getting Quicksync going. Its a J4105 CPU - https://www.notebookcheck.net/Intel-Celeron-J4105-SoC-Benchmarks-and-Specs.284856.0.html

Re: Custom Oculus Go profile

PostPosted: Thu Aug 01, 2019 12:15 pm
by atc98092
random_name wrote:So are you saying that with the match line at 2048p, the software 'knows' that is the target, so it doesn't need to be specifically defined?

Nah, I think I spoke without thinking there. Serviio doesn't know the target, so it probably does need to be specified. But I'd have to know your player and display specs to know exactly what they support.
random_name wrote:The NAS was built around being a simple Plex box and has ballooned to being much more, so I would not surprise me if I need to upgrade.

In any case its running OpenMediaVault based on Debian linux, just in case anyone can lend a hand with getting Quicksync going. Its a J4105 CPU - https://www.notebookcheck.net/Intel-Celeron-J4105-SoC-Benchmarks-and-Specs.284856.0.html


I'm not certain the Celeron supports Quicksync, but I'll try and research it today.

Custom Oculus Go profile

PostPosted: Tue Oct 22, 2019 5:46 pm
by Emileroure
I have been very successful in making custom profiles for my digital backs, H20>P20 and i will try to profile the P30 next week.

I have made exactly like U. But I have used linear response instead of film standard before I developed the file.

Try that