Jump to content

Questions about the Convert function


Recommended Posts

Chiefmas
Posted

Does the Convert option perform a similar function to Plex optimized versions? That is, pre-convert a video to settings which would presumably allow a direct stream instead of an on the fly transcode?

 

If that's what it does, does it match Emby client profiles well? I've been experimenting with the functionality on Plex, and frankly, it kinda sucks there so far. The "optimized versions" don't seem to match any of the client targets. i.e. I produce an optimized version for iOS, the Plex server will use that version....to transcode from, for the iOS client. So it's basically useless other than inserting another encode in the pipeline.

 

I'm hoping Emby will actually produce something that when a corresponding client shows up, it won't actually have to perform a transcode, it will just stream the converted version because that will fit the client?

 

@@cayars

 

Thanks!

Carlo
Posted

@@Chiefmas, yes they are similar type features only you'll find the Emby version works a lot better and doesn't conflict with the core of the system like Plex does.

In Emby you can also do more with this feature and have far greater control over it as well.

 

Let us know if you have any specific questions about the feature or any other,

Carlo

Chiefmas
Posted

Thank you for the info. I have a few questions now, so I can better understand how to utilize this feature. Is there some guidance on targeting platforms to prevent a transcode?

 

The options, or at least details in the options seem pretty minimal, so I feel like I'm guessing a bit. For instance, if I use the TV profile, with a 4Mbit encode rate, and a mobile client with a 4Mbit pipe requests that video, will a transcode happen, since the profile doesn't match, or will it use that profile? Are Emby profile names more user friend names for the Main and High profiles? How about the reverse, if a media player (a Roku, or Xbox etc) asks for a 4Mbit stream, and the only one available at that rate is a "mobile" encode, will it transcode from the original, or use the mobile 4mbit?  I guess I'm trying to understand if the version selection is based purely on bitrate or what affect the profile has.

 

Lastly, does the convert function utilize a hardware encoder if available and enabled, or is it always a software encode (i.e. I need to consider if this will put significant load on the system while happening)?

 

Ultimately, my goal is that I've got a few users who watch the same thing over and over (because of kids), and it always transcodes. I'm trying to remove the transcode and get it so they direct stream, in cases like this where I feel it'll be worth having the extra copy available for that kind of thing. Understanding the media selection operation will help in that if I just sit down and run a transcode operation myself (I'm fairly familiar with ffmpeg, so this is not an issue for me), I want to avoid guessing parameters until I find something that works.

 

Thank you again!

Carlo
Posted

Let's drop back a bit before we punt the ball and ask some questions.

 

Why do you need the convert function?  Are you uploading BluRay rips which have no chance of streaming to clients outside your network?  Do you have minimal upload bandwidth on your server?

 

I could ask more questions but those really get to the heart of it.  Are your files "huge" or do you just have "little" upload bandwidth to serve file externally?

Basically I'm asking why you need the convert function in the first place?

 

This isn't a trick question.  Many valid reasons.  I'm just asking to get a better feel of your media, your clients, you upload bandwidth, etc to help you better.

 

Carlo

Chiefmas
Posted

As I mentioned, I've got several people who will watch the same 4 things over and over because they have young children, literally 3-4 times a week or more, and there's a transcode every single time. It's a resource consumer, it's a reasonably small one, but it's one that I am trying to get to direct stream instread...if I can get the server and client to select the correct version which will direct stream. I've been having trouble doing it in Plex, so I'm trying to see if Emby is better in this regard or not.

 

Do I have limited bandwidth? I have good bandwidth for the US, but it's not not fiber, and it's asymmetric, so I feel it's worth a little effort to optimize if I can. It's the US, our bandwidth is laughable by almost everyone else in the world, so my OK bandwidth isn't going to be impressive outside the US. The machine I run this on is also OK, I chose the setup to be able to transcode in hardware, but if I have a spot where I can remove a re-occurring resource consumer, I'm going to try and do it.

 

I work in IT professionally, and I code on the side. I optimize where I can optimize. :D

 

Thanks!

Carlo
Posted

Not to take away from the convert feature in Emby but why not convert your stuff BEFORE adding to Emby?  I do this so everything will always direct play on every device.  The only time something will still transcode is a mobile session or something similar to that.  So maybe something to think about moving forward.

 

But back to the convert function in Emby.  Yes it will do the job well for you for this purpose.  You should be able to convert those 4 things they watch over and over and solve your problem.  What I would do is look at logs or the console while they are playing one of the videos to see why it's transcoding as that will help you determine how to convert it.

 

Carlo

Q-Droid
Posted

The convert feature doesn't have client specific targets and instead it has two built-in profiles, TV and Mobile with description text below each. There is a Custom profile that allows you to select container, video codec and audio codec preferences. All have Quality defined by bitrate with presets or a custom value.

 

That out of the way - the Mobile profile is meant to be the most compatible and play directly on almost everything. The TV profile changes the container and audio that still covers a wide range of clients but playback on  browsers is most likely to transcode.

 

Keep in mind that changes to the Quality (bitrate) will automatically choose a "best fit" resolution but it doesn't show it in advance. I think 4mbps and below select 720p.

 

Regarding remote client bitrates - If there isn't a media match (a/v codec, bitrate, container) between the server and client then it will transcode. It's unclear to me which source would be chosen for this because I've seen it pick the converted version but I don't know if that was forced on the client side.

 

