Jump to content

Recommended Posts

Posted

That would certainly work. Has there been much appetite for that sort of thing from the people building in Linux distros with their own ffmpeg?

 

 

Sent from my iPhone using Tapatalk

Posted

yea it's been mentioned before. it's not a problem.

Posted

You could also default to having it look for ffmpeg in the current PATH, and only download if it is not found.

 

I imagine the command line params would overwrite both of the above options.

 

 

Sent from my iPhone using Tapatalk

Posted

I've added support for command line params

 

-ffmpeg "path"

-ffprobe "path"

 

i can later look at finding them with the PATH variable, but that should get you going for now

Posted

Awesome thanks - will try tonight.

 

On a more basic front, what is the difference between the first build, and then the mkbundle build? Is it ok that I skip the second?

 

 

Sent from my iPhone using Tapatalk

Posted

yea i think we're going to deprecate the mkbundle. for a while we were pursuing bundling mono itself but we've dropped that in recent months

Posted

Ah, gotcha.

 

Lastly, I see you have version numbers in the software... Any chance they could be tagged in the git repository. This would help my port as it needs to be for a snapshot in time, and then I can choose to wait before upgrading to the next release rather than every commit.

 

 

Sent from my iPhone using Tapatalk

Posted

yes going forward we'll be doing that.

Posted

Good news... I am now able to at least run mediabrowser on FreeBSD now without it crashing!

It appears to be scanning my media and adding it to its library ok.

But when I browse the library in Google Chrome on my Macbook the images don't show up (they do in my iphone MB app).

DLNA is not working.

Streaming a movie to my iPhone MB app doesn't play at all (just waits as if buffering) and Google chrome on my macbook plays the video but no sound.

 

Mediabrowser server log attempt #1

Mediabrowser transcode log attempt #1

Mediabrowser server log attempt #2

Mediabrowser transcode log attempt #2

Mediabrowser server log attempt #3

Mediabrowser transcode log attempt #3

Posted

If it helps troubleshoot the DLNA issue, I was running MediaBrowser as root in a FreeBSD jail with IP address 192.168.1.99/24

Posted

Also your ffmpeg build is missing libmp3lame.

Posted

fyi, i will update the ffmpeg downloading to support bsd with the linux build. so you can use that for testing if you like.

Posted

@@woodsb02, please try the following:

- go into your mb3 directory

- you should find the following two files there: Imazen.WebP.dll.config and System.Data.SQLite.dll.config

- in both files you'll find lines starting with <dllmap that map to the correct native libs to use

- in both files replace os="linux" with os="linux,freebsd"

 

This _should_ help with the image loading under chrome and possibly also with the dlna problems.

I don't have a freebsd system available to test so maybe thats not completely it.

Posted

Luke: not sure that will work (may require Linux binary compatibility support which is definitely not preferred). Would be better to use an ffmpeg built for FreeBSD

Posted (edited)

Luke: libmp3lame is disabled by default in the ffmpeg FreeBSD port.

Is there anyway to detect which codecs are available in ffmpeg and choose a different format to encode to?

Edited by woodsb02
Posted

well it's not that simple. if a client says that it needs mp3 we can't just give it aac. i think there are alternative mp3 libraries for ffmpeg though

Posted

also if linux compatibility mode is an issue, the same might apply to our libwebp build. if you build that for freebsd i can help you with it.

Posted

@@woodsb02, please try the following:

- go into your mb3 directory

- you should find the following two files there: Imazen.WebP.dll.config and System.Data.SQLite.dll.config

- in both files you'll find lines starting with <dllmap that map to the correct native libs to use

- in both files replace os="linux" with os="linux,freebsd"

 

This _should_ help with the image loading under chrome and possibly also with the dlna problems.

I don't have a freebsd system available to test so maybe thats not completely it.

 

That didn't work... made the server crash on startup.

Log here: http://slexy.org/view/s23nY0JQGS

 

Am I correct in saying that the change will cause the server to use the precompiled Linux binary ./sqlite3/linux/lib64/libsqlite3.so.0.8.6?

 

By default, FreeBSD does not have binary compatibility with Linux. It can be enabled, but it is a bit of a hack. Given that sqlite (like ffmpeg) is available natively, is it possible to use the sqlite already available on the system (installed from FreeBSD ports)?

 

Which other precompiled binaries are used that will come up against this also?

Posted

yes the command line override still applies for ffmpeg.

 

i'll remove the change that was made.

 

if you build libwebp for freebsd and send me the output, i can include that to make things easier.

Posted

ok. grab the new code. i've removed the bsd assembly mapping.

Posted

This is effectively a difference in the standard method of deploying third party software on the different operating systems.

Windows and Mac typically bundle all required libraries into the pre-compiled installation (be it through an app store or via the user going to the software's website).

In linux distributions and the BSDs, each piece of software typically share the same installed libraries, with the software being built from source code by the operating system developers and distributed as binaries by the operating system.

 

Obviously mediabrowser has initially been developed with Windows and Mac in mind, and therefore adopted the approach to include precompiled binaries for each library required. This same approach has been adopted when expanding to Linux.... but would it be possible to add the option to use the system libraries (which can then be added as "dependencies" in the operating system port)?

Posted

The issue I have is that FreeBSD 8, 9 and 10 are all still supported, but don't necessarily have binary compatibility with each other, no with OpenBSD or NetBSD.

 

I really see the utilisation of the system libraries as a barrier for entry to the BSDs (and therefore FreeNAS).

 

Yes, we could use a precompiled binary for each system... but what happens if a security flaw is found in them.... how quickly will we then bring the fixed precompiled binary across to mediabrowser?

Posted

Sorry, I misunderstood. I thought mediabrowser would not fallback to using the preinstalled system libraries.

I now realise it will (I just manually installed webp on my server system and now I can stream to Google Chrome on my Macbook).

 

So... getting there... are there any other binaries required?

 

Thumbnail images still aren't showing consistently when browsing the media (for whatever reason some do) and DLNA is still not working...

Posted

For the DLNA, it looks like the code is having difficulty getting the IP address of the network interface.

 

In the file MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs the "localIp" variable is set by network.GetIPProperties().UnicastAddresses... but I wonder if it could be returning null and therefore the variable is not initialised?

var localIp = network.GetIPProperties().UnicastAddresses
                    .Where(i => i.Address.AddressFamily == AddressFamily.InterNetwork)
                    .Select(i => i.Address)
                    .FirstOrDefault();

                if (localIp != null)
                {
                    try
                    {
                        CreateListener(localIp, ipV4.Index);
                    }
                    catch (Exception e)
                    {
                        _logger.ErrorException("Failed to Initilize Socket", e);
                    }
                }
2014-09-15 22:27:13.9829 Info - Dlna: SSDP service started
2014-09-15 22:27:14.0946 Error - Dlna: Error sending Datagram to 239.255.255.250:1900 from 6.7.6.0:0: NOTIFY * HTTP/1.1
. HOST: 239.255.255.250:1900
. CACHE-CONTROL: max-age = 600
. LOCATION: http://6.7.6.0:8096/mediabrowser/dlna/3a16e916bbfcee4dfcc63c53e4ba8736/description.xml
. SERVER: Unix64/9.1 UPnP/1.0 DLNADOC/1.5 MediaBrowser/3.0.5371.39012
. NTS: ssdp:alive
. NT: upnp:rootdevice
. USN: uuid:3a16e916bbfcee4dfcc63c53e4ba8736::upnp:rootdevice
.
.
        The requested address is not valid in this context
        System.Net.Sockets.SocketException
          at System.Net.Sockets.Socket.Bind (System.Net.EndPoint local_end) [0x00000] in <filename unknown>:0
          at MediaBrowser.Dlna.Ssdp.Datagram.Send () [0x00000] in <filename unknown>:0
Posted

I added the following text to MediaBrowser.Dlna/Main/DlnaEntryPoint.cs:

private void RegisterServerEndpoints()
        {
            foreach (var address in _network.GetLocalIpAddresses())
            {
                    _logger.Error("RegisterNotification for ip: {0}", address); // NEW LINE

Then my log shows this:

2014-09-16 22:57:53.1506 Error - Dlna: RegisterNotification for ip: 0.0.0.0
2014-09-16 22:57:53.1828 Error - Dlna: RegisterNotification for ip: 6.7.6.0
 
So my take is that the DLNA server tries to send out a upnp multicast asking for subscribers, with responses to goto the above ip addresses.
Well the server successfully binds to 0.0.0.0 but responses never make it back since that ip address is too broad... and the server is giving me the earlier errors as it fails to bind to ip address 6.7.6.0.
 
The question is.... why are these the 2 ip addresses returned from GetLocalIpAddresses instead of my actual ip addresses 192.168.1.99 and 127.0.0.1?
Guest
This topic is now closed to further replies.
×
×
  • Create New...