First of all merry christmas to everyone. I have a normal tv in a room and I would like to watch movies that I have on my osmc box that I have on another room with our main Tv. To do that I want to use chromecast. I configured uPnP on Kodi and I am able to see files on my android phone using Yatse or Bubbleupnp. The problem is that some format are not recognized by chromecast. I bought pro version of both app but transcoding in local on android device is too slow.
How can solve the issue having transcoding on the fly with reasonable performance?
First it’s not Clear to me if kodi has its internal dlna server. Do I need to install some external tool like minidlna or bubblepnp server?
Let me rephrase the issue being more specific with my questions. To solve the issue here the options I found googling on this forum and others.
The easiest solution seems to be internal kodi dlna service. But it does not seem to support transcoding. Am I correct?
Use kodi internal dlna server and enabling transcoding on bubblenpn client on my phone. It is too slow. Is this normal? Is there a way to improve performance?
Use external dlna server like minidlna. Does it support transcoding? I was unable to find this info so far.
Use bubblepn server that seems to have trancoding and it should interface well with client. But here it’s not clear to me what is a bubblepn server. Is it another dlna server? What’s the difference with minidlna and kodi internal dlna server?
Do not use transcoding at all and convert the video manuale using ffmpeg. Obviously this option is simple but require work for each movie. However, what is the target format/codec I should use between the one supporter by chromecast and why.
Thx in advance for your help.
Here is where you can find information about BubbleUPnp-server and Chromecast transcodeing
Thanks for reply. I will read this with attention. Could you answer also to my questions above regarding the real nature of kodi internal dlna server, minidlna and bubblepnp server and their differences. All these tool confuse me and having a good understanding about them I think will be a good start point.
Just buy a second pi for the second room and be done.
It sounds to me like you’ve not done your research before buying the Chromecast and you’re expecting others to fix this for you.
No. I already have a chromecast that I bought to play video on TV from phone and tablet. I use it mainly with Netflix.
All this in outside the scope of OSMC, but here is a “short” answer for you.
In short DLNA, is for streaming between source and renderer(client), Kodi can act as both source and renderer. Minidlna(ReadyMedia), is another DLNA source you can use to stream from.
DLNA just streams the format the files/media was encoded in, and it’s up to the renderer if it can decode it. For instans Xbox360 and Chromecast are limited to a few codecs, which means they can’t play anything you throw at them.
This is where BubbleUPnp-server comes in, it takes the source, acts as a renderer and decodes the format, reencodes the format to another format and streams it to the device you have chosen.
Here’s a link to the formats Chromecast supports: Supported Media for Google Cast | Google Developers
Ok thank you for answer. This confirm my impression. In “short” minidlna, kodi internal dlna server and bubbleupnp are all dlna server. They send movie as it is, so if client does not have the codec it must be transcode by client or server. Chromecast does not have built in transcode feature. Here where bubbleupnp server is useful. It is The only dlna server that allows transcoding and this is a difference with kodi internal dlna server and minidlna.
So in my particular scenario I cannot use kodi internal server and minidlna. I have to install and configure a bubbleupnp server.
Thank you. Now it’s everything clear.
Be aware though that the pi will most likely not have the power to transcode anything in realtime.
You would be better off using a pc for the server.
Yes this was one of my concern. I do not want additional server. Just a tv box next to the TV. However I think I need to test the solution and check the behavior. If this solution fails I need to transcode each file manuale. I have already found good script for this. Bubbleupnp obviously is a better solution because I can watch movie without spend time to do it by myself in advance.
Thanks guy for support I really appreciate it.
Transcoding on-the-fly is a CPU intensive thing. It is beyond what a r-pi can accomplish. You’ll need another box on the network somewhere, probably an Intel Pentium or faster. The G3258 CPU is cheap and capable for this task. It isn’t an i7, so don’t expect transcoding to be faster than real-time, but it does work. Built a plex server for about $120 with this CPU and some old parts laying around. The machine is a storage server, media server, ebook server, vpn server and a few other servers running.
Another r-pi running OSMC/Kodi would be cheaper than adding another PC. Also, since we don’t have Windows here, the BubbleUPnP server is paid and Windows. There are other methods to do this - use chrome browser (or chromium-browser) with a Cast-To chromecast option.
OTOH, Plex Media Server can do on-the-fly transcoding for different client DLNA devices, as needed. It works. There are different profiles for each client devices which tells plex what and how to transcode for a specific client. I use Plex as the center of my media with different clients near the playback locations - Roku, OSMC, Chromecast. For the chromecast, I use either BubbleUPnP to stream from plex or castnow (a complex node.js project) to push a pre-transcoded-for-chromecast file.
Honestly, I’ve found little use for our chromecast. We have netflix for snail-mail, but not streaming. The chromecast doesn’t stream for the service we use. Needed the roku for that, which has a nice remote and reasonable support for Plex.
I tried miniDLNA a few years ago. At the time, it didn’t do lots of things I needed. Plex isn’t perfect and I don’t have a plex account nor do I pay them anything, but today, in a multi-viewing house, I really think they have the easiest, best, solution for the back-end. Nothing compares to Kodi/OSMC for the front-end, IMHO.
Happy new year!
Thanks for reply. I solved the problem and transcoding works perfectly. I am able to watch all Movies/TV Series from Chromcast on TV on another room. To be honest I must say that Bubbleupnp server in java consume lot of CPU and when a file not recognized by chromcast is started the transcoding with ffmpeg starts and it goes over 126% of CPU depending on settings. In order to have the system working without any issue I had to change the bitrate and another setting on my android device (my phone) used to search the movie to watch on my TV box and shoot it on Chromcast.
These settings works perfectly for my 24" TV.
I’ll prepare a tutorial on what I did it if someone is interested, but I must say that consume of CPU is too high so this service must be used with attention. First of all since I do not use TV in room so often I can configure Bubbleunpn as a service and only enable it when necessary. In this way the consume of CPU happen only from time to time and on demand.
However, when possible probably the best solution is to convert the video in advance.
Here the question is, considering all possible video format/codec avaiable in which case I lost information converting in a format for Chromcast? Which Chromcast format is good as target format/codec?
I noticed there are on github some scripts to convert video. They are very simple, just take in input a folder where movies are and then apply ffmpeg to them.
Chromecast likes h.264/AAC in either an mp4 or mkv container. This is the most common set of codecs used on the internet today.
I think h.264/ogg and h.264/mp3 will work too. Ogg is multichannel on other players. Don’t know about on a chromecast.
A chromecast cannot handle current USA OTA recordings which are mpeg2/AC3 usually with either DD or DTS audio. mpeg2 is not supported. DD/DTS are not supported either. Any of those would need to be transcoded.
I haven’t tested the google formats which are vp6, vp8, vp9 with a chromecast. I think vp9 (webm) is a stricter h.264+ogg+mkv, just with a different extension (webm vs mkv) and fewer options from what mkv supports. BTW, vorbis is an excellent audio codec and has generally better quality than equivalent mp3 or aac audio files for the same bitrates.
Of course, “best” is highly subjective. Safest would be h.264/aac in an mp4 container. Since the chromecast support for subtitles and captions is non-existent it probably doesn’t matter, but mkv is the most flexible container format available today. I routinely put 5+ audio streams and 8+ subtitle and caption files into mkv video containers.