Closed araafat3 closed 2 years ago
Seems like your device is unable to play given video with ExoPlayer. Did you try to run another videos?
Yes and same issue appear only on Android 5 and 5.1
Can you provide video which causes this error?
@araafat3 I believe this issue is connected with old Android version which doesn't play well with latest exoplayer. I think the best solution will be using newer android. I'm closing this right now. Feel free to answer in this issue and I'll reopen it.
i have the same issue with some mkv files
Describe the bug
some mkv file not working and throw this exceptipn
Unhandled Exception: PlatformException(VideoError, Video player had error com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/hevc, hvc1.2.4.L120.90, -1, und, [1920, 1080, -1.0], [-1, -1]), format_supported=NO_EXCEEDS_CAPABILITIES, , null)
*Example code `import 'dart:async';
import 'package:better_player/better_player.dart'; import 'package:family/repo/last_position.dart'; import 'package:family/state_widget/my_drawer.dart'; import 'package:family/utilities/locator.dart';
import 'package:flutter/material.dart'; import 'package:flutter/services.dart';
class HlsSubtitlesPage extends StatefulWidget { final String title; final String url; final bool isStream; final String image;
const HlsSubtitlesPage( {Key key, @required this.title, @required this.url, @required this.isStream, @required this.image}) : super(key: key); @override _HlsSubtitlesPageState createState() => _HlsSubtitlesPageState(); }
class _HlsSubtitlesPageState extends State
_init() async { int postion = 0;
BetterPlayerControlsConfiguration controlsConfiguration =
BetterPlayerControlsConfiguration(
controlBarColor: Colors.black26,
iconsColor: Colors.white,
playIcon: Icons.play_arrow_outlined,
progressBarPlayedColor: Colors.indigo,
progressBarHandleColor: Colors.indigo,
skipBackIcon: Icons.replay_10_outlined,
skipForwardIcon: Icons.forward_10_outlined,
backwardSkipTimeInMilliseconds: 10000,
forwardSkipTimeInMilliseconds: 10000,
enableSkips: !widget.isStream,
enableFullscreen: true,
enableRetry: !widget.isStream,
enablePip: true,
enablePlayPause: true,
enableMute: true,
enableAudioTracks: false,
enableProgressText: true,
enableSubtitles: true,
showControlsOnInitialize: false,
enablePlaybackSpeed: true,
controlBarHeight: 40,
enableQualities: false,
enableProgressBarDrag: !widget.isStream,
showControls: true,
loadingColor: Colors.red,
overflowModalColor: Colors.black54,
overflowModalTextColor: Colors.white,
overflowMenuIconsColor: Colors.white,
);
BetterPlayerConfiguration betterPlayerConfiguration =
BetterPlayerConfiguration(
errorBuilder: (BuildContext context, String error) {
return Text("$error");
},
controlsConfiguration: controlsConfiguration,
aspectRatio: 16 / 9,
showPlaceholderUntilPlay: true,
placeholder: _buildPlaceholder(),
autoDetectFullscreenDeviceOrientation: true,
handleLifecycle: true,
placeholderOnTop: true,
useRootNavigator: true,
systemOverlaysAfterFullScreen: [
SystemUiOverlay.bottom,
SystemUiOverlay.bottom
],
allowedScreenSleep: false,
autoPlay: true,
fit: BoxFit.contain,
subtitlesConfiguration:
const BetterPlayerSubtitlesConfiguration(fontSize: 16.0));
BetterPlayerDataSource dataSource = BetterPlayerDataSource(
BetterPlayerDataSourceType.network, widget.url,
headers: {
"Content-Type:": "application/vnd.apple.mpegurl",
"Content-Encoding": "gzip",
"Accept-Encoding": "gzip, deflate",
"User-Agent": "Forever Pro+ v 21"
},
cacheConfiguration: BetterPlayerCacheConfiguration(
useCache: true,
preCacheSize: 10 * 1024 * 1024,
maxCacheSize: 10 * 1024 * 1024,
maxCacheFileSize: 10 * 1024 * 1024,
key: widget.url),
bufferingConfiguration: const BetterPlayerBufferingConfiguration(
bufferForPlaybackAfterRebufferMs: 1000),
liveStream: widget.isStream,
useAsmsSubtitles: true);
_betterPlayerController = BetterPlayerController(betterPlayerConfiguration);
await _betterPlayerController.setupDataSource(dataSource);
_betterPlayerController.videoPlayerController.addListener(() {
int _postion = _betterPlayerController
.videoPlayerController.value.position.inSeconds;
});
_betterPlayerController.addEventsListener((event) {
if (event.betterPlayerEventType == BetterPlayerEventType.play) {
_playController.add(false);
}
});
}
final StreamController
@override Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
appBar: AppBar(
title: Text("${widget.title}"),
),
body: BetterPlayer(controller: _betterPlayerController),
));
}
Widget _buildPlaceholder() {
return StreamBuilder
Flutter doctor `[√] Flutter (Channel stable, 2.5.3, on Microsoft Windows [Version 10.0.19043.1288], locale en-US) • Flutter version 2.5.3 at C:\src\flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision 18116933e7 (3 weeks ago), 2021-10-15 10:46:35 -0700 • Engine revision d3ea636dc5 • Dart version 2.14.4
[√] Android toolchain - develop for Android devices (Android SDK version 31.0.0-rc5) • Android SDK at C:\Users\Hussen\AppData\Local\Android\sdk • Platform android-31, build-tools 31.0.0-rc5 • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01) • All Android licenses accepted.
[√] Chrome - develop for the web • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe
[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.10.0) • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community • Visual Studio Community 2019 version 16.10.31321.278 • Windows 10 SDK version 10.0.18362.0
[√] Android Studio (version 4.1) • Android Studio at C:\Program Files\Android\Android Studio • Flutter plugin can be installed from: https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
[√] VS Code (version 1.62.0) • VS Code at C:\Users\Hussen\AppData\Local\Programs\Microsoft VS Code • Flutter extension version 3.28.0
[√] Connected device (4 available) • SM M115F (mobile) • R9JN40LXMSJ • android-arm • Android 11 (API 30) • Windows (desktop) • windows • windows-x64 • Microsoft Windows [Version 10.0.19043.1288] • Chrome (web) • chrome • web-javascript • Google Chrome 95.0.4638.69 • Edge (web) • edge • web-javascript • Microsoft Edge 95.0.1020.40
• No issues found!`
Better Player version
Smartphone
Can you provide video which causes this error?
i hava a same problem, this is my video url: https://asterism02.blob.core.windows.net/kira-data-01/user/community_1681958791253062.mp4
Describe the bug video can 't be played
Expected behavior video can be played.
Flutter doctor [✓] Flutter (Channel stable, 2.2.3, on Linux, locale en_US.UTF-8) • Flutter version 2.2.3 at /media/ahmed/New Volume/flutter_linux_2.0.3-stable/flutter • Framework revision f4abaa0735 (9 weeks ago), 2021-07-01 12:46:11 -0700 • Engine revision 241c87ad80 • Dart version 2.13.4
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3) • Android SDK at /home/ahmed/Android/Sdk • Platform android-30, build-tools 30.0.3 • Java binary at: /media/ahmed/New Volume/android-studio/jre/bin/java • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593) • All Android licenses accepted.
[✓] Chrome - develop for the web • Chrome at google-chrome
[✓] Android Studio • Android Studio at /media/ahmed/New Volume/android-studio • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • android-studio-dir = /media/ahmed/New Volume/android-studio • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
[✓] VS Code (version 1.59.0) • VS Code at /usr/share/code • Flutter extension can be installed from: 🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected device (3 available) • Android SDK built for x86 (mobile) • emulator-5554 • android-x86 • Android 8.1.0 (API 27) (emulator) • Android SDK built for x86 64 (mobile) • emulator-5556 • android-x64 • Android 5.0.2 (API 21) (emulator) • Chrome (web)
Better Player version
Smartphone (please complete the following information):
Additional context I/art ( 4309): Background sticky concurrent mark sweep GC freed 18166(911KB) AllocSpace objects, 0(0B) LOS objects, 4% free, 17MB/18MB, paused 1.712ms total 119.050ms I/VideoCapabilities( 4309): Unsupported profile 4 for video/mp4v-es D/MediaCodecInfo( 4309): NoSupport [codec.profileLevel, avc1.64001E, video/avc] [OMX.google.h264.decoder, video/avc] [generic_x86_64, Android SDK built for x86_64, unknown, 21] D/MediaCodecInfo( 4309): NoSupport [codec.profileLevel, avc1.64001E, video/avc] [OMX.google.h264.decoder, video/avc] [generic_x86_64, Android SDK built for x86_64, unknown, 21] I/OMXClient( 4309): Using client-side OMX mux. E/ACodec ( 4309): [OMX.google.h264.decoder] storeMetaDataInBuffers failed w/ err -2147483648 I/art ( 4309): Rejecting re-init on previously-failed class java.lang.Class<com.google.android.exoplayer2.mediacodec.-$$Lambda$SynchronousMediaCodecAdapter$6rVPWL6LPrUurHA9gGPmM7irEkQ> I/art ( 4309): Rejecting re-init on previously-failed class java.lang.Class<com.google.android.exoplayer2.mediacodec.-$$Lambda$SynchronousMediaCodecAdapter$6rVPWL6LPrUurHA9gGPmM7irEkQ> E/ACodec ( 4309): [OMX.google.h264.decoder] ERROR(0x80001001) E/ACodec ( 4309): signalError(omxError 0x80001001, internalError -2147483648) E/MediaCodec( 4309): Codec reported err 0x80001001, actionCode 0, while in state 6 E/MediaCodecVideoRenderer( 4309): Video codec error E/MediaCodecVideoRenderer( 4309): java.lang.IllegalStateException E/MediaCodecVideoRenderer( 4309): at android.media.MediaCodec.native_dequeueInputBuffer(Native Method) E/MediaCodecVideoRenderer( 4309): at android.media.MediaCodec.dequeueInputBuffer(MediaCodec.java:983) E/MediaCodecVideoRenderer( 4309): at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter.dequeueInputBufferIndex(SynchronousMediaCodecAdapter.java:93) E/MediaCodecVideoRenderer( 4309): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:1209) E/MediaCodecVideoRenderer( 4309): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:845) E/MediaCodecVideoRenderer( 4309): at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:945) E/MediaCodecVideoRenderer( 4309): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:478) E/MediaCodecVideoRenderer( 4309): at android.os.Handler.dispatchMessage(Handler.java:98) E/MediaCodecVideoRenderer( 4309): at android.os.Looper.loop(Looper.java:135) E/MediaCodecVideoRenderer( 4309): at android.os.HandlerThread.run(HandlerThread.java:61) D/MediaCodecInfo( 4309): NoSupport [codec.profileLevel, avc1.64001E, video/avc] [OMX.google.h264.decoder, video/avc] [generic_x86_64, Android SDK built for x86_64, unknown, 21] E/ExoPlayerImplInternal( 4309): Playback error E/ExoPlayerImplInternal( 4309): com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/avc, avc1.64001E, -1, null, [640, 360, 29.970036], [-1, -1]), format_supported=NO_EXCEEDS_CAPABILITIES E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:555) E/ExoPlayerImplInternal( 4309): at android.os.Handler.dispatchMessage(Handler.java:98) E/ExoPlayerImplInternal( 4309): at android.os.Looper.loop(Looper.java:135) E/ExoPlayerImplInternal( 4309): at android.os.HandlerThread.run(HandlerThread.java:61) E/ExoPlayerImplInternal( 4309): Caused by: com.google.android.exoplayer2.video.MediaCodecVideoDecoderException: Decoder failed: OMX.google.h264.decoder E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.createDecoderException(MediaCodecVideoRenderer.java:1410) E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:864) E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:945) E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:478) E/ExoPlayerImplInternal( 4309): ... 3 more E/ExoPlayerImplInternal( 4309): Caused by: java.lang.IllegalStateException E/ExoPlayerImplInternal( 4309): at android.media.MediaCodec.native_dequeueInputBuffer(Native Method) E/ExoPlayerImplInternal( 4309): at android.media.MediaCodec.dequeueInputBuffer(MediaCodec.java:983) E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter.dequeueInputBufferIndex(SynchronousMediaCodecAdapter.java:93) E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:1209) E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:845) E/ExoPlayerImplInternal( 4309): ... 5 more E/ExoPlayerImplInternal( 4309): Disable failed. E/ExoPlayerImplInternal( 4309): java.lang.IllegalStateException E/ExoPlayerImplInternal( 4309): at android.media.MediaCodec.native_flush(Native Method) E/ExoPlayerImplInternal( 4309): at android.media.MediaCodec.flush(MediaCodec.java:662) E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter.flush(SynchronousMediaCodecAdapter.java:160) E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.flushCodec(MediaCodecRenderer.java:912) E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.flushOrReleaseCodec(MediaCodecRenderer.java:905) E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onDisabled(MediaCodecRenderer.java:761) E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onDisabled(MediaCodecVideoRenderer.java:483) E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.BaseRenderer.disable(BaseRenderer.java:176) E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.ExoPlayerImplInternal.disableRenderer(ExoPlayerImplInternal.java:1609) E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.ExoPlayerImplInternal.resetInternal(ExoPlayerImplInternal.java:1351) E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.ExoPlayerImplInternal.stopInternal(ExoPlayerImplInternal.java:1314) E/ExoPlayerImplInternal( 4309): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:571) E/ExoPlayerImplInternal( 4309): at android.os.Handler.dispatchMessage(Handler.java:98) E/ExoPlayerImplInternal( 4309): at android.os.Looper.loop(Looper.java:135) E/ExoPlayerImplInternal( 4309): at android.os.HandlerThread.run(HandlerThread.java:61) E/flutter ( 4309): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: PlatformException(VideoError, Video player had error com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/avc, avc1.64001E, -1, null, [640, 360, 29.970036], [-1, -1]), format_supported=NO_EXCEEDS_CAPABILITIES, null, null) E/flutter ( 4309):