Jump to content

Really want to come back from PLEX - transcoder?


rtech73

Recommended Posts

I was a long time MediaBrowser user, when my primary UI was Windows Media Center.   When it became clear that MC was a dead platform I searched for something else.  PLEX was my choice, as it has clients for all my devices.   At this point, since i have left Google TV behind, MB has clients for all the devices that are in my household.   So, after taking a peak at a couple of the MB clients, I am very interested in returning to the world of MB!

 

I tried the MB server/client and wanted to ask a couple of questions before I jump ship.

 

I had a few issues with some of my video files not playing through MB that did work through PLEX.   Is there a transcoder in the MB world that will help my myriad of video files play as seemlessly with MS as they do with PLEX?   If not, does anyone have any suggestions as to how I may update my collection so that this isn't as big a deal?   I have almost 2,000 movies, 10 years of home movies, and almost 200 TV series so something has to just work across the board.

 

Where are we in terms of internet connectivity?   Can I access my MB server remotely like I can with PLEX?   I like the fact that it just works.

 

Is there any plans for Xbox clients?   It's nice to have PLEX on my XBox!   But I have a Roku 3 on each of my primary TV's so that's not a deal breaker.

 

I think those (the first two) are the two big issues for me.   MB seems to have it right in terms of the look (the Roku app is MUCH more attractive than the PLEX alternative) and it finally has a handle on Movie extras.   I really want to move to MB, but I need to know that playing my videos is going to just work!

 

:-)

 

Thanks!

Edited by rtech73
Link to comment
Share on other sites

Thanks so much for this quick reply!  Based on this, I'm going to install the server and see how it goes, running along side my plex server!

 

My biggest concern really is the transcoder.    I have years of videos in different formats and extensions and I just need it to work.   :-)

Link to comment
Share on other sites

thefirstofthe300

The backend that MediaBrowser uses for transcoding is ffmpeg. You can take a look for yourself but if MediaBrowser can't handle a format it is a bug in the software as ffmpeg should be able to transcode just about any format you throw at it. :)

 

I have a number of differenct formats in my personal library and I have yet to run across a video file that MediaBrowser hasn't been able to handle.

Link to comment
Share on other sites

rtech73,

 

I'm a long time Plex user (same username on Plex forums).  I run 2 Plex servers and have an MB3 server in testing.  Both Plex and MB3 can transcode on the fly to various devices but sometimes take a different approach.  They each have advantages in their own right.

 

Plex uses a modified version of ffmpeg as it's transcoder while MB3 uses ffmpeg (as is).  This means that with MB3 you can usually drop in or switch the version of ffmpeg being used (if there is a reason), but with Plex you can't do this. The main change that Plex did was to modify ffmpeg so that it's output is sent back via http to the Plex server while MB3 read the stdout and stderr directly from ffmpeg.  Just 2 different ways of getting the same info and it's a wash as to which way is better.

 

At present Plex can usually support more transcode streams than MB3.  This is because plex can start and stop the transcode being done (does it in chunks). In principal the Plex transcoder tries to stay ahead of where the user is but not too far ahead.  On the other hand MB3 starts a transcode and goes "balls to the walls" until it's finished.  So if you have multiple videos being streamed at the same time and they all need to transcode then you can probably get more streams with the Plex implementation currently since it's a bit more "intelligent".

 

Now before reading to much into the above.  The advantage of that "intelligence" may or may not make a difference for you. If you are sharing your server via the Internet with a lot of friend and family then yes it can make a difference.  If you are only "consuming" the videos in your own house and want to occasionaly use clients outside your house or only have a few friends or family using your system via the Internet then it probably won't make a big deal if you have an i5 or i7 processor since you are going to be able to handle 2-4 simultaneous transcodes minimum.

 

For reference I share with 40+ people and can have 6 to 10 connections needing transcoding during prime time (as well as direct play/stream sessions).  So I'm an "exception" that really pushes what both system are capable of doing.

 

