Jump to content

stop transcoding on server


blackmamba

Recommended Posts

blackmamba

I am new to MB, basically moving from using Apple TV

 

My setup is MB Server running on a windows 7 box, it isn't very powerful and doesn't have much memory, it has never needed to, it basically it is little more than a file server, though it primary use is for my work as a software developer and runs SQL Server and a development website quit happily.

 

It currently it is also an iTunes server for an AppleTV3 box, when watching a movie the box shows almost no cpu activity as all the work is being done on the Apple box.

 

I really want to do the same with MB, so I have a RKM 902II Android box, the latest and greatest, I thought that the Android box could do all the heavy transcoding work as I don't care if it maxes out the cpu as its all that it has to do.

 

But what I see is the MB Server saying it is transcoding and the cpu is running at 70% - 35% for MB and 35% for ffmpeg.

 

Is there a way I can get the server to offload the grunt work to the Android client, I assume that the server imagines that the android client is just some low powered phone, but its not its a dedicated settop box.

 

 

Any suggestions

TIA

Rob 

Link to comment
Share on other sites

Deathsquirrel

Sorry but the clients aren't designed to do the transcoding.  That's the function of the server.  If you don't want your server transcoding you may either choose to convert your media to formats your clients support or use clients that can play your formats.

 

If you choose the former, I suggest MP4 container, h264 video, and AAC sound.  That combo plays on about any device.

 

For the latter use a PC client as MBC/MBT will play most anything and the win 8.1 app is pretty close.  I have hopes that the xbox one client will be pretty solid in format support but we'll have to wait and see.

Link to comment
Share on other sites

AdrianW

If your Android client is capable of transcoding the video then it should also be capable of playing the video direct (with no transcoding).

 

Have you made sure that the client has direct access to the videos? When setting up your library make sure you've used UNC paths or path substitution. 

Link to comment
Share on other sites

blackmamba

Well I guess I meant play direct rather than transcoding - ie the settop is capable of handling the file itself without the server transcoding it first.

 

I believe in Plex that devices have profiles that indicate what they can play direct but I don't see that MB uses that approach, how does it determine the capabilities of a client?

 

I mean clearly an Android S2 phone and a latest/greatest Android SetTop box linked to my TV have very different capabilities and uses.

 

Indeed the settop probably runs close to my server if you take into account all the extra weight of windows and the server having to do other stuff.

Even more so if you imagine a scenario where there are 3 different streams going at the same time, one for the main room and two for my kids, the settops only are dealing with one while the server is handling 3. 

 

My current setup with AppleTV's as clients to a central iTunes server works perfectly from that perspective, practically no load on the server, the clients able to handle everything regardless of how many are running at the same time, and no open shares on the server, the move to Android settops and MB is solely because I am a bottleneck in needing to convert all the files to MP4 and that it is almost impossible to get subtitles to work on Apple TV. 

 

I guess I don't really understand the ramification of using path substitution, I have read the help and see that it appears to suggest that I really should have it turned on otherwise probably everything gets transcoded, though it wasn't initially obvious until pointed out above.

I also assume that to use path substitution I would need to setup a 'windows share' for that path, but doesn't that create a security whole i.e. currently I can control who can connect to the MB server and the MB server is the only one that can access the local file system, but if open up a share wouldn't I need to open that to 'everyone'. Again my understanding of Plex is that when you Play Direct a file from the server it still goes via the server rather than the client accessing an 'open' share, same with Apple TV.

  

TIA

Rob

Link to comment
Share on other sites

yes it's profile based for us as well. the android app build it's profile dynamically by querying the device capabilities using android api's

Link to comment
Share on other sites

blackmamba

I created a library in Windows 7 and added the various folders to it, then shared it with everyone and set MB to use path substitution.

 

That seems to have done the trick

 

Rob

Link to comment
Share on other sites

blackmamba

well done, although just so you know, android doesn't use that. but carry on  :)

 

So ....

 

Using path substitution wont help on Android, it still going to transcode rather than play direct?

 

So what the point of path substitution and also therefore back to my original question how to stop transcoding on the server when playing to a client that should be able to play the content directly..... 

 

I guess at this point I am completely confused about how MB should be setup, I will remove he shares and rethink where I am going with this.

Link to comment
Share on other sites

The path substitution is for the full HTPC clients that can actually access the file system directly (stock Android cannot).  I would leave them in place to benefit those apps.

 

For Android, it will only transcode what it has to.

Link to comment
Share on other sites

blackmamba

If for Android clients the server can determine when to transcode and when to just pass through the file, why can't the server do the same for HTPC clients thus obviating the need for path substitution.

 

I am still confused as to what the benefit of path substitution is on the server and how significant the benefit is and is it limited solely to windows based clients or is it solely not applicable to Android based clients.

Link to comment
Share on other sites

foghat

If for Android clients the server can determine when to transcode and when to just pass through the file, why can't the server do the same for HTPC clients thus obviating the need for path substitution.

 

I am still confused as to what the benefit of path substitution is on the server and how significant the benefit is and is it limited solely to windows based clients or is it solely not applicable to Android based clients.

 

I believe there is a difference between passing through a file (no transcoding) and direct playing.

 

Path substitution is used in the event your home theater pc does not have direct access to the folder the movie lives in.  If it does not have direct access to the folder, there is no way the htpc can direct play the movie. 

 

My understanding is if the htpc is direct playing the movie, you could shut down your server and the movie would continue playing - i.e. the server is completely taken out of the equation (until the movie ends and you need to further navigate the library).  Very much like if you launched a movie from within a 3rd party app (vlc, for instance)

 

In the case of an andriod or ios client, even if there is no transcoding occurring - you are not technically direct playing the movie - if you were to kill the server, you kill the movie being streamed.  I believe.

 

Edit:  having said this.  If you kill the server then I guess the path substitution gets killed as well?  So not sure how that would shake out.

Edited by foghat
Link to comment
Share on other sites

thefirstofthe300

Foghat is almost there. Path substition is when the HTPC has the ability to directly access the filesystem that the media is stored on and can play directly from that file: all the server is doing is pointing the client to a file and the client takes care of all of the rest.

 

If path substitution is not an option (the client is unable to directly access the filesystem the media is on), the server will fall back to file streaming without transcoding the files audio and/or video streams, although it may copy the streams to a different container format (say mkv to mp4). Note: stream copying is NOT transcoding. It is just a simple remux that takes very few system resources.

 

If the client is unable to play the file audio and/or video streams as is because it doesn't support the codecs, the server will kick into transcoding mode and transcode only the codecs that need it (say you can play the video codec natively but can't play the audio, the server will transcode the audio but copy the video.

 

I hope this answers your question.

 

EDIT: On rereading foghat's answer, I realized he nailed what path substitution is. Sorry for repeating him. I am going to leave the answer up though because it does detail the server's logic for when to transcode and when not to.

Edited by DaBungalow
  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...