Bitrates - This one is tricky because not everyone knows what their available upload/download rates are at any given time. The Auto bitrate option on the client is unreliable and too often under reports the available bandwidth and the result is to transcode. So try this: set a server level bitrate limit for remote streaming, pre-convert a copy of the media to the most compatible profile (Mobile) and a bitrate just below your server limit. Then tell the people using your server to set their client bitrate to a value above your server limit as long as it's below their own downstream bandwidth limit (if possible for them). This would stream the converted copy directly to just about every client.

 

Try it out with a few items and see how it goes.

Chiefmas
Posted

Not to take away from the convert feature in Emby but why not convert your stuff BEFORE adding to Emby?  I do this so everything will always direct play on every device.  The only time something will still transcode is a mobile session or something similar to that.  So maybe something to think about moving forward.

 

But back to the convert function in Emby.  Yes it will do the job well for you for this purpose.  You should be able to convert those 4 things they watch over and over and solve your problem.  What I would do is look at logs or the console while they are playing one of the videos to see why it's transcoding as that will help you determine how to convert it.

 

Carlo

Because I don't want to deteriorate the original. Often, I already have converted too, but the remote may not be able to take a 12Mbit H.264, so I'm getting a constant transcode down to a 4Mbit one. Eventually, they'll tire of whatever, and move on to something else. I'll remove the lower quality version and still have the high quality one. This is literally what the optimized versions feature in Plex is for.

 

I don't think I ever got a clear answer on any of the questions I actually asked about the with specifics before you veered off, so I guess I'll just test and see if it works any better. I haven't actually tried it, that was what a bunch of my original questions were asking but you seemed more questioning of my goals instead of answering the questions I asked, so thanks for not that much help.

Chiefmas
Posted

Regarding remote client bitrates - If there isn't a media match (a/v codec, bitrate, container) between the server and client then it will transcode. It's unclear to me which source would be chosen for this because I've seen it pick the converted version but I don't know if that was forced on the client side.

 

Sorry if I sound frustrated but I already went to a bunch of effort detailing the question which was _literally_ asking if the convert features on the server work with the profiles on the clients. Literally asking the question if the encode settings of the server are aligned to the client well.

 

This is the exact problem Plex seems to have. You can choose a profile that seemingly is targetted for that device, will fit the bandwidth, and it will still transcode, but it will use the pre-transcoded copy as source, so it's going to have under gone 2, if not 3 encode cycles at that point.

 

I can't seem to get a clear answer on what I thought was a simple question: If I tell it to produce a mobile version at x Mbit, and the client is able to support x MBit, is it good about selecting that version, and is that version made with parameters that will support a direct stream to the client. Plex seems to be very iffy about it. Here, I keep getting answers somewhat touching on bitrate, encode profiles with weird names that apparently aren't h.264 profiles, and are not really close to saying "well that's how it's supposed to work" or "no, that's not what it's for". I already have a good amount of experience encoding video, none of the technical responses are new information to me, and they aren't actually helping me know if this feature does what I want or if I should just manually produce a new encode myself.

 

I can give you an example. Let's say I pre-transcode a 12Mbit 1080P into a 4Mbit 720P. But for whatever reason, the DTS soundtrack is left in place. A player client comes along and says it needs AAC, necessitating an audio transcode to AAC. I'm trying to find out if that kind of thing will happen, or if the convert goes a little more lowest common denominator and just produced an AAC audio track as part of the video transcode, to help it fit the 4Mbit allocation or not. That's even a fair question to ask too, if you put the setting at 4Mbit, is that for just the video stream, or does it include the audio stream? Even a lossy 6 channel AC3 track is a significan't % of a 4Mbit stream, let alone a DTS track which tend to be 1.5Mbit. Or is it effectively producing a 5.5Mbit ABR stream with a ~4Mbit video stream, but an intact 1.5Mbit DTS stream. That's the kind of thing I'm trying to understand.

 

But I've realized the best option appears for me to just produce a re-encode myself and drop it in with the original and hope the server selects that one.

Thanks

Carlo
Posted (edited)

I didn't give you a specific answer because I can't.  A user has the ability to select different video resolution and bitrate on the fly at any time.  They can also select a specific file to play as well if they want.  It's all in how YOU set things up.

 

In your situation as I said the thing to do is look at your logs or console and see WHY the files are being transcoded.  Once you know the reason, then you'll know or we can help you to understand what convert or custom setting is going to be best for you.

 

I personally like the TV not mobile setting.  I'd don't care about the container, want to keep 3+ channel audio but reduce the video to 4K ish.  This way the server can still change the container or audio if needed but it's a super light CPU process unlike converting video.  It's a personal thing.

 

What is easy enough to do is just convert a couple of files trying the TV mode first and see if this solves your transcode problem.  From the sound of what you're saying it should.

Edited by cayars
Q-Droid
Posted

Sorry if I sound frustrated but I already went to a bunch of effort detailing the question which was _literally_ asking if the convert features on the server work with the profiles on the clients. Literally asking the question if the encode settings of the server are aligned to the client well.

 

If you want the exact details of how the server checks and matches the available media to the client "profile" to determine which source to use and what to transcode then you'll need the devs to answer that.

 

From a practical point of view, unless you want to pre-convert for every possible client that might stream from your server then it's best to go with the lowest common denominator and deviate from that for a few exceptions. Otherwise you're looking at a pretty big matrix of client and media combos along with a number of converted versions to match.

 

In my experience the given or defined bitrate, and limits of, is the sum of audio and video streams served.  Not the sum of all streams in the container.

  • Like 1

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...