I mentioned above they can take "a different approach".  So let me explain.  In plex EVERYTHING is done through the Plex server.  In MB3 some media streaming can be offloaded and not require the MB3 server to be involved on your local LAN.  As an example if you have an xBox One and use Plex, it will have to transcode on the fly the video for the Plex client using your CPU in the process.  If you have an Mp4 being sent to the xBox One Plex app it may or may not have to transcode to the xBox.  With MB3 you use the web browser or other client and "cast" this video to the xBox or any other DLNA client on your network.  If the file is in the correct format then chances are the MB3 server can direct the DLNA device to play the file from the native file source and not really be involved using ZERO CPU.

 

So as you can see there is no clear answer to your question as it depends on how you plan to use the media server.  If you KNOW you are going to be streaming to multiple people OVER THE INTERNET much of the time then Plex may be stronger but if most of your viewing will be in the house then MB3 is the stronger media server.  The lines are blurred and it's a "gray area" where one is better than the other purely based on streaming.  Only you can figure this out based on your own needs.

 

Plex has more clients available but many of them like PS4 and xBox only do the bare minimum so they are "light weight" clients. So don't obsess over the number of clients each has.  If either has the clients you personally need then you are set.  The way I look at it is that both support Roku3 and they are only $90-$100 each so if I want to setup a friend or family and I'm giving them FREE access to my library then they have a choice of buying a Roku3 and attaching it to their TV or they can use a computer and HDMI cable.  Besides the one time cost for them they are getting access for "free" so I don't worry about "shit from people" :)  Of course MB3 supports more than just web and Roku but I'm making a point.

 

Plex requires a client on each device in order to use it.  MB3 on the other hand can read your local LAN's devices and UPnP/DLNA devices can be handled differently than Plex.  With MB3 you can "cast" to more devices than with Plex.  So you can bring up a web browser or other MB3 client on your network and be able to send a video to a DLNA device that doesn't have "native" client.  This is powerful stuff and allows you to make use of many older devices Plex can't touch and allows you to pickup the "newest fan-dangled device" and be able to use MB3 to send video to it.

 

Now besides the transcoding and clients we briefly covered MB3 is superior in almost every way.  If you would like I can elaborate further but for now I'll leave it at that since this mostly touched on the questions you asked.

 

There are lots of people in these forums that have switched from Plex to MB3 and there are people running both systems.  Why don't you tell us what devices you currently have and plan to use.  Also let us know how you plan to use your media server. IE ONLY for home use, Mostly home use, going to be shared with 1 or 2 friends/family, going to be sharing with a lots of friends taking on Netflix. :)

 

If you give us more info we can help you by giving you info more that directly applies to what you want to accomplish without any marketing "spin".

 

I hope this helped clear some things up.

 

Carlo

Edited by cayars
  • Like 4
Link to comment
Share on other sites

Baenwort

Something that I haven't been able to duplicate with my MB3 server that can be done with a Plex Server is having the server upconvert during the transcoding process. I'd really like to move the work to my server, which is plugged in and has a lot more power availible (and that I can increase if needed with a drop in CPU), instead of having the client device do the upcovertion work.  Several of the client devices that I use aren't powerful enough to upconvert in real time (AMD C-60 and E-300/350 laptops) but can handle displaying HD content if it is easily digestable. ;) 

 

As I move to 4K devices the power consumed to upscale will increase and I'd like to consume that juice on my plugged in server, not on my limited run time clients, even if the client can handle the upconversion.

Link to comment
Share on other sites

Thanks for very thorough explanation @@cayars

 

I too am a very recent convert from Plex, having been a devout Plex user for a number of years (and PlexPass holder since its inception). 

 

One of the things I noticed immediately, and posted in a separate thread ( http://mediabrowser.tv/community/index.php?/topic/18425-mb-server-osx-extreme-cpu-load-while-transcoding/ ) was that the transcoding with MB3 is a LOT heavier on the CPU than with Plex. I have a dedicated Mac Mini with plenty of CPU, but for the first time in history it goes warm just from one client watching.

Your post explains why.

 

My question to you, as a follow-up to your excellent post, is does it really have to be an either/or between present-day MB3 and Plex approach, or would it be possible for MB3 to gain some of the advantages from Plex? I have 5-6 family members outside our household who use our library rather extensively, and while this was never a problem with Plex, I worry how it will be handled should I migrate fully to MB3. I also noticed there are parallel tracks working on hardware accelerated transcoding and also someone considering Gstreamer vs ffmpeg. Would either help? 

 

Do you know if these efforts are, could, or should be coordinated?

 

Thanks in advance - I believe this might be a key success factor to MB3 uptake, so I'm delighted to see it's getting so much attention!

 

 -Florux

Link to comment
Share on other sites

thefirstofthe300

Just so I get this straight, I thought that MB had implemented transcode throttling a couple of versions back. @@Luke, could you clear this up for me (and everyone else :) )

