[Bug]Color space and component range info ignored by decoders - MX Player

Hello!
In videos (with any decoder selected - SW/HW/HW+) a wrong colorspace (bt.601 instead of bt.709) and component range (Limited instead of Full) are used at the same time when decoding (checked in VirtualDub2 by changing Decode Format settings respectively). It looks like information about them from video file is ignored. Video - mkv h264 high L5.1, yuv420p.
Color Format in options doesn't affect anything.
On a PC in MPC (all settings default, Enhanced Video Renderer (custom presenter)) the colors are correct.
Video was rendered with next x264 settings:
Code:
--range pc --colormatrix bt709
In mediainfo:
Code:
Color range : Full
Matrix coefficients : BT.709
Question: is there a way to force custom colorspace and component range for decoders?

vice2 said:
Hello!
In videos (with any decoder selected - SW/HW/HW+) a wrong colorspace (bt.601 instead of bt.709) and component range (Limited instead of Full) are used at the same time when decoding (checked in VirtualDub2 by changing Decode Format settings respectively). It looks like information about them from video file is ignored. Video - mkv h264 high L5.1, yuv420p.
Color Format in options doesn't affect anything.
On a PC in MPC (all settings default, Enhanced Video Renderer (custom presenter)) the colors are correct.
Video was rendered with next x264 settings:
In mediainfo:
Question: is there a way to force custom colorspace and component range for decoders?
Click to expand...
Click to collapse
HW decoder just makes use of android mediaplayer API. And, HW+ uses the same decoder component from the device, but in mx player's media framework. In both cases, color conversion is handled by the system.
SW decoder mainly relies on ffmpeg.
So, if you facing issues with all 3 decoders, it's less likely to be an issue with the app. Would you mind sharing a sample with us at [email protected]? It will hep us to investigate further.
Thank you.

Thirumalai.K said:
HW decoder just makes use of android mediaplayer API. And, HW+ uses the same decoder component from the device, but in mx player's media framework. In both cases, color conversion is handled by the system.
SW decoder mainly relies on ffmpeg.
So, if you facing issues with all 3 decoders, it's less likely to be an issue with the app. Would you mind sharing a sample with us at [email protected]? It will hep us to investigate further.
Thank you.
Click to expand...
Click to collapse
After some research, sadly, VLC and VLC-based players like MX player don't support full range rec.709 videos. I'll have to look for other software because all of my videos are rendered in full range. Expert's commenrary:
MPC is displaying the image correctly. VLC is displaying the video as limited range rec.601, darks are crushed, brights are blown out, and colors are off). But as mentioned, full range video is very uncommon. The industry standard for HD video is limited range rec.709.
Click to expand...
Click to collapse

Related

Why does a video from my Fuze not play on my PC?

