Jump to content

Linux Setup


Luke

Recommended Posts

Intel Dual Core Atom D2550, 4 gig ram

64 gig SSD holding the boot drive

12 TB of data storage

running 64 bit Fedora 19/Amahi Home Server.

For file sharing, I run Samba.

Performance wise, I'd call it adequate. Can't transcode very well.

 

I'd consider a small boot SSD, otherwise your hardware is fine.

Amahi Home Server is nice if you want an easy to setup Linux server but getting the required version of mono is a PITA.  The latest version of Ubuntu is easier to get mono.

 

Luke, Is mono 3.4 required or is the version in Ubuntu 14.04 adequate? 

 

I run mono 3.4.

 

yea 3.4 is needed, but the docker installation will take care of that.

Link to comment
Share on other sites

TrainAss

Intel Dual Core Atom D2550, 4 gig ram

64 gig SSD holding the boot drive

12 TB of data storage

running 64 bit Fedora 19/Amahi Home Server.

For file sharing, I run Samba.

Performance wise, I'd call it adequate. Can't transcode very well.

 

I'd consider a small boot SSD, otherwise your hardware is fine.

Amahi Home Server is nice if you want an easy to setup Linux server but getting the required version of mono is a PITA.  The latest version of Ubuntu is easier to get mono.

 

Luke, Is mono 3.4 required or is the version in Ubuntu 14.04 adequate? 

 

I run mono 3.4.

I run in to the same issue with transcoding. My primary HTPC has no issues as it takes care of it's own, but any Android devices or web clients over the internet struggle a bit. I end up using MXPlayer on my phone and tablet and let it do the work. Unfortunately due to space constraints in the chassis I'm stuck with 1 HDD. I've been debating upgrading/replacing it with a SSD as all my MBServer has on it is the OS and MBServer. I have a separate file server for my media.

Link to comment
Share on other sites

it looks like you're missing libgdi or don't have the right versionn.

I compiled libgdiplus from git (url in first post)

Link to comment
Share on other sites

TrainAss

Please add to first post that for Ubuntu 14.04 lts all you need to do is

 

sudo apt-get install mono-complete
Then unzip and run MB3 server.

 

I just spent several hours compiling and ending up with a none working install, purged everything and installed the normal ubuntu way and I had a working system at once.

Awesome. I'm setting up an Ubuntu 14.04 lts server (vm) now to test. This will make things easier.

 

Sent from my HTC One_M8 using Tapatalk

  • Like 1
Link to comment
Share on other sites

we would like to have a built-in migration process in the server. until then, windows to windows migrations can be hacked together although we don't offer much support. windows to linux though i'm sure will present even more issues. so until there's something built-in, a clean install is always recommended.

Link to comment
Share on other sites

PhAzE

I doubt that you would see improved transcoding.  While Headless Linux is much lighterweight, I think that for transcoding you are just CPU bound

Agreed, transcoding isn't so much ram specific as it is CPU intensive.  You may see a slight improvement if you have faster hard drives where the transcoded file is written to, but if that's only if your CPU is working faster than the hard drive can write. RAM is mostly irrelevant as its only temp storage until the file is written to the temp directory on the hard drive so RAM won't likely fill up completely any ways.

 

Im running it on an old Intel Dual Core 3.0 ghz and have no issues however, even with 1080p transcoding.

Link to comment
Share on other sites

PhAzE

Luke, i forgot to ask, is there a way for me to get the current version from the program via command line?  THe plugin needs to display this information and uses it to compare the new released version online so it knows an update is ready to download.

Link to comment
Share on other sites

PhAzE

Can I also request when posting the Linux ZIP file, to include the version number in the file name?

Link to comment
Share on other sites

you mean like a command to not start the server but instead just print information?

Link to comment
Share on other sites

thefirstofthe300

Can I also request when posting the Linux ZIP file, to include the version number in the file name?

I would say that this is a must. Along with possibly storing the old version for several days. This would easily allow me to maintain my package without an update IMMEDIATELY breaking my package in the aur.
Link to comment
Share on other sites

PhAzE

you mean like a command to not start the server but instead just print information?

Yes exactly.  I can use that via my plugin to display the current version installed, and when you have the zip hosted in a final location, it will compare the current version with the hosted one to let the user know an update is avialable via the plugin gui (one button update for the end user).

 

The plugin is now updated and ready, It just needs the version info and download location (with MD5 hash). I've been getting requests on the Unraid forums for this, so it's getting to be in demand already. :)