Link to comment
Share on other sites

 

No, unfortunately, that feature had to be disabled later after some issues were uncovered.  It was working nicely for the dev and beta groups, but then once it got into the wild we ran into some problems. We will be working to restore it soon.

 
Link to comment
Share on other sites

Baenwort, on 22 Feb 2015 - 12:26 PM, said:

Something that I haven't been able to duplicate with my MB3 server that can be done with a Plex Server is having the server upconvert during the transcoding process. I'd really like to move the work to my server, which is plugged in and has a lot more power availible (and that I can increase if needed with a drop in CPU), instead of having the client device do the upcovertion work.  Several of the client devices that I use aren't powerful enough to upconvert in real time (AMD C-60 and E-300/350 laptops) but can handle displaying HD content if it is easily digestable. ;)

 

As I move to 4K devices the power consumed to upscale will increase and I'd like to consume that juice on my plugged in server, not on my limited run time clients, even if the client can handle the upconversion.

 

Carlo:

Could you explain more what you mean by "upconvert"?  If you are talking about taking a 720p and ending up with a 1080p then I can assure you Plex does not do this.  You however might get something like this from your TV because Plex touched the file in such a way that your TV was able to upconvert it.  This is interesting and if you like PM me and we can take this offline.  I'll see if I can identify how/why this happened and see if we can make use of this.

 

Florux, on 22 Feb 2015 - 4:21 PM, said:

Thanks for very thorough explanation @@cayars

 

I too am a very recent convert from Plex, having been a devout Plex user for a number of years (and PlexPass holder since its inception). 

 

One of the things I noticed immediately, and posted in a separate thread ( http://mediabrowser.tv/community/index.php?/topic/18425-mb-server-osx-extreme-cpu-load-while-transcoding/ ) was that the transcoding with MB3 is a LOT heavier on the CPU than with Plex. I have a dedicated Mac Mini with plenty of CPU, but for the first time in history it goes warm just from one client watching.

Your post explains why.

 

My question to you, as a follow-up to your excellent post, is does it really have to be an either/or between present-day MB3 and Plex approach, or would it be possible for MB3 to gain some of the advantages from Plex? I have 5-6 family members outside our household who use our library rather extensively, and while this was never a problem with Plex, I worry how it will be handled should I migrate fully to MB3. I also noticed there are parallel tracks working on hardware accelerated transcoding and also someone considering Gstreamer vs ffmpeg. Would either help? 

 

Do you know if these efforts are, could, or should be coordinated?

 

Thanks in advance - I believe this might be a key success factor to MB3 uptake, so I'm delighted to see it's getting so much attention!

 

Carlo:

The transcoding is the biggest issue for me at the moment also.  There are many ways to "skin the cat" <-- poor animal

I'm playing and working with others on a number of fronts.  For example a number of members are exploring GPU use for transcoding.  So if you have a CPU that supports Intel's QuickSync or Nvidia's NVENC then we could technically offload some of this processing to the GPU. We are in the early stages of this.  ffmpeg itself does not have GPU assisted transcoding built in but a few people have been able to add it.  Unfortunately it's not faster right now and doesn't use the GPU enough to make a difference.  It's a work in progress and will come in time.

 

There are a couple of other programs that are 2 to 3 times faster and do work but we would need to change the actual MB3 code to use them.  This is a possibility, but for now is on hold due to other factors.

 

-Florux

I wouldn't say it's "heavier" per say as they both have to transcode the whole file if you watch the whole movie.  Plex will keep using your CPU the whole film while MB3 could be done half way through the film.  It's just a different way of processing the movie/show.  However, I do favor the "plex style" way of doing it in "chunks" which is why I'm hesitant to move forware right now with a 3rd party GPU thing mentioned above as I think we should/could rework the internal engine first to work a bit more like Plex does

 

Ebr quotes Luke on something where they disabled it

In a little bit I'll take a look at code. Talk to Luke and Ebr and see if I can come up to speed on what Luke/Ebr did and see if I can help.

 

Keep in mind, while I'm a good programmer I'm both new to MB3 and really haven't spent any time with the code yet so I'll need time to come up to speed.

 

Other Ideas:

There is yet other ways to alleviate CPU resources on the MB3 server when transcoding.  I just finished a working prototype today that allows transcoding to be offloaded to a second computer. At this point it is "dumb" and does nothing but allow a 2nd computer to do ALL the transcoding or BIF (Roku trick play) generation.  Basically any process that calls the ffmpeg.exe program gets handed off to a 2nd computer to do the work.

 

I have this working and have not been able to break it.

 

I just got this working today and haven't tried to make it smart but will.  Over time as I get time to play with this I'll set it up so the MB3 server will be able to monitor other computer on your LAN that run a "transcode client".  It will be able to check/watch CPU use and hand off transcode jobs to these other computers based on CPU use.  So if you have a fast LAN and have the computer mapped to the same drive letters then by adding a 2nd computer of the same strength you basically "double" the amount of transcode streams you can handle.  Got 4 computers then you can handle almost 4 times the transcodes.

 

In the future I can see the MB3 server being able to "wake up" computers running on the lan when it's CPU use is getting beyond a certain point and then being able to share transcode jobs with these other computers.  Once we have GPU transcoding working then you'll be able to use GPU on the MB3 server or on any computer on the LAN.

 

So we'll eventually have both distributed encoding combined with GPU assisted transcoding.  This could easily give us a 10 fold increase in the number of transcode/bif generations going on at any one time assuming you have the network and disc bandwidth to support it.  But basically we can shift the "Achilles Heel" of CPU processing to something else to allow us to scale much bigger than we can today.

 

Carlo

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

Not to "hog" this thread or change the subject but I've also mentioned in the past I have a set of python scripts that use ffmpeg to convert new media to a "central" format that hopefully won't need transcoding for use inside your household LAN.  I'll be re-writing this to use the "distributed ffmpeg.exe" thing mentioned above.  So in the end you'll be able to put new media in a folder that MB3 will process for you (as it can already) but will also be able to remux or transcode to MP4 for example and add AAC audio (if you wish) while pulling out audio tracks you don't use, or pull out subtitles to create SRT files for them.  It will be able to apply the "quick start" or "web optimize" to the files and these jobs can be set at low or medium priority.

 

So any realtime transcodes can get HIGH priority and maybe BIF (roku trickplay) can get low priority while new media gets medium priority.

All jobs would then make use of all CPU/GPU you allow it to use on your network.

 

That's what I envision and what I'm working on and most will not require any changes to the MB3 source code. :)

 

This could certainly open up some additional possibilities such as:

1 Running your MB3 server on a super energy efficient platform that isn't powerful enough to transcode more than 1 or 2 streams

2 Being able to wake up other computers as needed and allow sleeping when not needed

 

If this distributed model works out then we may not want to "chunk" our transcodes because we can just process them as fast as possible and then go back to sleep.

So I won't play with the actual MB3 source or advise any changes until I see how much we actually gain from it if these other methods work well.

 

Carlo

Edited by cayars
  • Like 2
Link to comment
Share on other sites

Mr?  You talking to me or my dad? lol

 

Carlo is fine :)

 

I "owe" these scripts to a couple of other people who have asked for them.

 

These were originally done by someone else (escapes me who) and I modified them for my own use.  I'll see if I can find the original author to give credit (should be noted somewhere in the source) as well as put together some simple docs for how I use it.  I'll zip them up and post it within 24 to 48 hours for anyone to use.

 

But I will be rewriting these in C# at some point with additional functionality and of course the distributed functionality mentioned above.

 

Carlo

 

PS it goes without saying but test with "copies" of movies and not your only copy until you feel comfortable with the scripts.

Edited by cayars
  • 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...