Anyone else have an issue? I use Zoomplayer and I have ffdshow. I didn't know anything was left to not be playable!
Check what codec it wants with Gspot(http://www.headbands.com/gspot/)
For a player you can try MediaPlayerClassic(http://sourceforge.net/project/showfiles.php?group_id=82303&package_id=84358&release_id=403110) or get MPC included with a pretty robust codec pack CCCP(http://www.cccp-project.net/download.php?type=cccp)
As a last resort try VLC(http://www.videolan.org/vlc/) it plays pretty much anything, but not always in an optimized way
FFDShow can play TouchPro/Fuze videos, but it may not be configured to recognize the files by default.
GSpot reports video: MP4V, and audio: AMR.
Look under your start menu for the link to ffdshow config (eg: Start > Programs > ffdshow > ... or CCCP > Filters > ... if you use that pack)
Choose FFDShow Audio Decoder Configuration
→ Under the Codecs category, look for AMR and set Decoder to libavcodec.
Then choose FFDShow Video Decoder Configuration
→ Under the Codecs category, look for Other MPEG4 (you will see MP4V noted in the FourCC) and set Decoder to libavcodec
Close ZoomPlayer (or MPC, which I highly recommend), and reload. FFDShow will now properly decode and play the videos.
Man I hate the nightmare over which player to use. I used to use only MPC, but people told me it had inferior video quality and/or couldn't support 5.1.
If you're using the default video format (.mp4), here's a trick that will usually play the video on a PC using Quicktime.
Change the .mp4 file extension to .3gp.
In the advanced menu on the video camera, you can also change the capture format to H.263 and those files seem to play fine on my PC without any changes.
thehyecircus said:
Man I hate the nightmare over which player to use. I used to use only MPC, but people told me it had inferior video quality and/or couldn't support 5.1.
Click to expand...
Click to collapse
Technically MPC isn't a factor when it comes to video quality or support for additional features. Video/audio quality depends on the filters/decoders being used (such as ffdshow, coreavc, powerdvd, etc). Support for extra features comes from splitters (such as Haali Media Splitter, which will tell MPC how to read/playback different kinds of data in a file) and other kinds of filters (such as directvobsub for rendering subtitles).
MPC is pretty much just a GUI that lets you control all those splitters/filters. Without any splitters/filters, MPC is pretty useless, and the default filters would use (that are included in Windows) are indeed pretty low-quality. But ffdshow is one of the best quality decoders out there.
Just for reference, ZoomPlayer is also a good player which uses the same splitters/filters to play media files--it's just a matter of GUI preference. The CCCP package is popular because it includes both MPC and ZoomPlayer as well as the best (non-commercial) splitters and filters like Haali and ffdshow.
If you're interested in getting more information, this is a good start:
http://www.cccp-project.net/wiki/index.php?title=Media_Players
Hopefully this isn't too far off-topic
Is H.263 a poor video quality? I can open it with Media Player and I installed the CCCP, but it takes a while to open my original video file for some reason. And I'd rather never use Quicktime, in fact The CCCP site had me uninstall it. But anyway - does H.263 matter compared to MPEG4? What can I do to have my next video file not be such a pain?
"Choose FFDShow Audio Decoder Configuration
→ Under the Codecs category, look for AMR and set Decoder to libavcodec.
Then choose FFDShow Video Decoder Configuration
→ Under the Codecs category, look for Other MPEG4 (you will see MP4V noted in the FourCC) and set Decoder to libavcodec"
I am going to do that now. I would have done it before, but I did not have those files.
http://en.wikipedia.org/wiki/H.263
There's a lot of rude and ignorant posters on this site, aren't there? I went to the Wiki page first thing - and guess what, there's no information. So *gasp* I asked here. Directing me backwards won't help.
It's pretty complicated so I'll just try to keep it simple:
MP4V is just an identifier for MPEG-4 video. There's a lot of technical stuff behind MPEG-4 codecs concerning quality, but I would say it's safe to assume the Fuze/TouchPro uses just the simple profiles (optimized for handhelds). H.263 is quite simply just an older codec but is similarly intended for handhelds. MPEG-4 technically can offer much better quality, but the Fuze/TouchPro does not let you change the codec's internal settings (since it's built-in to the camera app and/or camera chip).
So whether one codec is better than the other isn't clear; you'll just have to test both modes and see which one you prefer (but at 320x240, I doubt the difference will be very noticable). If the quality is almost the same, the other significant factor is that one codec may produce smaller files.
Hope that helps.

[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

[Bug Report] Imbedded Sub Titles Doubled due to HW Encoder

If I use the HW decoder (which I need for Pass through Dolby 5.1 audio to my TV) I get double sub titles. One I can turn of using the MX Player settings but the other one is on all the time I think from the Hardware decoder.
How can I turn off the Subtitles generated by the HW decoder?
I have seen some discussion on this but no solution.
I am using a Rico Mini PC Android TV Dongle to access my Video files. Problem is with MP4 and MKV files since they support imbeded subtitles.
[email protected] said:
If I use the HW decoder (which I need for Pass through Dolby 5.1 audio to my TV) I get double sub titles. One I can turn of using the MX Player settings but the other one is on all the time I think from the Hardware decoder.
How can I turn off the Subtitles generated by the HW decoder?
I have seen some discussion on this but no solution.
I am using a Rico Mini PC Android TV Dongle to access my Video files. Problem is with MP4 and MKV files since they support imbeded subtitles.
Click to expand...
Click to collapse
How do you connect to your TV?
can you play the same video in your mobile & check whether it happens or not?
If you are getting subtitle even after disabling, either it have passed to TV or It's hard encoded to video frames.
ktsamy said:
How do you connect to your TV?
can you play the same video in your mobile & check whether it happens or not?
If you are getting subtitle even after disabling, either it have passed to TV or It's hard encoded to video frames.
Click to expand...
Click to collapse
Hi
If I play a MP4 or MKV file with subtitle track on a PC or not using the HW decoder or other Android players which don't pass through the Dolby 5.1 , I can turn off the subtitles so it is not encoded on the frame.
It seems in HW mode MX Player is still decoding subtitles in HW and SW instead of just one. Unfortunaly MX Player HW mode seems to be the only Android player I can find that passes through the Dolby Signal but it has this double subtitle problem
The Dongle I am using is an Android Phone with the phone features and screen removed. It use my TV as the screen. It is also known as Google (Smart) TV.
I don't have an Android phone to test this on so if some one could play a MP4 or mkv file with a sub title track on MX Player in HW mode with Subtitles turned on I would appreatiate it
Thanks
(If I recode and strip the Subtitles out of my videos it solves this problem but I would like to keep them)
Try disabling/enabling this:
Settings > Subtitle > H/W acceleration
CDB-Man said:
Try disabling/enabling this:
Settings > Subtitle > H/W acceleration
Click to expand...
Click to collapse
Thanks but that did not work.
Log of My Problem
Here is the Report Log.
The problem is more then just having two Sub titles. I believe it has more to do that I can not turn off subtitles.
The "Enable Subtitles" and "Enable Embedded Subtitles" boxes even when unchecked I still see the embedded sub titles.
In SW mode I see only one sub title.
In HW mode I see two sub titles
Only way to eliminate subtitles is to recode the video with a blank subtitle track or use a format (ie -not MP4 or MKV) without embedded sub titles.
BTW: I found the following link with the same problem solved by an MX developer in 2012 (http://forum.xda-developers.com/showthread.php?p=27079630#post27079630)
Is this enough information and the right place so the MX developers can look into it?
Thanks in advance
Victor
HW Subtitles
I have the same problem with my tablet:
CPU: Quad Core Amlogic M802 Cortex A9r4 28nm 2.0GHz
GPU: Mali 450 Octa Core GPU
This problem happens with both embedded and external text (srt) subtitles. Only srt subs are displayed in default codepage and not displayed correctly.
Does this problem have to do with some firmwares which use custom API to control subtitle display as reported here?: https://groups.google.com/d/msg/mx-videoplayer/VhEJNahBRDE/gV3ruvDDn9wJ
My stock VideoPlayer (which uses HW decoding only) can disable the HW rendered subtitles.
Attached is my stock VideoPlayer.
Is there a way to fix this by checking how this is done by the stock player?
Thanks in advance
@bleu8888 could you take a look?
HW Subs Workaround
I found a way not only to display correctly the HW subtitles but also to "block" them from being displayed, at least for my device.
External subtitle text files must be converted to UTF-8 for HW subtitles to be displayed correctly.
A workaround to block them, is to start playback holding the device in up-right position (portrait) and after playback starts, it can be turned in landscape position for watching.
This way, HW subtitles are not being displayed.
Anyway, I posted this in case it helps others having the same problem.
BTW @bleu8888, does this have any logical explanation or it just happened to work with my specific device?

[Q] Codec supported by HW/HW+ Decoder

I just wondered about some of my videos not being played by the HW decoder. I figured out the issue must lay upon the codec, so I thought I do some research, since some HD Videos are going well with the HW decoder.
I would be really glad if someone can actually give me some advices how to convert the videos and which codec I should use for the best outcome.
The SW decoder is such a batterie consuming beast, I wish all videos could make use of the HW decoder.
Which converter are you using?
Try using basic convertion. You can reduce bightness so battery can extend a little bit.
About supported codecs:
HW decoder should support all codecs that are supported by your device. The best (and most common) codec is AVC (H.264), it's supported by your device for sure. It's the only codec worth caring about (for now).
However this doesn't end at codecs, because codecs have profiles and levels. Basically they are set of restrictions (like "to be able to play this video you need to be able to do this"). They are needed to ensure that if decoder supports particular profile/level, then it would be able to play any video with that (or lower) profile/level.
I believe that your device should support at least High Profile L4.1, which means that it should be able to play most H.264 videos.
However there's one special case - videos that use High 10 Profile (hi10p, 10 bit depth). It's commonly used on anime sources, becauses it preserves gradients well. There're no hardware decoders that support it.
Unfortunately manufactures usually are very vague about codecs/profiles/level support ("1080p HD video" is all what qualcomm says, lol), so you should test by yourself to find it out.
The first thing you need to do if you want to know why you can or can't play some video using h/w decoder is to check it's codec, profile and level (using MediaInfo or any other similar tool, usually media players have it built-in).
About conversion:
Try Handbrake, by default it should produce files playable by your device (no need to touch presets). You can play with "x264 Preset" to control speed/size and Quality to control quality/size.
Converting with Handbrake into x264 mp4 would be the most universally acceptable format for all devices, and work with HW decoding.
That should be no problem with your stock Nexus 4.

[Feature Request] Full hardware acceleration

Hi,
@ forum moderator / developer
Many Video players use GPU to decode and then CPU for transmitting buffer to display on supported videos. I don't know how Mx player handle videos. Is it possible to use GPU for decoding and directly throw the buffers to display (instead of using cpu to carry buffer)? Currently I have seen this feature in Vlc for android. It would be really better for performance as well as less battery uses.
In HW mode MX player just asks system to play video and it should use the fastest way. Dunno what happens in HW+
Also I'm not sure if there's any difference - since there's no real VRAM CPU and GPU buffers are the same.
warvevo said:
Hi,
@ forum moderator / developer
Many Video players use GPU to decode and then CPU for transmitting buffer to display on supported videos. I don't know how Mx player handle videos. Is it possible to use GPU for decoding and directly throw the buffers to display (instead of using cpu to carry buffer)? Currently I have seen this feature in Vlc for android. It would be really better for performance as well as less battery uses.
Click to expand...
Click to collapse
vivan000 said:
In HW mode MX player just asks system to play video and it should use the fastest way. Dunno what happens in HW+
Also I'm not sure if there's any difference - since there's no real VRAM CPU and GPU buffers are the same.
Click to expand...
Click to collapse
As @vivan000 said, H/W decoder uses androids native mediaplayer interface. So, the video will be played using system decoders.
H/W+ uses the same system decoders. But, it uses MXPlayer's own media framework. So, it can support more formats.
So, Both H/W and H/W+ are most efficient decoders.
But, S/W decoder uses CPU for decoding. So, you will not get the benifit of hardware acceleration. It may need very fast cpu depending upon the video. So, it may not be as efficient as H/W or H/W+. But, only thing is you can play almost all formats.
Sent from my SM-G900H

Categories

Resources