Jump to content

Roku App Reporting Wrong Capabilities


roberto188

Recommended Posts

roberto188

Emby Server is transcoding alot of 60fps media for both my Roku TV and Roku Streaming Stick. I believe it's because the reported capabilities for those devices is incorrect. My Roku 3 has no problem with the 60 fps content and the log shows it reporting max 60 fps whereas the other devices only report 30, even though they are more powerful. Please correct the profiles in the Roku app to allow 60 fps for these devices. Thanks!

 

 

post-144830-0-98330000-1520110103_thumb.png

post-144830-0-50230600-1520110109_thumb.png

post-144830-0-68860800-1520110115_thumb.png

Link to comment
Share on other sites

The information we have is that the Roku TVs cannot handle 60fps.  Has that changed?

 

@@speechles

 

rokuTV has always supported 60fps.

 

roku firmware allows all their devices to process 60fps. The issue is not all of these devices are capable of decoding at that framerate. So devices like the rokuSE and the roku2/3 will fall behind if the item is 1080p60. These slower devices do fine at 720p60. In the blue neon app there is the ability to force direct/transcode which alleviates alot of the issues since the app can then work-around the capabilities with force. There is a definite need to transcode 1080p60 to 720p60 for slower devices, which I never built as part of the profile. I figured the blue neon app and its force options could always be used to work around these problems.

device = CreateObject("roDeviceInfo")
if FindMemberFunction(device, "CanDecodeVideo") <> invalid then
     supports4kcodec = (device.CanDecodeVideo({codec: "hevc"}).result = true or device.CanDecodeVideo({codec: "vp9"}).result = true)
else
     supports4kcodec = false
end if

You are using something like above to detect 4k devices?

 

