bardmaster 17 Posted November 6, 2017 Share Posted November 6, 2017 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 More sharing options...
ebr 14912 Posted November 6, 2017 Share Posted November 6, 2017 @@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 More sharing options...
AmericanMike 3 Posted November 8, 2017 Share Posted November 8, 2017 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 More sharing options...
bardmaster 17 Posted November 8, 2017 Author Share Posted November 8, 2017 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 More sharing options...
ebr 14912 Posted November 8, 2017 Share Posted November 8, 2017 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 More sharing options...
bardmaster 17 Posted November 8, 2017 Author Share Posted November 8, 2017 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 More sharing options...
ebr 14912 Posted November 8, 2017 Share Posted November 8, 2017 No, we will have to look at the server logic. Thanks. 1 Link to comment Share on other sites More sharing options...
bardmaster 17 Posted December 1, 2017 Author Share Posted December 1, 2017 No, we will have to look at the server logic. Thanks. Hi @@ebr any update on this? Thanks! Link to comment Share on other sites More sharing options...
Luke 37062 Posted December 1, 2017 Share Posted December 1, 2017 @@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. Link to comment Share on other sites More sharing options...
Waldonnis 148 Posted December 1, 2017 Share Posted December 1, 2017 @@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 More sharing options...
Luke 37062 Posted December 1, 2017 Share Posted December 1, 2017 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 More sharing options...
bardmaster 17 Posted December 1, 2017 Author Share Posted December 1, 2017 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 More sharing options...
ebr 14912 Posted December 1, 2017 Share Posted December 1, 2017 @@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 More sharing options...
Waldonnis 148 Posted December 1, 2017 Share Posted December 1, 2017 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 More sharing options...
Waldonnis 148 Posted December 2, 2017 Share Posted December 2, 2017 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 More sharing options...
Solution bardmaster 17 Posted January 9, 2018 Author Solution Share Posted January 9, 2018 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 More sharing options...
Luke 37062 Posted January 9, 2018 Share Posted January 9, 2018 Thanks for the feedback. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now