Edited by PhAzE
Link to comment
Share on other sites

PhAzE

I'm noticing on the 64 bit version of Unraid, MB3 is still trying to find libgdiplus.so in the /usr/lib folder, but on 64bit OS its located under /usr/lib64. I think its a similar issue that sqlite3 was having, which I negated in my script by setting up a symlink to the proper location.  

 

Is there a way to force it to look in the lib64 folder instead?  Using an LD_LIBRARY_PATH adding in that folder doesn't seem to help. Otherwise I'll have to setup another symlink for this.  

Edited by PhAzE
Link to comment
Share on other sites

Todays version seems to be working much better. Although I notice an error in log when skipping forward in a transcoded stream (webui)

 

I'm not running Docker.

 

 

2014-07-09 18:35:13.3862 Info - App: /home/hts/MB3/ProgramData-Server/ffmpeg/20140505/ffmpeg -ss 00:15:01.629 -fflags +genpts -i file:"/mnt/NTFS/DVR/Top Gear_ Top Gear - Bolivia spesial!/Top Gear_ Top Gear - Bolivia spesial!.2014-07-08.19-55.ts" -map 0:0 -map 0:1 -map -0:s -vcodec libvpx -force_key_frames expr:gte(t,n_forced*5) -vf "scale=min(iw\,1280):trunc(ow/dar/2)*2" -speed 16 -quality good -profile:v 2 -slices 8 -crf 12 -maxrate:v 9872000 -bufsize:v (9872000*2) -b:v 9872000 -r 23.97602 -vsync vfr -map_metadata -1 -threads 2 -acodec libvorbis -ac 2 -ab 128000 -af "aresample=async=1" -y "/home/hts/MB3/ProgramData-Server/transcoding-temp/361f3b03db5d775f259102e5eb5b75be.webm"
2014-07-09 18:35:14.4587 Info - Trakt: Playback Started
2014-07-09 18:35:51.8933 Info - App: Killing ffmpeg process for /home/hts/MB3/ProgramData-Server/transcoding-temp/361f3b03db5d775f259102e5eb5b75be.webm
2014-07-09 18:35:51.9378 Info - App: Deleting partial stream file(s) /home/hts/MB3/ProgramData-Server/transcoding-temp/361f3b03db5d775f259102e5eb5b75be.webm
2014-07-09 18:35:51.9404 Error - App: Error streaming media. The client has most likely disconnected or transcoding has failed.
2014-07-09 18:35:51.9404 Info - App: FFMpeg exited with code 0
2014-07-09 18:35:51.9466 Error - HttpResponseExtensions: Error in HttpListenerResponseWrapper: Write failure
        Write failure
        System.IO.IOException
          at System.Net.Sockets.NetworkStream.Write (System.Byte[] buffer, Int32 offset, Int32 size) [0x00000] in <filename unknown>:0
          at System.Net.ResponseStream.InternalWrite (System.Byte[] buffer, Int32 offset, Int32 count) [0x00000] in <filename unknown>:0
          at System.Net.ResponseStream.Close () [0x00000] in <filename unknown>:0
          at ServiceStack.HttpResponseExtensions.CloseOutputStream (System.Net.HttpListenerResponse response) [0x00000] in <filename unknown>:0
        InnerException: System.Net.Sockets.SocketException
        The socket has been shut down
          at System.Net.Sockets.Socket.Send (System.Byte[] buf, Int32 offset, Int32 size, SocketFlags flags) [0x00000] in <filename unknown>:0
          at System.Net.Sockets.NetworkStream.Write (System.Byte[] buffer, Int32 offset, Int32 size) [0x00000] in <filename unknown>:0
 
