google / ExoPlayer

This project is deprecated and stale. The latest ExoPlayer code is available in https://github.com/androidx/media
https://developer.android.com/media/media3/exoplayer
Apache License 2.0
21.75k stars 6.03k forks source link

H.265 HEVC High 10 profile support #10743

Open AnonymousWebHacker opened 2 years ago

AnonymousWebHacker commented 2 years ago

H.265 HEVC High 10 profile support

marcbaechinger commented 2 years ago

ExoPlayer support the sample formats that are supported by the underlying Android Media framework. That's not something which we can add on the player side because for efficient decoding a hardware decoder is required.

You can find the supported video sample formats on this Android page.

AnonymousWebHacker commented 2 years ago

My device does not support decode at the hardware level, but it does support software

If I use mpv-android, mx player ..etc, with software level decoding, I can play H265 HEVC videos, no problem

marcbaechinger commented 2 years ago

I don't think ExoPLayer supports this I'm afraid. There is the ffmpeg extension that uses software decoders but this only supports audio.

andro-jedi commented 1 year ago

@AnonymousWebHacker did you find a solution to play high profile videos using exoplayer?

AnonymousWebHacker commented 1 year ago

@AnonymousWebHacker did you find a solution to play high profile videos using exoplayer?

My problem was that I was using findroid , an android client from jellyfin. Findroid uses native exoplayer and mpv. Exoplayer works perfectly on devices that support hardware level encoding for hevc 10 bit. However, if your device is low-end, and does not have support at the hardware level, exoplayer does not work.

Temporary solution, in the findroid options, activate so that everything is played with mpv, and not with exoplayer

AnonymousWebHacker commented 1 year ago

@AnonymousWebHacker¿Encontraste una solución para reproducir videos de alto perfil usando exoplayer?

These guys from exoplayer refuse to support it, justifying that it can't be done, when an mpv or mx player does.

rup-sarma commented 1 year ago

I am facing same problem. I have developed Gix Player which can play HEVC or H.265 video smoothly on some devices using Exo player 2.17.1 but in some devices it can't play. My Question is to the dev of Exo player - how does MX player or some other player available on play store can play hevc video smoothly on low end devices. if you guys (exoplayer dev) don't know how Mx Player team do that then tell me or if you know also tell me

AnonymousWebHacker commented 1 year ago

@rupsharma01 When you are going to watch a 10 bit HEVC video on a high-end device, exoplayer should play it without problems. While on a low-end device, you can't. This happens because the high-end has hardware support for decoding the video, but in the case of the low-end, its hardware does not have support to play it.

For low-end devices, as they do not have support at the hardware level, the mpv or mxplayer software detects that the device does not have support at the hardware level, and then begins transcoding at the software level.

I don't understand how difficult it can be for exoplayer to detect whether it supports the hardware level or not, and if not, do the transcoding at the software level.