Jump to content

Rendering SD 25fps interlaced to 50fps progressive - possible?


grazza2a

Recommended Posts

I'm a long-time and avid user of Emby since its MediaBrowser days - love it. However, I've got a couple of queries about how video content is served to ROKUs - I'm not an experienced programmer but understand enough - so, apologies if this sounds a little basic or newbie-ish. I own a ROKU 4 that is set to display at the same fps as the source material.

 

Most of my content is ripped directly from DVD source. Based in the UK, this means that files are generally original MPEG2 files wrapped in an MKV container - ie, they're not transcoded to another video codec. Video is generally 720x576 at 25fps interlaced - for content produced on video as opposed to film.

 

Query 1: As MPEG2 content will not play natively on a ROKU, I am reliant on Emby transcoding it on-the-fly. I'm happy with this as as solution as I don't really want to prepare different versions for different renderers (I don't have the hard drive space or the time). Does Emby transcode the size of UK PAL SD video to 640x480 and if so, is there an option to transcode keeping the same dimensions as the source material? UK PAL being slightly different to NTSC (please correct me if my assumptions here are wrong).

 

Query 2 and more importantly to me: When Emby transcodes content to play on the ROKU it appears to dinterlace 25fps video to 25fps progressive. Video looses the smooth playback aesthetic in favour of a "filmic" look. Can Emby transcode on-the-fly 25fps interlaced to 50fps progressive for SD video - and if so - how?

 

Hope the above makes sense and I'm sure there is a setting or metadata entry I am missing to allow the above.

 

Thanks in advance.

Link to comment
Share on other sites

Okay, thanks for the quick reply. At least it's not something I wasn't doing  ;) Is it something that could be considered for a future release?

Link to comment
Share on other sites

A1) http://forums.roku.com/viewtopic.php?t=114433

 

But.. mpeg2 is supported. Depending on which model of roku we are talking about. Your mpeg2 in mkv is perfectly playable directly.

 

A2) Why don't you change your roku to adjust to the framerate?

 

Settings >> System >> Advanced system settings >> advanced display settings >> Auto-adjust display refresh rate and enable it.

Link to comment
Share on other sites

Thanks for the reply Speechles. My advanced settings are already enabled but 25fps interlaced definitely looks 25fps progressive on the Roku. I've looked through the forum link. I wasn't aware that the MPEG2 patent had lapsed in most territories. As far as I can tell though, Roku haven't enabled it yet? I have the Roku Premiere Plus. The replies are much appreciated.

Link to comment
Share on other sites

They(emby developers) have enabled it. This is a "new trick" for the roku. Along with h261, h262, h263, h264, h265 working in MKV on your roku premiere plus with direct play.

 

I believe this requires the beta roku app. It hasn't pushed upstream through rokus approval process yet. At least I don't think it has. It is always a good idea to keep both for just such case that roku may be slow to push. A private channel can be pushed by the developer and immediately accessible once it is updated. So you sidestep the store. A public channel on the store must be approved.

 

When you click the link you will get a "warning popup" that not every app is innocent, and some do illegal things, and your access to load private apps depends on them not finding you with illegal apps. So there are a myriad of private apps all over. An illegal app on your roku is basically a poison pill. Once roku finds these apps are illegal it will blacklist that app. If your roku has that illegal app (ie, you swallowed the posion pill) it is removed (and all the private apps you had are as well), and the ability to load any private channels on that roku device will be stripped away by firmware update and by IP ban (so all roku devices at that location or tied to your account lose the ability to use private channels too). Stay innocent, stay safe. :)

 

ALSO: @@ebr the name of the app. Log into roku and manage the apps. Choose the emby beta (aka mediabrowser). Then click on the "channel store info" on the drop down menu. Once you do this, you can change the channel name from mediabrowser. I mean, if you want to. This is clearly a choice. But it would look better as emby. Just a small detail missed.

Edited by speechles
Link to comment
Share on other sites

ALSO: @@ebr the name of the app. Log into roku and manage the apps. Choose the emby beta (aka mediabrowser). Then click on the "channel store info" on the drop down menu. Once you do this, you can change the channel name from mediabrowser. I mean, if you want to. This is clearly a choice. But it would look better as emby. Just a small detail missed.

 

Hmmm... That channel name is "Emby Beta" and has been for a long time.  Where are you seeing it otherwise?

Link to comment
Share on other sites

jDbDvNi.png

 

Now.. here it says it. Use the same method a user would to discover emby. Start at emby.media. Click on download tab. Then click on roku button. On this screen, it says to help shape the future of emby on roku and gives a beta link. Click this link that says "private channel". You have to login to roku and click the am not a robot button if not logged in. Then you land on the warning. Click OK to proceed through this check. Afterwards the image shown above is what you are presented with. This is where it is named that.

Link to comment
Share on other sites

Gotta be something in the Roku company app store system or something.  I guess we'll have to fire off a request to see how to get it changed.  Thx.

Link to comment
Share on other sites

Gotta be something in the Roku company app store system or something.  I guess we'll have to fire off a request to see how to get it changed.  Thx.

 

It might be as simple as two strings. App.CreationName vs App.Name. The App.Name is the friendly version we can modify. The CreationName is the original embedded, set in stone, old way but remains in legacy because some roku systems use this name internally to do their juggling acts.

 

If they make that change from one to the other the right string value comes up with the right name. I am sure this is the reason. The dialog is using the wrong string.

Edited by speechles
Link to comment
Share on other sites

