Audio and Video out of sync - MX Player

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.

Related

[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] [REQUEST] Alternative codecs combinations

Is it possible to create a wider codecs combinations for decoding posibilitie of MX?
For example: HW video with HW+ audio
Or create separate codecs settings.
On my Amlogic S812 there is problem with decoding MKV video file with HW+ decoder, video is twitching (or somewhat, I can't more correctly describe this effect) with 3 to 5 secs. Interval. With HW it's OK , but no sound.
Thank you for your help.
assaid said:
Is it possible to create a wider codecs combinations for decoding posibilitie of MX?
For example: HW video with HW+ audio
Or create separate codecs settings.
On my Amlogic S812 there is problem with decoding MKV video file with HW+ decoder, video is twitching (or somewhat, I can't more correctly describe this effect) with 3 to 5 secs. Interval. With HW it's OK , but no sound.
Thank you for your help.
Click to expand...
Click to collapse
Just enable SW audio from audio track selection. You will get HW video & SW audio.
Sent from my SM-G900H using Tapatalk
ktsamy said:
Just enable SW audio from audio track selection. You will get HW video & SW audio.
Sent from my SM-G900H using Tapatalk
Click to expand...
Click to collapse
I allready tried it. But sometimes I got double sounding on AAC codecs while SW audio was set permanently.
Sets SW audio separetly for each MKV is not so comfortable for my opinion.
Is there some way exists to use only SW audio for all files, I think MX does not block HW audio if track was supported by HW in this mode, or it's a bug?
assaid said:
I allready tried it. But sometimes I got double sounding on AAC codecs while SW audio was set permanently.
Sets SW audio separetly for each MKV is not so comfortable for my opinion.
Is there some way exists to use only SW audio for all files, I think MX does not block HW audio if track was supported by HW in this mode, or it's a bug?
Click to expand...
Click to collapse
I can't reproduce the double audio issue.
Can you collect the logs immediately after playing the file which leads to the double audio issue?
If it's possible kindly share a sample video.
Sent from my SM-G900H using Tapatalk
ktsamy said:
Just enable SW audio from audio track selection. You will get HW video & SW audio.
Click to expand...
Click to collapse
Is there a way to do the opposite of that? I need SW video & HW audio.
When I play test files directly from the device, I can use HW decoder and they play flawlessly. But when I play files from my NAS with the HW decoder, MX Player buffers. If I use the SW decoder playback is smooth, but the audio is always downmixed to stereo. I have tried both the default and custom software codecs with the same results.
Also MX Player informs me that HW+ is not available on my device, if that make a difference in the decoder options I have selected? I have tried "HW+ audio on SW video" with "SW decoder (network)" but MX Player still shows playback to be HW with the results mentioned above.

[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!

Blurry video with hw decoder

Hello everybody, I have this problem:
When I use hw decoder I get perfect sound but video is blurry.
When I change it to hw+ I have perfect video but no ddp or dts sound. Any solution?
jotzim said:
Hello everybody, I have this problem:
When I use hw decoder I get perfect sound but video is blurry.
When I change it to hw+ I have perfect video but no ddp or dts sound. Any solution?
Click to expand...
Click to collapse
Is it a local video or network stream?
HW decoder basically uses android mediaplayer API implemented on your device. If it is a network stream ( specifically HLS or DASH) it may happen due to adaptive playback. It will automatically select the best stream based on the current bandwidth. In HW+ or SW decoder, it will always play the first stream despite the bandwidth availability.
The problem occurs with local videos, mkv with ddp or dts sound. It is quite strange: Videos look like being projected on a screen with retention problem with hw. With hw+ videos are fine, but no sound
idn, but may restart will help?
idn, but may restart will help?

Android Media Framework and HEVC Container support.

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.

Categories

Resources