-
Notifications
You must be signed in to change notification settings - Fork 265
Dropped frames on Fire TV 4K #221
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I've now hooked a debugger into VLC for Android and checked which options it passes to libvlc to pass the same from my app. But had no luck, the playback is still laggy. Parameters:
The extended logging now shows some additional hints what might be the issue:
But I still don't know how to fix this. :/ |
Did you test with HwAcc.Disabled? Check this link https://emby.media/community/index.php?/topic/27322-stutteringchoppy-playback-lately-on-firetv-stick/ --> |
Thanks for your fast response. When disabling HwAcc, the stream still stutters the same (looks like ~15 FPS) but the HW decoder errors in logcat disappeared (of course). Thanks for your link. But I'm not sure if this statement from 2015 is still relevant for the current generations of Fire TVs. Also, the stream runs absolutely fine in the official VLC for Android app, just not when embedding libvlc into flutter using this library. So maybe the embedding into Flutter introduces too much overhead? Maybe it's worth to mention, that logcat is spammed with
|
You said "This issue is also only present on the Fire TV and the stream runs fine on e.g. an Android Smartphone.". "So maybe the embedding into Flutter introduces too much overhead?" |
Yeah, I ran the app on two Android Smartphones (bq Aquaris X, Pixel 4a 5G, smooth playback), on an Android TV emulator (smooth, too) and on the Fire TV 4K (stuttering). A friend also tried it on a Sony TV with Android TV (KD55XG8505) where he saw stuttering too, but less extreme. And I've just received a Chromecast with Google TV which I can test the app on on tuesday. If you don't think that this issue could be caused by rendering overhead, then I'm really out of ideas now regarding what could be the difference between the Flutter VLC Player and VLC for Android. |
please share the streaming url so we can test that. |
We have same problem on MiBox4 issue 209 |
@MarcusWichelmann i had the same issue #32, spent countless hours fiddling with vlc params but nothing worked. Finally i gave up on this plugin and used the amazon's exoplayer port which is well optimised to work with fire devices. |
@alr2413 Unfortunately, I cannot share the streams I used for testing, but this should be reproducable with any HD/4K H.265 Stream. @pharshdev Do you use ExoPlayer with Flutter or directly in Kotlin/Java? I noticed that, on some Android TVs, ExoPlayer in Flutter ( I decided to skip Flutter for now and write the app with native Android and the Java ExoPlayer APIs instead, because that way the videos will even play smoothly on low-end devices. |
@MarcusWichelmann yes i used the exoplayer natively. For me flutter + native exoplayer works for now and i dont have to maintain separate code for mobile and tv devices. |
@pharshdev So you embedded the ExoPlayer into a Flutter AndroidView? That's the same that |
@MarcusWichelmann nope, no embedding. I simply launch the PlayerActivity from the FlutterActivity with all the params necessary to play the video from the flutter side. Once the playback is done, I'm back to Flutter goodness. |
@pharshdev Aah good idea, thank you. I'll see if that works for me. |
@MarcusWichelmann @pharshdev, if you don't need to access any player parameters on flutter side that solution might work well. |
Can you show a code example? |
@jeffmikels I resolved this by showing a transparent Flutter app using a FlutterFragment as an overlay for the ExoPlayer view. See: https://flutter.dev/docs/development/add-to-app/android/add-flutter-fragment This strategy also works on iOS, even thought it's way less documented. Unfortunately, I cannot share any code right now, but it should be fairly straight forwarded to implement with above documentation. |
@pharshdev Do you happen to have an example of this? I've been hitting my head against a wall to get 4k60fps video working in Flutter (StackOverflow issue) This might be the final breakthrough I need to getting this working for my scenario. |
Hello, I'm working with the tv and ExoPlayer with native Kotlin and I'm not streaming media just playing from local I'm facing the same issue with FireStick 4K it crashes within 3 to 4 minutes and in FireStick Lite it's working up to 15 to 30 munites. |
Hi,
when playing a HLS H.265/HEVC stream on a Fire TV 4K, the playback is very stuttering and the decoder seems to be dropping a lot of frames. This can also be seen in logcat where a lot of
com.android.mediaplayer.HW.video.hevc Dropping frame
messages appear just a few seconds after the stream has started playing.But when playing the same stream using the VLC app for Fire TV, the playback is smooth and the log output clean, so I suppose that VLC for Android passes some parameters to libvlc that I don't. But I have not yet discovered which these are.
Maybe you have an idea what options I'm missing?
My simple test code (the commented out options were some unsuccessful tests from me):
The stuttering is reproducable with above code as well as with the sample application from this repository (when changing the code to use my stream).
Interestingly, this is not reproducable with this stream: http://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel.ism/.m3u8.
This issue is also only present on the Fire TV and the stream runs fine on e.g. an Android Smartphone.
Information about my stream:
Log output:
The text was updated successfully, but these errors were encountered: