Jump to content

RokuTV Live TV does not play


bardmaster
 Share

Go to solution Solved by bardmaster,

Recommended Posts

bardmaster

Hi guys, figured I'd start a new post with a more accurate title so anybody else out there with RokuTV (or "Roku TV") sets can find it, original post:

 

https://emby.media/community/index.php?/topic/48887-roku-live-tv-streaming-problems-3220/

 

The problem:  Live TV does not stream, or streams in an unwatchable manner.  I have attached logs, and just sent a Roku log for user "Matrix."

 

 
LOG #1 (ffmpeg log-60fps transcode at 8Mbps fail):  The first time I started a live TV stream I got video to display but VERY stuttery and not in-sync with the audio (which sounded fine).
 
LOG #2 (ffmpeg log-direct play fail):  After stopping and restarting I got the more common scenario, where the initial progress bar is stuck at 100% with no video or audio.  It appears like Emby is trying to direct play the stream but the RokuTV is unable to keep up with the feed @ 60fps+.

 

 

@@ebr I am still hopeful for a similar fix to be reinstated into the Roku Beta app that briefly fixed this problem - per the last post you had implemented logic to always transcode Live TV at a certain setting (think it was 30fps @ 8 Mbps) which worked perfectly.

 

I know you guys are busy, but would REALLY appreciate being able to use my relatively-new TV to watch live TV with Emby! :)

 

Many thanks!

Server Log.txt

ffmpeg log-60fps transcode at 8Mbps fail.txt

ffmpeg log-direct play fail.txt

Link to comment
Share on other sites

@@ebr I am still hopeful for a similar fix to be reinstated into the Roku Beta app that briefly fixed this problem - per the last post you had implemented logic to always transcode Live TV at a certain setting (think it was 30fps @ 8 Mbps) which worked perfectly.

 

That logic is still in the app and I can see a maxFrameRate=30 in the ffmpeg log you posted.

Link to comment
Share on other sites

AmericanMike

I had experienced this problem as well up until last week.  I noticed that the drive that was caching had compression enabled.  Once I removed that compression problem solved.  I had to remove it for the whole drive, not just the directory.  Made a world of difference for me.

Link to comment
Share on other sites

bardmaster

Update:  I've been able to get it to work, but only at an atrocious 2.5 Mbps bitrate.  Doesn't make for terribly good TV watching.

 

I've attached a log of video quality set to auto and one set to 2.5 Mbps.  Plus the server log. 

 

I can get Xfinity, and Plex with HDHRViewer to work fine at much better video quality, but I prefer Emby.  So I don't think it's a hardware issue...

 

Not sure where to go from here.  I KNOW it worked beautifully after you made some kind of change, @@ebr.

 

Let me know what I can do to help figure this out!

 

ffmpeg log auto.txt

ffmpeg log 2.5 mbps.txt

server log.txt

Link to comment
Share on other sites

It looks like maybe the server is no longer respecting the max framerate the app is requesting.  From your ffmpeg log:

...MaxAudioChannels=6&MaxFramerate=30&MaxWidth=1920&...
...
Output #0, segment, to 'D:\ServerFolders\AppProcessing\Emby\transcoding-temp\39937818c492e6b68baf47704ce62dfa%d.ts':
  Metadata:
    encoder         : Lavf57.83.100
    Stream #0:0: Video: h264 (libx264), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 59.94 fps, 90k tbn, 59.94 tbc

Link to comment
Share on other sites

bardmaster

 

It looks like maybe the server is no longer respecting the max framerate the app is requesting.  From your ffmpeg log:

...MaxAudioChannels=6&MaxFramerate=30&MaxWidth=1920&...
...
Output #0, segment, to 'D:\ServerFolders\AppProcessing\Emby\transcoding-temp\39937818c492e6b68baf47704ce62dfa%d.ts':
  Metadata:
    encoder         : Lavf57.83.100
    Stream #0:0: Video: h264 (libx264), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 59.94 fps, 90k tbn, 59.94 tbc

Is there something I can do via the server dashboard (or other location) to correct this?

Link to comment
Share on other sites

  • 4 weeks later...
Waldonnis

@@Waldonnis do you know if there's a way to use an expression with the framerate param so that we can specify a Max framerate? Thanks.

 

Not sure what you mean.  You could set the framerate easily using -r, but I don't think it will take an expression as an argument.  I suppose you could try to do something with the fps filter instead, but even that won't accept much in the way of expressions (maybe using one of the rate constants like ntsc?).  I'm not sure what the goal is, since it seems like the evaluation should be on the server side prior to ffmpeg: max frame rate is X which is lower than video's, so reduce the framerate to X.  Since X is provided by the client, it seems like a textbook -r  or fps filter case (with each having slightly different ways of accomplishing the same goal), but I could be misunderstanding the problem.

Link to comment
Share on other sites

The situation is that the source framerate is unknown. I want to limit to 60fps, but without changing the framerate for content that is already lower than 60fps.

Link to comment
Share on other sites

bardmaster

The situation is that the source framerate is unknown. I want to limit to 60fps, but without changing the framerate for content that is already lower than 60fps.

@@Luke I think when @@ebr got it working perfectly the first time he limited to 30fps

Link to comment
Share on other sites

@@Luke I think when @@ebr got it working perfectly the first time he limited to 30fps

 

Yes, in this instance the max needs to be 30 but the general issue is still the same - we don't know the source rate so we only want to change it if it is already below  above 'x'.

Link to comment
Share on other sites

Waldonnis

The situation is that the source framerate is unknown. I want to limit to 60fps, but without changing the framerate for content that is already lower than 60fps.

 

Ah, that makes sense.  I can't think of a way offhand, but there may be one.  Maybe a vfr encode with a rate specified?  Not sure if that would work, but I'll check into it.

Link to comment
Share on other sites

Waldonnis

I tried a few things, but none worked out.  My ideas all ended up with the framerate changing no matter what, which was obviously not the desired result nor really a good idea.  You might be able to use a complicated select filter expression to just select frames based on pts (thereby dropping the rest), but if the input is vfr, it would probably yield some bad results...and may cause some judder/stuttering even on cfr content.  If we know nothing about the stream, then it seems there's little that can be done generically.  If we had an fps value to start with, it would be easy (just min() the max from the device and the stream's fps, then drop the result into the command line), but if the input's fps isn't known... *shrug*

 

I'll keep thinking, but I'm about out of ideas.  I'm also leery of suggesting an arcane select filter expression because it's not only a pain to craft, but probably worse to diagnose issues should something go wrong (would require frame inspection in every case).

Link to comment
Share on other sites

  • 1 month later...
  • Solution
bardmaster

Update: I just upgraded the server to 3.2.60 (Roku beta is 3.0.59), and live TV is working with good quality now!  Averaging 32fps at a respectable 8.4Mbps on Auto quality.  Not sure if this was intentional or not, but it's working for me now! :)

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
 Share

×
×
  • Create New...