2014-07-09 18:35:51.9475 Error - HttpAsyncTaskHandler: Error occured while Processing Request: Cannot be changed after headers are sent.
        Cannot be changed after headers are sent.
        System.InvalidOperationException
          at System.Net.HttpListenerResponse.set_ContentType (System.String value) [0x00000] in <filename unknown>:0
          at ServiceStack.Host.HttpListener.ListenerResponse.set_ContentType (System.String value) [0x00000] in <filename unknown>:0
          at ServiceStack.HttpResponseExtensionsInternal.WriteErrorToResponse (IResponse httpRes, IRequest httpReq, System.String contentType, System.String operationName, System.String errorMessage, System.Exception ex, Int32 statusCode) [0x00000] in <filename unknown>:0
          at ServiceStack.ServiceStackHost.OnUncaughtException (IRequest httpReq, IResponse httpRes, System.String operationName, System.Exception ex) [0x00000] in <filename unknown>:0
          at ServiceStack.HostContext.RaiseUncaughtException (IRequest httpReq, IResponse httpRes, System.String operationName, System.Exception ex) [0x00000] in <filename unknown>:0
          at ServiceStack.HttpResponseExtensionsInternal.WriteToResponse (IResponse response, System.Object result, ServiceStack.Web.ResponseSerializerDelegate defaultAction, IRequest request, System.Byte[] bodyPrefix, System.Byte[] bodySuffix) [0x00000] in <filename unknown>:0
          at ServiceStack.HttpResponseExtensionsInternal.WriteToResponse (IResponse httpRes, IRequest httpReq, System.Object result, System.Byte[] bodyPrefix, System.Byte[] bodySuffix) [0x00000] in <filename unknown>:0
          at ServiceStack.HttpResponseExtensionsInternal.WriteToResponse (IResponse httpRes, IRequest httpReq, System.Object result) [0x00000] in <filename unknown>:0
          at ServiceStack.Host.RestHandler+<>c__DisplayClass5.<ProcessRequestAsync>b__0 (System.Object response) [0x00000] in <filename unknown>:0
          at ServiceStack.Host.Handlers.ServiceStackHandlerBase.HandleResponse (System.Object response, System.Func`2 callback, System.Func`2 errorCallback) [0x00000] in <filename unknown>:0
 
2014-07-09 18:35:52.0493 Info - App: /home/hts/MB3/ProgramData-Server/ffmpeg/20140505/ffmpeg -ss 01:11:18.477 -fflags +genpts -i file:"/mnt/NTFS/DVR/Top Gear_ Top Gear - Bolivia spesial!/Top Gear_ Top Gear - Bolivia spesial!.2014-07-08.19-55.ts" -map 0:0 -map 0:1 -map -0:s -vcodec libvpx -force_key_frames expr:gte(t,n_forced*5) -vf "scale=min(iw\,1280):trunc(ow/dar/2)*2" -speed 16 -quality good -profile:v 2 -slices 8 -crf 12 -maxrate:v 9872000 -bufsize:v (9872000*2) -b:v 9872000 -r 23.97602 -vsync vfr -map_metadata -1 -threads 2 -acodec libvorbis -ac 2 -ab 128000 -af "aresample=async=1" -y "/home/hts/MB3/ProgramData-Server/transcoding-temp/c42b2f07ef52a4f77c9ca39037ac6d04.webm"
Link to comment
Share on other sites

I've updated the first post with information about the Docker release. For linux that should be the preferred method now as it's much easier.

Link to comment
Share on other sites

TrainAss

I'm giving Docker a try. I'm getting this

 

mbserver@Linux-MBServer:~$ rd MediaBrowser/Docker
rd: command not found
mbserver@Linux-MBServer:~$ docker build --rm=true -t mbserver .
2014/07/09 11:20:02 no Dockerfile found in .

 

 

When I try and build from the Docker file.

Link to comment
Share on other sites

I'm giving Docker a try. I'm getting this

 

 

When I try and build from the Docker file.

 

what docker file is that from?

Link to comment
Share on other sites

Do you think when you have the zip hosted on the web site that you will have two versions? Master and beta? If so, I'll need to update my plugin to allow download of either for the end user to choose.

 

probably not for a while i would say. efforts are currently centered on as easy setup as possible, so having two release lines isn't important right now.

Link to comment
Share on other sites

TrainAss

Forgive my ignorance Luke but what am I looking for exactly? I've read the first post multiple times and don't see anything pertaining to an access denied message or the fact that "rd" is not found. Even googling for the rd command comes up with either articles about rc.d or how to delete files and folders.

 

Maybe the Docker method isn't for me... I had it running through mono, but had hoped that Docker would be easier.

Link to comment
Share on other sites

PhAzE

Do you think when you have the zip hosted on the web site that you will have two versions? Master and beta? If so, I'll need to update my plugin to allow download of either for the end user to choose.

Link to comment
Share on other sites

hurricanehrndz

I'm giving Docker a try. I'm getting this

 

 

When I try and build from the Docker file.

You don't need to build. The build information is just there as information only.

Link to comment
Share on other sites

TrainAss

Again build information is there for info only. You only need to have docker installed and issue the command with replacing the appropriate paths.

I see... Thanks. I'll try again.

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