videojs / video.js

Video.js - open source HTML5 video player
https://videojs.com
Other
38.18k stars 7.47k forks source link

MEDIA_ERR_DECODE: The media playback was aborted due to a corruption problem or because the media used features your browser did not support. #8561

Open bonniesimon opened 10 months ago

bonniesimon commented 10 months ago

Description

The video format that we have is (using ffprobe):

ffprobe version 6.1.1-tessus  https://evermeet.cx/ffmpeg/  Copyright (c) 2007-2023 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input/22ca53f1-1db4-40a3-a5ce-c47f0874a0d4-12jan.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf60.16.100
  Duration: 00:01:11.21, start: 0.000000, bitrate: 1178 kb/s
  Stream #0:0[0x1](eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1440x900, 1047 kb/s, SAR 1:1 DAR 8:5, 14.13 fps, 29.75 tbr, 16k tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](eng): Audio: opus (Opus / 0x7375704F), 48000 Hz, mono, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]

The above MP4 is generated using

./ffmpeg -i input.webm -c:v copy -c:a copy -movflags +faststart outputmp4

This is the error that is showing up in chrome/media-internals: image

The issue would be solved if I transcode the footage from H264 (Baseline) to H264 (High) using the following:

./ffmpeg -i input.webm  -movflags faststart  -profile:v high  -level 4.2  output.mp4

Reduced test case

I am not able to set this up at the moment. Sorry. I will provide a a test case if this issue gets traction

Steps to reproduce

Try to seek the seekbar multiple times (or even at the first seek) and the error would appear

Errors

VIDEOJS: ERROR: (CODE:3 MEDIA_ERR_DECODE) The media playback was aborted due to a corruption problem or because the media used features your browser did not support. MediaError {code: 3, message: 'The media playback was aborted due to a corruption…media used features your browser did not support.'}

image

What version of Video.js are you using?

8.9

Video.js plugins used.

hotkeys

What browser(s) including version(s) does this occur with?

Chrome 120

What OS(es) and version(s) does this occur with?

Ventura 13.0.1

welcome[bot] commented 10 months ago

👋 Thanks for opening your first issue here! 👋

If you're reporting a 🐞 bug, please make sure you include steps to reproduce it. We get a lot of issues on this repo, so please be patient and we will get back to you as soon as we can. To help make it easier for us to investigate your issue, please follow the contributing guidelines.

mister-ben commented 10 months ago

There's nothing Video.js could do here unfortunately, the error is at a lower level. MP4 playback is handled natively by the browser, the Video.js error is just reporting the error from the video element.

bonniesimon commented 10 months ago

Is there someone I could consult to know what could've gone wrong here. Also is there someplace else (maybe in the browser repo) where you think I should raise this concern/issue?

DianneCT commented 10 months ago

I've started getting this a lot with brighteon.com videos, I think just since updating Firefox to the latest couple of versions. However I also get it with Brave and Tor. Will not use google chrome or safari, so please rather you didn't suggest them.

But I'm not a coder and so all those instructions above are meaningless to me. Can someone say simply in plain English what this error means and how to fix it? Thanks.

tinaoct1 commented 7 months ago

I am seeing a lot of this on chrome and edge. But it works fine on firefox. I am using videojs to have a few audio players in my vue application. The issue goes away if the player is muted. So it seems like something related to some new versions of chromium

KJ-Chiu commented 5 months ago

I'm facing the same issue and to mute the video does not work for me. Not every video from my customer will face this issue, but once a video stuck at specific timestamp, it will always stuck at the same place no matter I re-upload it to any cloud storage space.

Using chrome's default player will face the same issue too and everything works fine on firefox. Therefore I think it might not be the issue of videojs, just I have no idea how to solve the issue either...

lcareto commented 4 months ago

Any update on that issue?

DianneCT commented 4 months ago

No, Icareto, no updates, including from the originators of the videos. They say to click the audio option, then click into the video window, then click the video option, and sometimes that works but not always. I have the problem on both laptop and phone running different OS and different browsers so I don't think the problem is at my end.

ritingliudd01 commented 4 months ago

This issue might be related to server side where video files are hosted.

image

https://videojs.com/guides/troubleshooting/