1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Streambaby - new streaming application

Discussion in 'TiVo Home Media Features & TiVoToGo' started by kearygriffin, Jan 20, 2009.

  1. ke3ju

    ke3ju Ed Ludwig

    75
    13
    Jan 4, 2004
    Seminole, FL

    This didn't work for me. Using a TiVo Roamio OTA running Hydra I'm assuming (it's only three weeks old), it finds it listening...


    Initializing StreamBaby v0.54...
    02/16/18 13:37:48 StreamBabyMain: 130 STARTING StreamBaby v0.54...
    02/16/18 13:37:48 Listener: 125 added factory
    02/16/18 13:37:48 Main: 275 MDNS: http://10.110.17.68:7290/streambaby/
    02/16/18 13:37:48 Main: 276 streambaby ready & listening.
    02/16/18 13:37:53 TiVoListener: 149 jmDns found TiVo: Living Room, tsn: 846000190C2**** (edited)

    But no Streambaby shows up in Apps. Also, it does NOT show my TiVo Mini Vox boxes as listening, does it not work on them?
     
    Last edited: Feb 19, 2018
  2. wkearney99

    wkearney99 Bill Kearney

    1,947
    16
    Dec 5, 2003
    Bethesda,...
    Did you look at the .ini file and make sure it's bound to the local IP? It's customary when responding to indicate if advice worked or not.

    Streambaby is open source, it's all public. You do, of course, have to know to look and then know what you're looking for.

    streambaby / Code / [r179]

    The source commits show a user kearygriffin made some changes for address binding. But it's unclear where.

    The wrinkle with stuff like Tivo and Streambaby is their use of multicast DNS. Go back to your VPN sources and ask about things that use jmDNS and other multicast host discovery stuff. Multicast is a huge mystery to some folks and very easily misconfigured. But that IS something a VPN would need to know how to handle properly.

    I know how multicast works, and VPNs. I know better than to waste much time trying to force them to work together reliably and consistently. Me, I'd avoid trying to make one box do it all.

    But hey, what do I know, I'm just some guy that has a working streambaby setup and has tried to offer helpful advice.

    You've taken a tone here that sounds like you want to blame someone for this. And you've not indicated that you've followed recommended advice. This is all free software, and likewise the advice.
     
  3. vanclute

    vanclute Member

    213
    7
    Aug 3, 2003
    It's unfortunate that you're ascribing a specific tone of blame to my comments. Am I frustrated? Sure thing. I'm quite tech savvy, but not to the level of being able to read code and do anything useful with it (beyond PHP/HTML and a little JavaScript anyway). If I wasn't such an absolute massive fan of StreamBaby (which I constantly tout as *the absolute single best streaming solution anywhere, period, without exception* (far superior IMO to Plex, NetFlix, iTunes, Roku, and every other media streamer I've ever used or seen), I would likely just have shrugged my shoulders long ago and moved on. But I refuse to give up on SB because it is for me, simply the only thing that gives me what I'm looking for. But I'm not looking to blame anyone (beyond simply identifying where the issue I'm trying to solve exists... which I suppose is a form of blame but it's not personal blame, it's technical assignment of root cause).

    SB is nearly flawless for me with the exception of incorporating the VPN. The only other issue I ever have with it is the SB server just not getting picked up by the TiVo, and I have to re-acquire the IP on the TiVo again and the SB App usually comes back, though often it also requires a relaunch of SB itself. But that one I'm very used to and it has a fairly painless workaround. The VPN problem however I can't work around at all, hence my frustration.

    So, the reason I didn't comment on your suggestion to set the IP is because I already have done so from the beginning of using SB years ago. I use DHCP with static IP on my machine specifically to avoid any issues around IP assignment or finding the server on my network. The default streambaby.ini file has the IP set to my local IP (10.0.0.132) and the port is just at the standard default SB port. I assume that's what you mean when you say to make sure it's bound to the local IP, but if not then please elaborate.

    Viscosity has the ability to route any IP I want to any specific available network that I wish, but as I mentioned it's not working here. The developers of Viscosity suggested that SB might be directly binding to the primary interface, in which case that would be the VPN and would likely be bypassing the options to route the IP to the local network. I'm totally new to using a VPN and while I've been playing with LAN configurations since the 80s, this level of complexity is outside my usual scope. So here I am looking for advice from the only place I know of that ever discusses StreamBaby.

    I do appreciate your advice, it just hasn't yet pointed me in the right direction... but I'm nowhere near giving up.
     
  4. wkearney99

    wkearney99 Bill Kearney

    1,947
    16
    Dec 5, 2003
    Bethesda,...
    Ok, we're back on track then, good to know.

    Bound to the address via the IP was what I was advising. Since you're using 10. addresses, you're sure you've got all your subnet masks correct, yes? Both on this machine and the Tivo units? Any VLANs or other segregating factors involved with multicast? Any firewall on this box that might be overly restrictive WRT multicast?

    As for routing, it's not just the IP address of the machine itself, it's the multicast networks too. This is harder to explain, thus why I punted the question of multicast DNS support back to the VPN folks. It's more complicated than it ought to be and it's hidden more than it should be. But the whole dynamic host finding scheme that is mDNS is often a real pain in the ass to debug unless you get down to every last little detail of how packets are managed on your subnet. Throw a VPN into the mix and it goes downhill, fast. I'm not saying it can't be done, or that SB isn't doing it wrong... but that by the time you lash up all the config bits it'd have been easier to just not run SB on the same box as the routing VPN.
     
  5. vanclute

    vanclute Member

    213
    7
    Aug 3, 2003
    Everything on the whole LAN is on 10.0.0.x, that includes 2 WAPs, the primary cable modem itself, 4 TiVos, 4 Macs, an Apple TV, 2 Roku TVs, numerous game consoles, iPhones, iPads, Echo Dots, and undoubtedly other stuff I'm forgetting now. With the exception of this one VPN issue, everything works great from internet to (local) file sharing, printer sharing, screen sharing/VNC, facetime, skype, everything both wired and WiFi. No firewalls anywhere - I always disable them entirely inside the LAN. No VLANs at all.

    I actually had worked around this whole issue for a while by just running SB on my wife's machine instead, and mounting the media server's drive on her machine over the network. This works, but it means her machine has to stay on 100% of the time and can never sleep. That's the media server's job, so I would greatly prefer just running SB on that one machine since it's already intended for that 24/7 uptime functionality. If all else fails I'll just run it on my wife's mac as we have been, but this is one of those little itches that I really, *really* want to scratch. I know exactly zero about multicast, so don't have any idea where to even begin with that. It's starting to sound like this just might not be worth pursuing, but it would just give me great satisfaction to finally nail this sucker.
     
  6. wkearney99

    wkearney99 Bill Kearney

    1,947
    16
    Dec 5, 2003
    Bethesda,...
    Right, but what subnet mask are you using? /24 (255.255.255.0) or something else?

    I have my media on a NAS and serve up Streambaby from a PC that has some home automation stuff on it, along with a print spooler connection. It's a small Intel NUC and it's been a good lower power, low noise, small size, solution for this. It's got a small 32gb SSD in it, just enough to boot the OS and hold the various programs. All content goes over the gigE network (no wireless for any bulk media devices like Tivos).

    I hear you on eliminating that one last itch you can't reach. I've spent countless hours and bought many gizmos over the years trying to defeat similar puzzles (oh, don't get me started on HDMI and matrix switches). What's "supposed to" work just never freakin' does. And then once you do finally get it working, some other piece of puzzle gets upgraded and you're back to square one.

    Yes, I could rant....

    That was my point of mentioning separating the tasks. I've most recently moved to using a fanless mini-PC (Qotom) running pfSense as my home router and VPN gateway. It's soooo much smoother, faster and more reliable than various lash-ups I've had in the past. Best money spent is often on something that NAILS the coffin closed on the time-wasting shenanigans with half-assed PC setups. Bolt that sucker up on the basement wall and leave it alone, 24x7. Might be worth taking a look.

    Stop and consider just what would it take to rejigger things just enough to make them stable. In home automation circles we refer to this concept as part of the WAF (Wife Acceptance Factor). As in, when you rig things up you want to avoid it being too finicky for your spouse/wife/kids/family/guests to use on an unsupervised basis. Make any parts of it unstable or tricky to use and your WAF drops in to the gutter.

    Alright, enough out of me with the rants. I'm guessing your trouble spot lies in how SB and your VPN are handling the multicast bits SB wants to use. I know enough about VPNs and multicast to know that it's a trainwreck of unscratchable itches, especially without a VERY configurable network router and client OS features.

    Ask about multicast DNS on the VPN groups. See what comes up. Could be someone there with an "oh yea, you need to do x, y and z" revelation to share. That or a chorus of "abandon hope all ye who enter".
     
  7. vanclute

    vanclute Member

    213
    7
    Aug 3, 2003
    Ahhhh subnet MASK... sorry I totally missed that one word. Interestingly, my modem defaults to 255.255.255.0 but when I add an IP to the Viscosity routing, it defaults to 255.255.255.255 for the mask. I don't know enough about what exactly the subnet mask is to have been sure if that was OK or not, but I did try matching Viscosity to .0 instead of .255 and it didn't change anything.

    Good point about the WAF, and our current setup only barely passes... and if I'm brutally honest it really doesn't because when I'm not here and SB goes away for example, she never remembers how to go relaunch SB to get it back up. So while working around this issue isn't difficult, it's just not something that seems to "stick" with her. I would definitely prefer a one-stop bulletproof real solution. Networking is just not my area of real expertise, I've just been a user/consumer for many decades but never had the need or inclination to really understand what's under the hood. I'm the same way with cars... I'm a very good and advanced driver, but don't ask me anything whatsoever about what's going on inside the machine as I couldn't tell you.

    I'll ask about mDNS and see what I get... thanks for the pointer!
     
    wkearney99 likes this.
  8. wkearney99

    wkearney99 Bill Kearney

    1,947
    16
    Dec 5, 2003
    Bethesda,...
    Yep, all these little bits matter when multicast and routing comes into play. I, honestly, do not try and screw with it because it's so damned finicky and there's so few tools for debugging it. It's all geared for being dynamic, friendly and automagic. When things get complicated, even slightly, it's a clusterf*ck of time wasted trying to figure it out.

    As for subnet masks and routing, using a class A 10.0.0.0 network with a class C (255.255.255.0 aka /24) subnet is certainly usable, but it's uncommon. Most typically when you use a class C subnet you stick with using 192.168.x.x ranges. There are potential wrinkles when gizmos don't see "typical" subnet numbering. Adding multicast to it, well, the potential for complications starts going exponential.

    For driving, it's arguably VERY important for an effective driver to understand the hardware that's putting power to the road. How all those little bits mesh together can literally be felt while driving. Knowing what can or can't make the steering bump, the drivetrain slip, etc, can definitely aid in getting an ideal track setup. I suppose it's possible consider oneself 'advanced' without knowing this... but track times are going the be better when the driver understands the hardware... or pays a pit crew serious coin to act as 'interpreters'.

    The same sort of thing applies to networking. Firing up apps and browsers doesn't require much, but trying to lash together complex solutions involving VPNs requires a lot more. Either come to know the internals or pay someone to do it for you.

    I've had mixed success getting SB to "stay running" when it's launched as a console program. Running it as a service tends to be a little more reliable. And is easier to stop/start using scheduled cron tasks. It could definitely use some improvements on the set-and-forget front.
     
  9. vanclute

    vanclute Member

    213
    7
    Aug 3, 2003
    I'm just using what the modem came set to, and that's using 10.x.x.x and 255.255.255.0. Didn't think I could change that, I've had modems in the past that issued 192.168. IPs but Xfinity seems to like 10. for whatever reason. Is the subnet mask something I can arbitrarily change? And if something else would work better, what would that be?

    Good point on Cron. I've actually used iCal to shut down and relaunch SB every night for years, but it still isn't enough. All that really solved was the inevitable gigantic multi-tens-of-gigabytes log files when SB would crash. Relaunching would nuke and reset the log.
     
  10. vanclute

    vanclute Member

    213
    7
    Aug 3, 2003
    Incidentally on that note, I've never been very good with cron on Mac, it's always seemed slightly different from how I would use it on a Linux webserver. Do you know ow would one go about quitting & relaunching SB via Cron on a Mac?
     
  11. wkearney99

    wkearney99 Bill Kearney

    1,947
    16
    Dec 5, 2003
    Bethesda,...
    The simple answer is all devices an Ethernet network can talk to each other via hardware addresses (the Media Access Control address). But it's the use of TCP/IP addresses that segregate which ones get routed... and to where. A subnet mask is a filter, of sorts, that helps isolate the packets. The subnet helps the various devices understand which packets they should pay attention to handling. It also helps devices figure out where to broadcast. It's therefore important to have ALL of your devices on the network configured to use the SAME subnet mask. Otherwise how the decide to listen/transmit won't be handled properly. More or less.

    There's nothing magic about 10.0.0.0 addressing, but the pattern of the subnet DOES matter. Using a 255.255.255.0 subnet mask leaves the last octet of 255 addresses unmasked. This leaves addresses for up to 253 devices free in-between the router and the broadcast address. 192.168.x.x is designed to allow 253 devices on 255 subnets. 192.168.0.0 being one, 192.168.254.0 being at the other end. The 3rd octet defines the subnet, or 'group' of 255 addresses for the various devices. If, however, you have more than 253 devices then you run into problems.

    The solution is to step up from a Class C (192.168.x.x) subnet of 255 addresses to a Class B (172.16.x.x) with a mask of 255.255.0.0 would allow 65534 devices. Using a Class A network (10.x.x.x) with a mask of 255.0.0.0 would allow 16,777,214 (16 million) devices on it.

    As a side note, these are non-routed or private addresses. They're always hidden behind a network gateway (typically using NAT on your router). Often filtered by a firewall.

    Head hurt yet? Just wait until you try to learn how multicasting is supposed to work on all of these. Costco sells motrin in gallon bucket sizes for reasons like this.

    Where it gets even MORE complicated is dividing classes into subnets "in-between". I'd explain but it'd go WELL outside the scope of this thread.

    Search for more info online if you want to learn more about subnetting.

    But for your network at home, if you're on DHCP and you have under 253 different devices there's a lot of sense to using a 192.168.x.x subnet with a 255.255.255.0 subnet mask. I try to avoid using 192.168.1.0 and 192.168.0.0 because those are so popular that when you try using VPNs you run into potential network collisions. As in, your local network is 192.168.1.0 and you're making a VPN into another one also using the same 192.168.1.0 subnet.... Which won't work. Thus randomly choosing some other subnet helps narrow the likelihood of collision. 192.168.your-favorite-number.0, where your-favorite-number has to be in-between 0 and 254.

    Bear in mind that if you decide to make subnet numbering changes you have to start with your router and have a computer connected directly to it (not through any other intermediary network switches). Because you'll be pulling the rug out from under your devices when you change your router's config. And any devices you had set up with a static address will also have to be manually changed. But it's not the sort of thing you have to do with any kind of frequency, so the one-time labor is an acceptable hassle.

    So, why all this bother? Because some software is dumb about how it sees network classes. It sees a 192.168 address and assumes a /24 mask. Or sees a 10. and assumes a /8 mask. Thus using a matching class and subnet is just a way to help stupid software from making mistaken assumptions.

    You can keep using the 10.0.0.0 subnet with a 255.255.255.0 mask, and things "ought to" work. But if they don't and something defies debugging/troubleshooting then punting and using a normal 192.168.x.x/24 setup is a good fallback starting point.
     
  12. wkearney99

    wkearney99 Bill Kearney

    1,947
    16
    Dec 5, 2003
    Bethesda,...
    Can't help you there. I really dislike how Apple handles their products, developers and customers. So I don't put much effort into figuring out what non-standard and crippled approach they implement for their stuff. But if it works for you I'm not hear to talk you out of it.
     
  13. vanclute

    vanclute Member

    213
    7
    Aug 3, 2003
    Ah interesting, ok I didn't realize I could arbitrarily decide to use 192.168 instead of 10.0. Always assumed it was somehow tied to specific ISPs or something. And yes i can see software developers making assumptions about the type of subnet you're using... I've made my share of assumptions when coding PHP about how things "should" be and well, it always ends up biting you in the ass eventually. I might just try switching if I'm feeling adventurous and have at least a few spare hours one of these days. Thanks for the pointers!
     
  14. wkearney99

    wkearney99 Bill Kearney

    1,947
    16
    Dec 5, 2003
    Bethesda,...
    Nope, it's your internal network. You can use whatever your device allows. Most will come with something as their default, but most will allow you to change this. I say "most" because it would be very odd for them not to allow this. I'm guessing your ISP chose that default for 'reasons', among which was the potential for remote access/VPN collisions. Choosing 192.168.1.0 or 192.168.0.0 is a bad idea, if only because SO many things default to it. That pretty much guarantees collisions when VPNs are used.

    I just redid my whole internal network. I moved to a Qotom fanless mini-PC setup using pfSense for routing and firewall. I'm very pleased with it thus far. I did have to make a spreadsheet to list of all my current IP devices in preparation for creating DHCP leases for all of them. I prefer to keep devices on consistent IP addresses. If just to make it easier later to debug things when something's not working. I have wifi running from another router running as an access point. I don't use my ISP's router at all.
     
  15. vanclute

    vanclute Member

    213
    7
    Aug 3, 2003
    Got it. My modem is my primary router, so I let it issue IPs for everything else on the network, though some devices I set a static IP for (generally anything acting as a server, like running SB, Plex, FTP, etc.). Also iOS devices you could technically set a static IP for but I find they are much happier leaving them on DHCP.

    So basically I would go with something like 192.168.8.x for my network, that way it wouldn't/shouldn't collide with any VPN or other network I interface with... is that the basic gist?
     
  16. wkearney99

    wkearney99 Bill Kearney

    1,947
    16
    Dec 5, 2003
    Bethesda,...
    yes, 8, 23, 77, 189 or whatever for the 3rd octet. Then just make sure everything has the same gateway, subnet and DNS. Speaking of which, for proper internal resolution you should be using an internal DNS record for devices, not external. Your ISP router is probably running one, so use it's internal IP address for that.
     
  17. vanclute

    vanclute Member

    213
    7
    Aug 3, 2003
    OK you lost me on this one. Internal DNS? My modem sets the DNS automatically from the ISP, 75.75.75.75 and 75.75.76.76. There's no option to change it. Can you elaborate on this one?
     
  18. wkearney99

    wkearney99 Bill Kearney

    1,947
    16
    Dec 5, 2003
    Bethesda,...
    There's the address your router uses to find DNS records. Then there's the address your internal hosts use to find addresses. They're not necessarily the same, otherwise how would your internal machines look up addresses for other internal machines? Thus it's common for your ISP router to run a DNS forwarder. You internal clients get the router as their DNS server, and ONLY that address. This way when the router hands out DHCP leases it an also keep track of the internal host names and your internal machines will find each other. If the internal hosts use an external DNS record then they'll have no way to find the internal hosts.

    The important thing is to check your internal machines to see what DHCP info they've been handed. If their DNS record IP matches that of the internal router's gateway address then you're set. If not, well, stuff that looks up local hosts starts trying to fall back on mDNS, zeroconf (Bonjour) and the like, with mixed results.
     
  19. ClearToLand

    ClearToLand Old !*#$% Tinkerer!

    988
    134
    Jul 9, 2001
    Central Jersey
    I haven't touched any of the 'preview.*' options in the .INI file, yet when I attempt to move outside of the buffer, I get a gray block with the time (sounds like "preview.disable=1") and when I stop, after several seconds of "Please Wait...", the buffer is gone and I'm re-started at 00:00.

    I have DEBUG enabled via the simplelog file - what should I be looking for?

    The files are mpeg2 in .TIVO containers transferred via kmttg in PS 'Slow' Transfer format. They play fine from the buffer - I just can't 'Resume' or jump ahead of the buffer (inside the buffer is fine).

    Code:
    02/17/18 19:56:50 ViewScreen: 434 DEBUG: goto position: 120033, vidlen: 3602150
    02/17/18 19:56:50 ViewScreen: 464 DEBUG: Position not in buffer, starting new stream
    02/17/18 19:56:50 NewStatusBar: 30 DEBUG: state=false
    StreamBabyStream[#1,uri=null] warning: resource 4518 not found.
    StreamBabyStream[#1,uri=null] warning: resource 4518 not found.
    02/17/18 19:56:50 NamedStream: 114 DEBUG: DeRegistering named stream: 279d0d0a-b215-46f1-a538-ca4bd5515498.stream
    02/17/18 19:56:50 Listener: 447 DEBUG:
    02/17/18 19:56:50 Listener: 438 192.168.0.141 I/O Exception handling  HTTP GET 279d0d0a-b215-46f1-a538-ca4bd5515498.stream: Connection reset by peer: socket write error
    Forced "preview.disable=0" and re-started - no difference.
     
    Last edited: Feb 17, 2018
  20. vanclute

    vanclute Member

    213
    7
    Aug 3, 2003
    Oh ok... yeah everything has my stock Xfinity-provided DNS servers. So I guess as far as that goes at least, there's no issue.
     

Share This Page