Pipeline error decode как исправить в яндекс браузере

  • Link to video player based on Hls.js: https://cloud.mail.ru/public/C8Gd/fUT1Q7Rxm
  • Link to playable M3U8 file: https://cloclo14.cloud.mail.ru/videowl/0p/C8Gd/fUT1Q7Rxm.m3u8
  • Hls.js version: 0.7.3, 0.7.4
  • Browser name/version: Yandex Browser 17.3.1.838 (64-bit) https://browser.yandex.ru
  • OS name/version: macOS Sierra 10.12.3
Steps to reproduce
  1. Open https://cloud.mail.ru/public/C8Gd/fUT1Q7Rxm in desktop Yandex Browser
  2. Press play button.
Expected behavior

The video successfully played.

Actual behavior

The video doesn’t play. video.error → MEDIA_ERR_DECODE, no hls errors.

But with Hls.js 0.6.21 everything works.

Console output
Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause(). 

media-iternals

[
  {
    "properties": {
      "render_id": 11,
      "player_id": 0,
      "pipeline_state": "kSuspended",
      "event": "WEBMEDIAPLAYER_CREATED",
      "url": "wallpaper://all/mountains/video",
      "total_bytes": 2876626,
      "streaming": false,
      "single_origin": true,
      "passed_cors_access_check": false,
      "range_header_supported": true,
      "info": "FFmpegDemuxer: created video stream, config codec: vp8 format: 2 profile: vp8 coded size: [1280,720] visible rect: [0,0,1280,720] natural size: [1280,720] has extra data? false encrypted? false",
      "duration": 22.967,
      "bitrate": 1002003,
      "found_audio_stream": false,
      "found_video_stream": true,
      "height": 720,
      "max_duration": 22.967,
      "start_time": 0,
      "time_base": "1/1000",
      "video_codec_name": "vp8",
      "video_format": "PIXEL_FORMAT_YV12",
      "video_is_encrypted": false,
      "width": 1280,
      "video_dds": false,
      "video_decoder": "FFmpegVideoDecoder"
    },
    "events": [
      {
        "time": 0,
        "key": "pipeline_state",
        "value": "kCreated"
      },
      {
        "time": 0.05500000715255737,
        "key": "event",
        "value": "WEBMEDIAPLAYER_CREATED"
      },
      {
        "time": 11.689000010490417,
        "key": "url",
        "value": "wallpaper://all/mountains/video"
      },
      {
        "time": 173.00800001621246,
        "key": "total_bytes",
        "value": 2876626
      },
      {
        "time": 173.0120000243187,
        "key": "streaming",
        "value": false
      },
      {
        "time": 173.0199999809265,
        "key": "single_origin",
        "value": true
      },
      {
        "time": 173.02200001478195,
        "key": "passed_cors_access_check",
        "value": false
      },
      {
        "time": 173.02399998903275,
        "key": "range_header_supported",
        "value": true
      },
      {
        "time": 208.56199997663498,
        "key": "pipeline_state",
        "value": "kStarting"
      },
      {
        "time": 237.98900002241135,
        "key": "info",
        "value": "FFmpegDemuxer: created video stream, config codec: vp8 format: 2 profile: vp8 coded size: [1280,720] visible rect: [0,0,1280,720] natural size: [1280,720] has extra data? false encrypted? false"
      },
      {
        "time": 239.31800001859665,
        "key": "duration",
        "value": 22.967
      },
      {
        "time": 239.34799998998642,
        "key": "bitrate",
        "value": 1002003
      },
      {
        "time": 239.34799998998642,
        "key": "found_audio_stream",
        "value": false
      },
      {
        "time": 239.34799998998642,
        "key": "found_video_stream",
        "value": true
      },
      {
        "time": 239.34799998998642,
        "key": "height",
        "value": 720
      },
      {
        "time": 239.34799998998642,
        "key": "max_duration",
        "value": 22.967
      },
      {
        "time": 239.34799998998642,
        "key": "start_time",
        "value": 0
      },
      {
        "time": 239.34799998998642,
        "key": "time_base",
        "value": "1/1000"
      },
      {
        "time": 239.34799998998642,
        "key": "video_codec_name",
        "value": "vp8"
      },
      {
        "time": 239.34799998998642,
        "key": "video_format",
        "value": "PIXEL_FORMAT_YV12"
      },
      {
        "time": 239.34799998998642,
        "key": "video_is_encrypted",
        "value": false
      },
      {
        "time": 239.34799998998642,
        "key": "width",
        "value": 1280
      },
      {
        "time": 239.8080000281334,
        "key": "video_dds",
        "value": false
      },
      {
        "time": 239.81300002336502,
        "key": "video_decoder",
        "value": "FFmpegVideoDecoder"
      },
      {
        "time": 239.86900001764297,
        "key": "pipeline_state",
        "value": "kPlaying"
      },
      {
        "time": 20013.158999979496,
        "key": "pipeline_state",
        "value": "kSuspending"
      },
      {
        "time": 20015.290000021458,
        "key": "pipeline_state",
        "value": "kSuspended"
      }
    ]
  },
  {
    "properties": {
      "render_id": 9,
      "player_id": 4,
      "pipeline_state": "kStopped",
      "event": "WEBMEDIAPLAYER_CREATED",
      "url": "blob:https://cloud.mail.ru/fa4f62a0-255b-4c64-9507-67b5f3e061f6",
      "info": "Video codec: avc1.42C01E",
      "found_audio_stream": true,
      "audio_codec_name": "aac",
      "duration": 127,
      "found_video_stream": true,
      "video_codec_name": "h264",
      "audio_dds": false,
      "audio_decoder": "ATAudioDecoder",
      "video_dds": false,
      "video_decoder": "GpuVideoDecoder",
      "error": "audio error during playing, status: pipeline: decode error",
      "pipeline_error": "pipeline: decode error"
    },
    "events": [
      {
        "time": 0,
        "key": "pipeline_state",
        "value": "kCreated"
      },
      {
        "time": 0.0350000262260437,
        "key": "event",
        "value": "WEBMEDIAPLAYER_CREATED"
      },
      {
        "time": 0.2590000033378601,
        "key": "url",
        "value": "blob:https://cloud.mail.ru/fa4f62a0-255b-4c64-9507-67b5f3e061f6"
      },
      {
        "time": 3.272000014781952,
        "key": "pipeline_state",
        "value": "kStarting"
      },
      {
        "time": 473.7470000386238,
        "key": "info",
        "value": "Audio codec: mp4a.40.2. Sampling frequency: 44100Hz. Sampling frequency(Extension): 44100Hz. Channel layout: 3."
      },
      {
        "time": 473.78400003910065,
        "key": "found_audio_stream",
        "value": true
      },
      {
        "time": 473.78600001335144,
        "key": "audio_codec_name",
        "value": "aac"
      },
      {
        "time": 473.81600004434586,
        "key": "duration",
        "value": 127
      },
      {
        "time": 474.5440000295639,
        "key": "info",
        "value": "Video codec: avc1.42C01E"
      },
      {
        "time": 474.5720000267029,
        "key": "found_video_stream",
        "value": true
      },
      {
        "time": 474.5730000138283,
        "key": "video_codec_name",
        "value": "h264"
      },
      {
        "time": 509.22600001096725,
        "key": "audio_dds",
        "value": false
      },
      {
        "time": 509.2300000190735,
        "key": "audio_decoder",
        "value": "ATAudioDecoder"
      },
      {
        "time": 509.92400002479553,
        "key": "video_dds",
        "value": false
      },
      {
        "time": 509.92800003290176,
        "key": "video_decoder",
        "value": "GpuVideoDecoder"
      },
      {
        "time": 509.99000000953674,
        "key": "pipeline_state",
        "value": "kPlaying"
      },
      {
        "time": 511.7770000100136,
        "key": "error",
        "value": " Large timestamp gap detected; may cause AV sync to drift. time:92879us expected:23219us delta:69660us"
      },
      {
        "time": 511.8340000510216,
        "key": "error",
        "value": "audio decode error"
      },
      {
        "time": 511.841000020504,
        "key": "error",
        "value": "audio error during playing, status: pipeline: decode error"
      },
      {
        "time": 511.95700001716614,
        "key": "pipeline_error",
        "value": "pipeline: decode error"
      },
      {
        "time": 512.3540000319481,
        "key": "pipeline_state",
        "value": "kStopping"
      },
      {
        "time": 512.5260000228882,
        "key": "pipeline_state",
        "value": "kStopped"
      }
    ]
  }
]