(note: you probably don't need the FindMemberFunction part and its wrap. You just need the single line below it if working on firmware over 7.0. Since the blue neon app also supports legacy devices on deprecated firmwares, the function is required to let the app work on them.)

Edited by speechles
Link to comment
Share on other sites

device = CreateObject("roDeviceInfo")
if FindMemberFunction(device, "CanDecodeVideo") <> invalid then
     supports4kcodec = (device.CanDecodeVideo({codec: "hevc"}).result = true or device.CanDecodeVideo({codec: "vp9"}).result = true)
else
     supports4kcodec = false
end if

You are using something like above to detect 4k devices?

 

(note: you probably don't need the FindMemberFunction part and its wrap. You just need the single line below it if working on firmware over 7.0. Since the blue neon app also supports legacy devices on deprecated firmwares, the function is required to let the app work on them.)

 

I had seen this pre-existing code in there and thought that is not a very good way to determine 4k support as supporting those codecs is not the same thing as supporting a 4k resolution.  But I haven't investigated further to see if there is a better way.

Link to comment
Share on other sites

roberto188

Does the blue neon allow to select transcode resolution or set the allowable framerate?

Link to comment
Share on other sites

I had seen this pre-existing code in there and thought that is not a very good way to determine 4k support as supporting those codecs is not the same thing as supporting a 4k resolution.  But I haven't investigated further to see if there is a better way.

 

Support for those codecs means support for 4k. This is code suggested by roku co to use. The device will natively downscale on itself to the desired resolution during direct play any 4k content. If the user wants to restrict their TV to a certain resolution, in the blue neon app I have a setting that allows auto/1080p/720p to decide the preferred transcode resolution. Using auto will have the device downscale (in effect do nothing work the same as it does now) and use direct play. Using 1080p/720p would cause the server to transcode to the desired resolution.

 

The part that isn't complete is when to change framerate. Obviously only when 1080p60, and obviously only with certain devices. I didn't want to start tracking model numbers to do this, but perhaps that is the only way. Under powered devices 1080p60 -> 720p30 using the server to transcode. Any 1080p60 will not direct play on these devices.

 

Does the blue neon allow to select transcode resolution or set the allowable framerate?

 

yes to both ( see here: https://emby.media/community/index.php?/topic/24151-theme-blue-neon-night/?p=495849 ) and you can also force play methods, direct/transcode/transcode-without-streamcopy

Edited by speechles
  • Like 1
Link to comment
Share on other sites

roberto188

Unfortunately the Blue Neon app won't even allow my Roku TV to direct play or direct stream anything mpeg 2. Says reason for transcode is container, video and audio codec are all not compatible. The regular emby Roku app direct streams the compatible audio and video into the proper container.

Link to comment
Share on other sites

Unfortunately the Blue Neon app won't even allow my Roku TV to direct play or direct stream anything mpeg 2. Says reason for transcode is container, video and audio codec are all not compatible. The regular emby Roku app direct streams the compatible audio and video into the proper container.

 

Yep, thats because the server made changes to how things were reported to the app (the name attribute within the json changed) which broke the version on the roku store. The roku store does not allow legacy applications to update anymore. So the app exists in this broken condition now as a result.

 

To get the new app you have to sideload (use the zip of the app) and use developer mode to push it onto your device. It is quite easy to turn on developer mode on any roku device. You can only have 1 development app loaded, new overwrites old. 

 

On the store version you can go to the detail menu of an item, choose the "more..." menu and you can force a play method from within this menu. Now choose "direct" and the app will always try to drect play your content first, before it will fallback to transcoding. Make sure in settings to turn off the play method reset which will revert to auto.

Link to comment
Share on other sites

mikeraburn

Support for those codecs means support for 4k. This is code suggested by roku co to use. The device will natively downscale on itself to the desired resolution during direct play any 4k content. If the user wants to restrict their TV to a certain resolution, in the blue neon app I have a setting that allows auto/1080p/720p to decide the preferred transcode resolution. Using auto will have the device downscale (in effect do nothing work the same as it does now) and use direct play. Using 1080p/720p would cause the server to transcode to the desired resolution.

 

The part that isn't complete is when to change framerate. Obviously only when 1080p60, and obviously only with certain devices. I didn't want to start tracking model numbers to do this, but perhaps that is the only way. Under powered devices 1080p60 -> 720p30 using the server to transcode. Any 1080p60 will not direct play on these devices.

 

 

yes to both ( see here: https://emby.media/community/index.php?/topic/24151-theme-blue-neon-night/?p=495849 ) and you can also force play methods, direct/transcode/transcode-without-streamcopy

I'm going to DMCA ya speechless

My prior posts are proprietary

My lawyer will be in contact

 

Sent from my SM-T560NU using Tapatalk

Link to comment
Share on other sites

roberto188

Any movement on this? Is there a way to report to the server that the Device is capable of mpeg2 60fps and only 30fps h264 or is the max frame rate fixed for all codecs because the Roku TVs all do mpeg2 60fps but are in fact capped at 30 for h264.

Link to comment
Share on other sites

Any movement on this? Is there a way to report to the server that the Device is capable of mpeg2 60fps and only 30fps h264 or is the max frame rate fixed for all codecs because the Roku TVs all do mpeg2 60fps but are in fact capped at 30 for h264.

 

You need to use the blue neon app to run your tests. This allows you to "force direct" and "force transcoding". Now using "force direct" you also need to change the preference in settings for "Reset Play Method" to NO. Then every time you play a file in blue neon it will first attempt to direct play regardless of what it thinks its capabilities are. Now you can confirm for fact that h264 is locked at 30 fps. The h264 in 60fps in your tests should fail, close the video player, and the app should report a video failure and then immediately resume by transcoding. I can say that In my tests with my buddies rokuTV, the only codec locked at 30fps in rokuTV is hevc in hdr, and even then its only certain models. So this is all just a game of testing and refine the capabilities for each device model of rokuTV.

    h264Conditions.push({
        Condition: "LessThanEqual"
        Property: "VideoFramerate"
        Value: framerate
        IsRequired: false
    })

    mpeg2Conditions.push({
        Condition: "LessThanEqual"
        Property: "VideoFramerate"
        Value: framerate
        IsRequired: false
    })

    mpeg1Conditions.push({
        Condition: "LessThanEqual"
        Property: "VideoFramerate"
        Value: framerate
        IsRequired: false
    })

In the blue neon app, yep.. All the framerates are tied to the same. RokuTV also supports mpeg1 too which wasn't mentioned. In the blue neon app you also need to change the "max framerate" to 61, by default it starts at 30.

Edited by speechles
Link to comment
Share on other sites

roberto188

You need to use the blue neon app to run your tests. This allows you to "force direct" and "force transcoding". Now using "force direct" you also need to change the preference in settings for "Reset Play Method" to NO. Then every time you play a file in blue neon it will first attempt to direct play regardless of what it thinks its capabilities are. Now you can confirm for fact that h264 is locked at 30 fps. The h264 in 60fps in your tests should fail, close the video player, and the app should report a video failure and then immediately resume by transcoding. I can say that In my tests with my buddies rokuTV, the only codec locked at 30fps in rokuTV is hevc in hdr, and even then its only certain models. So this is all just a game of testing and refine the capabilities for each device model of rokuTV.

    h264Conditions.push({
        Condition: "LessThanEqual"
        Property: "VideoFramerate"
        Value: framerate
        IsRequired: false
    })

    mpeg2Conditions.push({
        Condition: "LessThanEqual"
        Property: "VideoFramerate"
        Value: framerate
        IsRequired: false
    })

    mpeg1Conditions.push({
        Condition: "LessThanEqual"
        Property: "VideoFramerate"
        Value: framerate
        IsRequired: false
    })

In the blue neon app, yep.. All the framerates are tied to the same. RokuTV also supports mpeg1 too which wasn't mentioned. In the blue neon app you also need to change the "max framerate" to 61, by default it starts at 30.

 

Thanks. I'm pretty certain I tried this and it gave me an HTTP error whenever I tried to direct play. I will experiment tonight extensively with 60fps h264 at various resolutions and 60 fps mpeg 2 all with direct play, fallback turned off and 61 fps selected and let you know exactly what happens.

Link to comment
Share on other sites

roberto188

Yeah even with Forcing Direct Stream with no fall back I just get an HTTP error. "There was an error in the HTTP response. This could mean that malformed HTTP headers or and HTTP error code was returned."

Link to comment
Share on other sites

  • 2 weeks later...
roberto188

No I think it's because the blue neon app is old and there is an error with something else. Was the capability for the Roku streaming stick updated to reflect 60fps capabilities?

Link to comment
Share on other sites

A direct play failure is almost always out of the app's control. You can test this with our app now by revoking user permissions for transcoding, and see if those files direct play.

Link to comment
Share on other sites

  • 2 weeks later...
roberto188

Any word on getting the Roku app updated to report the streaming stick 60fps capability?

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