Android Media Framework and HEVC Container support. - MX Player

Hi there, I was understanding how the MX Player handle the Decoding settings for various types of Video Formats.
I figured out that on default settings all videos are played by HW DECODER And if it fails then SW OR HW+ DECODER is used.
Android Media Framework supports H.265 VIDEO IN ONLY MPEG-4 CONTAINER as
https://developer.android.com/guide/topics/media/media-formats.html
So when I play H.265 Video in MKV CONTAINER It is still played via HW Decoder in MX Player.
How??

xdahimanshu said:
Hi there, I was understanding how the MX Player handle the Decoding settings for various types of Video Formats.
I figured out that on default settings all videos are played by HW DECODER And if it fails then SW OR HW+ DECODER is used.
Android Media Framework supports H.265 VIDEO IN ONLY MPEG-4 CONTAINER as
https://developer.android.com/guide/topics/media/media-formats.html
So when I play H.265 Video in MKV CONTAINER It is still played via HW Decoder in MX Player.
How??
Click to expand...
Click to collapse
Thanks for sharing your findings with us.
In most of the modern Android devices, android media framework can handle HEVC videos streams on Matroska container natively. It seems that this documentation is not updated to modern android versions or it is applicable only to nexus and pixel devices.

Oh.
Ok.
Thanks for solving the query.

Related

Webm vp8 [hw]

Do .webm videos playback with hardware acceleration on your o3d i think they supposed to en.m.wikipedia.org/wiki/WebM but i get video format not supported but it has thumbnail is it the codec or container .The Only Way to play them is through mx video player

[Feature Request] .ts file is not HW-accelerated but repacked to MKV is

Hello,
When I try to play .ts file (e.g. HBO HD movie) recorded using DVB-C set-top box, MXPlayer uses SW mode and playback looks like a slideshow.
So I have repacked the same movie to MKV container using mkvmerge and followed the advice from this forum to configure MXPlayer to use HW acceleration for video and SW mode using custom codec for audio (for AC3 decoding). Playback is perfectly smooth in this case, because MXPlayer uses HW acceleration.
The original TS file contains:
- H264 1080i PAL 50fps track
- 1st AC3 audio track
- 2nd AC3 audio track
- 1st DVB subtitle track
- 2nd DVB subtitle track
The repacked MKV file contains:
- the same H264 track (w/o recoding)
- the same 1st AC3 audio track (w/o recoding)
(mkvmerge cannot convert DVB subtitles, so in MKV file the subtitle track is missing)
I have the Acer Iconia A1 810 tablet.
Repacking to MKV is an option to play my recordings smoothly, but I'd like to play the original TS files from SMB share, because my archive is full of such TS files. Repacking is hard and slow and additionally it'd throwed the subtitles away.
Please, is it possible to modify MXPlayer so it can play also the TS files in HW accelerated mode?
Thank you in advance!
I doubt it, because the ts container can contain so much more incompatible formats and as you probably know, AC3 for instance is not hardware supported on most devices. You cant go and force hardware decoding for something that might-half-work, but you always have the option to select your decoder and try. I'm afraid you'll just have to accept that there's some things your hardware can't decode.
Note that the smooth playback is not a problem in my case. Repacked in MKV container, my hardware plays both the mentioned tracks (H264+AC3) smoothly.
What I ask the MXPlayer team for, is to enable the same MXPlayer behavior for the original TS container file containing the same tracks (H264/AC3).
In my opinion, the MKV container is the same case as the TS container. MKV file can also contain almost anything.
I've thought that the decision to use (or not to use) HW acceleration for a video track should come after a splitter, on the basis of the video format and should not be derived from a container file format.
Hmm, that is odd. Sorry I assumed the AC3 track would've been incompatible, as it is with many androids. I always thought MX Player did decide on HW acceleration independent of containers. I can only guess some track contained in the .ts is incompatible.
But have your tried forcing HW playback (or HW+) on the .ts file yet? You can select this in the top right while a video is playing.
I thought that HW support of different containers depended on the device. Not sure.
I would think that when you select HW, it not only passes the decoding, but also the container splitting, to the hardware, which is my guess at why HW won't support different containers since the hardware doesn't know how to split the container.
@bleu8888 could you provide some insight into this?
CDB-Man said:
I thought that HW support of different containers depended on the device. Not sure.
I would think that when you select HW, it not only passes the decoding, but also the container splitting, to the hardware, which is my guess at why HW won't support different containers since the hardware doesn't know how to split the container.
@bleu8888 could you provide some insight into this?
Click to expand...
Click to collapse
Thank you CDB-Man and Logic_ for your thoughts.
In MX Player, it is possible to use HW decoder for a video track in parallel (and in sync) with SW decoder for an audio track. That is why I hope, that a container-splitting can be done independently on choice which decoder will be used for the given track.
My understnading is that splitting is done by whatever is set as the video decoder in MX. Audio decoder just receives the audio stream from whatever splitter is used. It's not that SW audio runs "in parallel" with HW video per se; SW or HW audio just receives an audio stream from whatever is used as the container splitter.
Sorry, my previous post was probably somewhat misleading.
It was reaction to your post:
CDB-Man said:
I thought that HW support of different containers depended on the device. Not sure.
I would think that when you select HW, it not only passes the decoding, but also the container splitting, to the hardware, which is my guess at why HW won't support different containers since the hardware doesn't know how to split the container.
Click to expand...
Click to collapse
I wanted to say, that from the fact, that video can be independently decoded by HW and audio by SW, I presume, that splitting can also be done independently - by SW - while maintaining the players ability to pass video track decoding to HW.
Hi KodloN,
Did you try hw+ decoder? hw decoder is just stock decoder which has no chance to be improved at all.
If you it still does not work with hw+ decoder, please send me (to [email protected]) a sample .ts file that cannot be played with hw+ decoder.
Thanks
bleu8888 said:
Hi KodloN,
Did you try hw+ decoder? hw decoder is just stock decoder which has no chance to be improved at all.
If you it still does not work with hw+ decoder, please send me (to [email protected]) a sample .ts file that cannot be played with hw+ decoder.
Thanks
Click to expand...
Click to collapse
Hi bleu8888,
Yes, I've tried hw+ decoder, below are results:
1) The original TS file (HBO_HD recording)
SW decoder only. Trying to switch to HW or HW+ decoder falls back to SW with error message "Cannot play this video with H/W(+) decoder".
2) TS file in which the DVB subtitle track and the Czech audio track were removed (repacked by DVBViewer-TSPlayer)
HW+ decoder is functional, but playback is sluggish on my Acer Iconia Tab A1-810 (similar performance as SW decoder playback)
HW decoder cannot play this video.
3) MKV file created from the original TS file using mkvmerge
HW decoder is functional, perfect smooth playback
HW+ decoder cannot play this video
I will send you a link to all three files to the specified email.
Thank you in advance!
Hi,
Would you try latest test build from following link?
.ts hw+ playback is improved in this test build but I'm not sure your issue is fixed because this issue looks like happening only on MediaTek platforms and I do not have device having MediaTek playform.
(Please note that hw playback is not changed though)
https://sites.google.com/site/mxvpen/translation/test-build
BTW, DVB subtitle positioning issue is also fixed.
Feedback will be appreacited !
Thanks
KodloN said:
Hi bleu8888,
Yes, I've tried hw+ decoder, below are results:
1) The original TS file (HBO_HD recording)
SW decoder only. Trying to switch to HW or HW+ decoder falls back to SW with error message "Cannot play this video with H/W(+) decoder".
2) TS file in which the DVB subtitle track and the Czech audio track were removed (repacked by DVBViewer-TSPlayer)
HW+ decoder is functional, but playback is sluggish on my Acer Iconia Tab A1-810 (similar performance as SW decoder playback)
HW decoder cannot play this video.
3) MKV file created from the original TS file using mkvmerge
HW decoder is functional, perfect smooth playback
HW+ decoder cannot play this video
I will send you a link to all three files to the specified email.
Thank you in advance!
Click to expand...
Click to collapse