После обновления браузера Яндекс перестали воспроизводится видео как на некоторых сайтах так и на Youtub. Сообщил об ошибках админам браузера, получил ответ который помог мне решить данную проблему.
Может кому и поможет из новичков :=)
Вот моя переписка и советы:

Открыть терминал Вы можете, например, с помощью сочетания клавиш Ctrl+Alt+T. Затем набрать команду: yandex-browser-beta.
Вот что мне выдало в терминале:
Уголок новичка: Решение проблем с кодеками в браузере Яндекс после очередного его обновления.
Уголок новичка: Решение проблем с кодеками в браузере Яндекс после очередного его обновления.
Уголок новичка: Решение проблем с кодеками в браузере Яндекс после очередного его обновления.

Спасибо за информацию! Судя по ней, в системе установлена устаревшая версия кодеков, актуальная на данный момент уже 71.0.3578. Проблема с видео возникает по этой причине. Дело в том, что для корректной работы версия библиотеки libffmpeg.so должна соответствовать версии Chromium, которая лежит в основе той или иной версии Яндекс.Браузера.

Попробуйте, пожалуйста, скачать последний доступный deb-пакет packages.ubuntu.com/xenial-updates/chromium-codecs-ffmpeg-extra, извлечь оттуда библиотеку libffmpeg.so и положить в /opt/yandex/browser-beta/.