As a quick check, I can confirm that MPEG2 delivered in a MKV container plays on the Roku Premiere Plus - thanks for the heads up on this Speechles. I've accessed Emby via the Roku Media Player - this delivers the original video - no transcoding and it looks great. Unfortunately, audio is mute. For whatever reason, the ROKU can't seem to handle or pass through AC3. Using the Emby beta app, video appears to be transcoded the same as the regular Emby app.

 

So, is the next logical route a DLNA profile that allows video to pass through and for audio to be transcoded? Is there a "how to" for this? Or is there a way in either the regular or beta Emby apps to achieve this? Again, many thanks.

Link to comment
Share on other sites

The roku cannot process, decode, or otherwise tamper with the dobly audio stream to convert it on-the-fly to anything else. The only codec(s) the roku can pass through is(are) AC3 (and once they fix the DTS core issue not passing with DTS-HD MA, also DTS). So you need a decoder for AC3 connected to the hdmi. Otherwise you will hear the sound of silence. My television luckily has support for dolby digital+ through its two speakers through built in sound field processing the TV itself does. So some TV with stereo can support it, you just need to enable "surround" instead of "stereo" on your TV settings. Then reboot your roku so it can detect this. Some TV cannot at the same time and don't offer sound field processing.

 

The next step is emby should only be transcoding the audio. It should be direct stream copying the mpeg2 stream. But maybe it isn't? Can you provide the ffmpeg log?

Edited by speechles
Link to comment
Share on other sites

Hi again, and sincere thanks for the support. Log attached (hope it's the right one). I have a suspicion that the handling of AC3 has been broken by a Roku firmware update. I'm still investigating with the Roku Media Player app although I'm now having intermittent problems getting Emby to be recognised as a DLNA server. In the past, AC3 audio has worked for me and I haven't had a physical change to my set-up - which is leading me to think that Roku may be at fault here. I rarely use RMP though as I prefer to keep within the Emby app.

 

When using the preferred Emby app (and Beta version), I'm a little lost about how I force the server to send the MPEG2 video directly to it. I've played around with creating a DLNA profile but this is new to me and I'm on a bit of learning curve to be honest. All attempts lead it to transcode the video. However, audio plays fine within both the regular Emby app and the beta version. If I'm reading the log correctly, Emby is transcoding audio to AAC? So for now, I'm guessing it's about finding a way to send to the Emby app - MPEG2 video directly with transcoded AAC audio?

 

Thanks again.

Log.txt

Edited by grazza2a
Link to comment
Share on other sites

Hmm, I attached the log file but I can't see it in my reply - should I just copy and paste instead? Ignore, log file now attached to post above, doh! ;)

Edited by grazza2a
Link to comment
Share on other sites

Okay, I think the issue here is that, once we determine that ffmpeg needs to be involved (due to unsupported audio in this case), we are then transcoding the video to the preferred format for the device as well.  We'll have to see if we can preserve it in that case (although that can definitely cause problems).

Link to comment
Share on other sites

  Stream #0:0 -> #0:0 (mpeg2video (native) -> h264 (libx264))

 

 

DOH! ... lol

 

mpeg1video and mpeg2video should stuff into HLS with m3u8/ts just fine (as long as the device supports mpeg2/mpeg1 with the "contains" function). No alterations to the video stream. In the same vein as hevc is done. I couldn't provide that code, as how you do it and I do it deviate. You give the server a list of codecs, in order of priority. I have the app detect which codec the server will use. It isn't given a list. The app decides what can and cannot direct stream in my version. Yours obviously differs because you aren't forcing play methods.

Edited by speechles
Link to comment
Share on other sites

Hi ebr and speechles - am I to understand that the solution lies within either a future version of the Roku Emby app or a modified generic DLNA profile that Roku uses? Sorry if I'm missing something and thanks again.

Link to comment
Share on other sites

Hi ebr and speechles - am I to understand that the solution lies within either a future version of the Roku Emby app or a modified generic DLNA profile that Roku uses? Sorry if I'm missing something and thanks again.

 

The issue is, there is limited information known about what goes outside roku documentation. Then you discover that, figure out what certain criteria are required, and you can work outside their box. So I've discovered that mpeg1video and mpeg2video can be packaged in HLS and the roku plays the m3u8 and streams in TS slices just fine. This is good news. It means we are "outside the box" as far as what Roku officially says in docs. But when you are outside the box you just have to have a way to detect that you are and which models support this out the box behavior.

 

The other good news is, I found if you feed the CanDecodeVideo() function mpeg4 in MKV it will disclose what you should use as your codec. This exposes the capability of the box much better than roku's documentation ever can. In this way it future proofs certain things and makes it less "written in stone" and more "adapts on the fly" for each model/device. Future proofing is good. It means less maintenance for the developer, as the devices lose or gain capability factoring all this in is done on the device. Nothing is guesses anymore. It also means less problems for users and less updates are required to fill in the blanks. Both good news too.

 

So yeah, you are correct in your assumption.  @@ebr just needs to add mpeg1 and mpeg2 support into the transcoding profile. This is really simple to do. I mean trivial simple. Like counting to 3 simple. 1,2,3.. done.. That fast literally. But other things are on ebr's plate. He is the chief bottle washer after all. Once other bottles are clean he can move onto this bottle. :)

Edited by speechles
Link to comment
Share on other sites

Thanks again to both of you. It's good to know it can be done and I absolutely appreciate the current commitments and release schedules. I'll happily bide my time. All the best.

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