[Q] Cannot play HEVC files on my RK3288

Hi everyone,
Hoping someone can help
I just bought an Android TV Box featuring the RK3288 SoC and I cannot get MX Player to play the standard HEVC's (Sintel, Kazu, Tears of Steel etc).
They are just resulting in a black screen with audio only using the HW decoder, I tried activating the HW+ decoder but it says it's not available.
Any ideas? The files play fine in HW mode on Kodi.
Thanks,
Steve
I dont know about tv box. HW is not supported for HEVC. SW Decoder can play HEVC in my mobile. Have you switch to sw decoder?
SW is too stuttery to be of any use. The weird thing is I know that others can playback HEVC on theis SoC on MX Player so there is obviously something I'm missing...
It depends.
H/W decoder uses android's mediaplayer API to play the video. In short it will be similar to stock player. Some devices natively support HEVC. So, they can play HEVC in H/W decoder.
In some cases, the SOC may support HEVC decoding. But, the OEM may disable it to avoid patent issue or to save licensing fees.
If it's not natively supported, S/W decoder is the only option. But, in this entire decoding will be done on CPU. So, the performance will be purely depends on CPU power. It may be laggy on HEVC/HD videos.

Audio and Video out of sync

I have a number of videos with the following properties. Their video frame rate is 30 at 720p with codec of H.264 part 10, using Lavf57.27.100 to encode. The audio is AAC at 48kHz..
I played these videos on different number of android devices using MX Player with HW decoding. The video is delayed by a second or two. But with HW+. things seem ok.
I played these same videos on the same android devices using BS Player. The video and the audio are perfectly in sync.
How come? Please help.
BS uses a implementation similar to HW+ as default. So, you will get the result like HW+.
In HW decoder, MX Player uses the mediaplayer implementation from android itself. MX Player's control on it is very limited.
If HW+ works fine, you may just use it. From 1.9.0 HW+ will be enabled by default for all users with android 5.0+. But, HW will be the default one as usual.

[Bug]Video fast

The video is not playing properly in mx player.The video is playing fast.The same file is working perfectly in vlc.Select hindi audio.Sample file is attached
Someone
dhruvdave said:
Someone
Click to expand...
Click to collapse
In the sample video, the video track (hi) itself has problems.
We have checked with VLC too, there is no audio at all (in both PC & Android) when Hindi audio track is selected.
HW decoder is basically a wrapper around Android's in-built mediaplayer. Looks like android mediaplayer couldn't handle such videos.
HW+ & SW are MX's Own implementation. You can check that when the Korean language is selected or audio track is disabled MX Player's HW+ & SW works well.
Thirumalai.K said:
In the sample video, the video track (hi) itself has problems.
We have checked with VLC too, there is no audio at all (in both PC & Android) when Hindi audio track is selected.
HW decoder is basically a wrapper around Android's in-built mediaplayer. Looks like android mediaplayer couldn't handle such videos.
HW+ & SW are MX's Own implementation. You can check that when the Korean language is selected or audio track is disabled MX Player's HW+ & SW works well.
Click to expand...
Click to collapse
Ok.Thanks
I'm making a video chat app and need information on how to play videos depending on the device. Does MX Player work? Thank you!

Categories

Resources