Извлечь libffmpeg.so из пакета можно так:

ar -x chromium-codecs-ffmpeg-extra_70.0.3538.77-0ubuntu0.16.04.1_amd64.deb
rm chromium-codecs-ffmpeg-extra_70.0.3538.77-0ubuntu0.16.04.1_amd64.deb control.tar.gz debian-binary
tar xf data.tar.xz
mv usr/lib/chromium-browser/libffmpeg.so.
rm -rf usr data.tar.xz

После всех выполненных операций всё заработало.

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Для воспроизведения видео в браузере на Android обычно требуется Flash Player. Однако проблемы могут возникать даже при наличии необходимых компонентов или использовании других технологий воспроизведения – например, через проигрыватель HTML5.

Данная статья подходит для всех брендов, выпускающих телефоны на Android 11/10/9/8: Samsung, HTC, Lenovo, LG, Sony, ZTE, Huawei, Meizu, Fly, Alcatel, Xiaomi, Nokia и прочие. Мы не несем ответственности за ваши действия.

Внимание! Вы можете задать свой вопрос специалисту в конце статьи.

Установка Flash Player

В современных браузерах Flash Player встроен по умолчанию. Но если вы пользуетесь обозревателем, который установлен на Android по умолчанию, то в нем может не оказаться нужного компонента. Единственный способ решения проблемы – использовать другой браузер. Скачайте из Play Market один из перечисленных веб-обозревателей:

  • Opera.
  • Google Chrome.
  • UC Browser.
  • Dolphin Browser.
  • Maxthon Browser.

После установки браузера проверьте, воспроизводится ли в нем видео. Если проблема заключалась в отсутствии Flash Player, то использование другого веб-обозревателя ее решит.

Ни один браузер не проигрывает видео на Android

Увеличить

Отдельно Flash Player установить на Android нельзя – такая возможность не поддерживается, начиная с версии Android 4.0. Компонента даже нет в Play Market. Вы можете скачать его с сайта Adobe и установить из APK-файла, но для работы все равно понадобится сторонний браузер – например, Dolphin Browser.

Использование клиентов

Если проблемы возникают при воспроизведении видео на YouTube, установите на Android официальный клиент видеохостинга. Это поможет обнаружить источник ошибки. Если через приложение видео воспроизводится, а в браузере нет ни изображения, ни звука, следует попробовать скачать другой веб-обозреватель.

Ни один браузер не проигрывает видео на AndroidНужна помощь?

Не знаешь как решить проблему в работе своего гаджета и нужен совет специалиста? На вопросы отвечает Алексей, мастер по ремонту смартфонов и планшетов в сервисном центре.Напиши мне »

Для просмотра видео ВКонтакте, Twitter или Instagram также не требуются дополнительные компоненты. Ролики воспроизводятся внутри приложений, не перебрасывая пользователя в браузер.

Читайте Как скачать видео из Инстаграма на телефон Android

Нет видео, но есть звук

Отсутствие Flash – не единственная причина того, что ни один браузер не проигрывает видео на Андроид. Если проблемы возникают и в клиентах соцсетей и приложении YouTube, то причину следует искать в модификации отображения и наложениях.

Если в последнее время вы использовали приложения или включали встроенные функции для изменения цветовой температуры, то отключите их или удалите программы для цветокоррекции. Обратите внимание на опции «Инверсия цветов» и «Коррекция цвета» в настройках Android. Найти их можно в разделе «Спец. возможности».

Ни один браузер не проигрывает видео на Android

Увеличить

Для другой версии Android это будет: Настройки — Специальные возможности — Зрение — Настройка цвета и Негатив.

Ни один браузер не проигрывает видео на Android

Увеличить

Наложения связаны с работой сторонних приложений – это могут быть программы для установки родительского контроля, блокировщики, утилиты для добавления элементов управления. Суть наложений в том, что они выводятся поверх интерфейса Android. При воспроизведении видео это может вызывать эффект черного экрана.

На Android нет звука в фильмах

Google Play: Приложение не поддерживается на вашем устройстве

Как сделать запись экрана телефона Android

Если вы не знаете, были ли установлены такие приложения на Android, перезагрузите телефон в безопасном режиме.

  1. Удерживайте кнопку питания, пока не появится меню с вариантом «Отключить».
  2. Нажмите на пункт «Отключить» и держите палец.
  3. Появится окно «Переход в безопасный режим». Нажмите «ОК».
  4. Дождитесь выключения телефона и повторной загрузки системы.

Ни один браузер не проигрывает видео на Android

Увеличить

Суть безопасного режима в том, что система загружается без установленных приложений. Если здесь видео воспроизводится, то перезагрузите устройство в нормальном режиме и удалите приложения, которые могут создавать наложения.

Читайте Приложение для скачивания видео с YouTube на телефон Android

Другие способы исправления ошибки

Если способы, указанные выше, не помогли решить проблему, попробуйте применить следующие методы:

  1. Если видео не воспроизводится на Android 5 или 5.1, включите режим разработчика и переключите потоковый проигрыватель с AwesomePlayer на NUPlayer или наоборот.
  2. Попробуйте отключить опции разработчика, отвечающие на аппаратное ускорение визуализации.
  3. Если видео не воспроизводится только в одном приложении (например, в клиенте YouTube), откройте раздел «Приложения» в настройках, найдите проблемную программу и очистите ее кэш.

очистка кеша ютуб

Увеличить

Кроме того, на старых устройствах, работающих на процессорах MTK, иногда приходится сталкиваться с тем, что видео перестает работать при выборе высокого разрешения. Единственный способ решить эту проблему – понизить разрешение до минимального уровня.

Мастер Николай

АвторМастер Николай

Инженер по ремонту мобильной и компьютерной техники в специализированном сервисном центре, г. Москва. Непрерывный опыт работы с 2010 года.
Есть вопросы? Задавайте в комментариях к статье. Отвечать стараюсь максимально быстро вам на указанную почту. Каждый случай индивидуален и поэтому очень важно, чтобы вы максимально расписали свою проблему и какая у вас модель устройства.

What version of Hls.js are you using?

0.13.1

What browser and OS are you using?

Chrome (This issue does not appear when using in the hls.js demo page on either Firefox or Safari)

Test stream:

https://static.realeyes.cloud/53_source_92720_361823_hls_1765618_558/53_source_92720_361823_hls_1765618_558.m3u8

https://hls-js.netlify.com/demo/?src=https%3A%2F%2Fstatic.realeyes.cloud%2F53_source_92720_361823_hls_1765618_558%2F53_source_92720_361823_hls_1765618_558.m3u8&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsImR1bXBmTVA0IjpmYWxzZSwibGV2ZWxDYXBwaW5nIjotMSwibGltaXRNZXRyaWNzIjotMX0=

Checklist

  • The issue observed is not already reported by searching on Github under https://github.com/video-dev/hls.js/issues
  • The issue occurs in the stable client on https://hls-js.netlify.com/demo and not just on my page
  • The issue occurs in the latest client on https://hls-js-latest.netlify.com/demo and not just on my page
  • The stream has correct Access-Control-Allow-Origin headers (CORS)
  • There are no network errors such as 404s in the browser console when trying to play the stream

Steps to reproduce

  1. Please provide clear steps to reproduce your problem
    Click the link to the hls.js demo page provided and look in the console logs. This error only occurs on chrome browsers but plays fine in Firefox and Safari (although the warnings still exist)
  2. If the bug is intermittent, give a rough frequency

Expected behavior

No PIPELINE_ERROR_DECODE: and the ad plays through the whole 30s

Actual behavior

On chrome the PIPELINE_ERROR_DECODE: occurs and the stream crashes

Console output

[log] > parsed codec:mp4a.40.5,rate:44100,nb channel:2
[log] > AAC: align PTS for overlapping frames by -23
[warn] > parsing error:AAC PES did not start with ADTS header,offset:6
Error event: {type: «mediaError», details: «fragParsingError», fatal: false, reason: «AAC PES did not start with ADTS header,offset:6», frag: Fragment, …}
[log] > audio sampling rate : 44100
[log] > InitPTS for cc: 0 found from video track: 129916
[log] > creating sourceBuffer(audio/mp4;codecs=mp4a.40.2)
[log] > creating sourceBuffer(video/mp4;codecs=avc1.640028)
[log] > main track:audio,container:audio/mp4,codecs[level/parsed]=[mp4a.40.2/mp4a.40.5]
[log] > main track:video,container:video/mp4,codecs[level/parsed]=[avc1.640028/avc1.640028]
[log] > Parsed audio,PTS:[0.000,5.805],DTS:[0.000/5.805],nb:250,dropped:0
[log] > Parsed video,PTS:[0.023,5.996],DTS:[0.000/5.963],nb:180,dropped:0
[log] > main stream-controller: PARSING->PARSED
[log] > main buffered : [0.023,5.805]
[log] > latency/loading/parsing/append/kbps:483/3987/55/16/5478
[log] > main stream-controller: PARSED->IDLE
[log] > Loading 1 of [0 ,4],level 6, currentTime:5.805,bufferEnd:5.805
[log] > main stream-controller: IDLE->FRAG_LOADING
[log] > target start position not buffered, seek to buffered.start(0) 3.118119 from current time 0
[log] > media seeking to 3.118
[log] > media seeked to 3.118
[log] > recoverMediaError
[log] > detachMedia
[log] > media source detaching
[log] > main stream-controller: FRAG_LOADING->STOPPED
[log] > audio stream:IDLE->STOPPED
[log] > attachMedia
main.js:740 The video playback was aborted due to a corruption problem or because the video used features your browser did not support — PIPELINE_ERROR_DECODE: Failed to send audio packet for decoding: timestamp=3390113 duration=23219 size=5774 side_data_size=0 is_key_frame=1 encrypted=0 discard_padding (us)=(0, 0)
Paste the contents of the browser console here.

[log] > parsed codec:mp4a.40.5,rate:44100,nb channel:2
[log] > AAC: align PTS for overlapping frames by -23
[warn] > parsing error:AAC PES did not start with ADTS header,offset:6
Error event: {type: "mediaError", details: "fragParsingError", fatal: false, reason: "AAC PES did not start with ADTS header,offset:6", frag: Fragment, …}
[log] > audio sampling rate : 44100
[log] > InitPTS for cc: 0 found from video track: 129916
[log] > creating sourceBuffer(audio/mp4;codecs=mp4a.40.2)
[log] > creating sourceBuffer(video/mp4;codecs=avc1.640028)
[log] > main track:audio,container:audio/mp4,codecs[level/parsed]=[mp4a.40.2/mp4a.40.5]
[log] > main track:video,container:video/mp4,codecs[level/parsed]=[avc1.640028/avc1.640028]
[log] > Parsed audio,PTS:[0.000,5.805],DTS:[0.000/5.805],nb:250,dropped:0
[log] > Parsed video,PTS:[0.023,5.996],DTS:[0.000/5.963],nb:180,dropped:0
[log] > main stream-controller: PARSING->PARSED
[log] > main buffered : [0.023,5.805]
[log] > latency/loading/parsing/append/kbps:483/3987/55/16/5478
[log] > main stream-controller: PARSED->IDLE
[log] > Loading 1 of [0 ,4],level 6, currentTime:5.805,bufferEnd:5.805
[log] > main stream-controller: IDLE->FRAG_LOADING
[log] > target start position not buffered, seek to buffered.start(0) 3.118119 from current time 0 
[log] > media seeking to 3.118
[log] > media seeked to 3.118
[log] > recoverMediaError
[log] > detachMedia
[log] > media source detaching
[log] > main stream-controller: FRAG_LOADING->STOPPED
[log] > audio stream:IDLE->STOPPED
[log] > attachMedia
main.js:740 The video playback was aborted due to a corruption problem or because the video used features your browser did not support - PIPELINE_ERROR_DECODE: Failed to send audio packet for decoding: timestamp=3390113 duration=23219 size=5774 side_data_size=0 is_key_frame=1 encrypted=0 discard_padding (us)=(0, 0)

For media errors reported on Chrome browser, please also paste the output of chrome://media-internals

Поиск видео (изменение его текущего времени, установка его явно, а не использование функции воспроизведения) может привести к его выбросу

MediaError {code: 3, message: "PIPELINE_ERROR_DECODE: video decode error"}

Это происходит только в Chrome и Windows.

Мне удалось исправить, изменив его, отключив опцию Chrome «использовать аппаратное ускорение, когда доступно» в настройках и затем сбросить Chrome.

Однако мне бы хотелось, чтобы какое-то постоянное решение не требовало установки пользователем настроек браузера.

Мой сервер возвращает 206, так как этот ответ указывает qaru.site/questions/836188/… Я жду событий загрузки, видео отлично подходит для игры и иногда пропускает работы. Похоже, что ошибка происходит чаще, если я пытаюсь искать повторения, очень быстро. У меня есть слушатель, который не позволяет клиенту искать видео, если предыдущий вызов setCurrentTime не завершился (искаженное событие)

На стороне сервера я использую node + express. Мои видео находятся в статической папке, и я обслуживаю их, используя

app.use('/videos',validateToken,express.static('videos'))

validateToken проверяет токен JWT в URL-адресе

Понравилась статья? Поделить с друзьями:
  • Как правильно составить диаграмму в эксель
  • Как найти самый дешевый рейс
  • Как найти уникальное торговое предложение
  • Фильм как солдат нашел фото девушки
  • Как найти троян на компе