I really haven't done much testing on this, but I've noticed a number of quirks with the stock video/music player (or possibly the hardware decoder).
Is this just me, or has anyone else noticed any of the following?
MKV with 1280x720 H.264 [email protected] + Vorbis stream:
Seriously laggy video. Have tried reducing the H.264 stream to [email protected], but same result.
mVideoPlayer shows exactly the same behaviour, suggesting possibly an issue with OS itself?
MX Video Player only seems to run this through the software decoder, and works fine.
MP4 with 1280x720 H.264 [email protected] + AAC-LC stream:
Simply remuxing the above video stream into MP4 seems to get rid of the lagginess. But seeking is horribly broken here. Audio seeks fine, but video doesn't, leading to audio/video desync.
MX Video Player (HW decoding) has exactly the same issue. The SW decoder is fine though.
Interestingly, Dice Player, using HW decoder, doesn't have this bug. What's up with that?
44.1kHz HE-AAC music in MP4 container:
Seems mostly fine, but I've noticed "clipping" artifacts in some places of the audio. These don't show up using a software decoder.
Also, is there a more definitive guide on what exactly is supported in terms of media/codecs? I've seen this [http ://developer.android.com/guide/appendix/media-formats.html] (remove the space), but it's inaccurate, or at least lacking information. For example, some things I've picked up:
- MKV: header compression (which is enabled by default in mkvmerge) is not supported - will show up as invalid video if you have it
- H.264 support up to High profile @ level 4.1, level 5.0 won't play back (on HW decoder at least)
Thanks
Okay some partial solutions if anyone finds this.
I'm guessing the demuxers in Android are buggy/partially broken. I'm guessing DicePlayer uses its own demuxer and feeds the audio/video to the hardware decoder, whilst MX probably sends everything to the system to decode.
Haven't done much testing with MKV, so it's still stuttery.
The MP4 issue seems to be with the frame rate. I believe some devices have trouble with frame rates with high rationals. MP4Box specifically sets 23.976fps to 24000/1001, which fixes the broken video seeking behaviour. Interestingly, using a shorter GOP seems to have an effect if you use a 'broken rational frame rate', though if you use a good frame rate, GOP doesn't seem to matter much.
As for video, it seems that 'x264 --profile high --level 4.1 --preset placebo' always works (haven't tried open-gop). Do note that I originally just fed the x264 MP4s, which don't seem to work as x264 sets high rational frame rates (so encode to .264 and mux with MP4Box separately).
For the audio issue, it seems that applying a 5dB cut before encoding stops the clipping from happening. It only occurs with audio that pretty much maxes the volume.
AAC (without SBR), Vorbis and MP3 seems to work fine without having to do this, so there's something with AAC+SBR causing the decoder to clip the audio (probably something in the decoding chain which pushes the volume too high).
Related
Since purchasing my TP2, I've labored under the belief (supported by a lot of other users) that xvid playback had to be choppy, and if I wanted smooth video (even encoded SD, 640x480ish), I had to convert my files to h264. I have an HTPC and compress all my shows into xvid, always have, and have no desire to change, so I basically abandoned watching video on my handset.
I was trying out a new tip today for better performance (muxing the same old files into an mp4 container without conversion) when my control file (same old avi/xvid to compare performance with) played absolutely perfectly. Not the hiccupy, choppy, 3-7fps I remember from when I first tried it, but smooth as silk. What the frak? I never even got around to trying my new tip out.
I grabbed an older file of the same show, also avi/xvid but WMP wouldn't open it and TCPMP played it at the 3-7FPS choppy unwatchable speed I remember from the old days. The only difference in the new file is that instead of using an mp3 audio track, I had stream copied the original AC3 audio track to deal with a sync issue I had with that particular recording. The video in both has the same xvid encoding by the same program with the same settings.
I'm preparing another test as I write to ensure that is the only difference between these two files. I'll take the same HD mpeg2, convert it into 1 xvid+mp3 and another xvid+ac3 with all other settings identical and compare their performance. I'll try mp2 audio as well (for my analog recordings). In the meantime, can anyone explain why mp3 audio would cause otherwise playable video of modest resolution to slow to a crawl?
Hello,
I'm having some problems about playing 720p videos from HTC Desire Z. It plays some 720p videos smoothly which are recorded by itself (also there is a fps problem in there, some are about 19fps).
I wonder which {container, codec} we should use to play 720p videos smooth. I tried with several media players like Vplayer, Moboplayer, Rockplayer and Android's default media player.
I tried some files. Here their properties:
Container: MKV
Video Codec: H264
Audio Codec: AC3
Overall Bitrate: ~4.5Mbps
Length: 71min
Size: 2.2GB
This was a concert video.
--
Container: MKV
Video Codec: H264
Audio Codec: AC3
Overall Bitrate: ~4.5Mbps
Length: 40min
Size: 1.1GB
This was a tv show.
Rockplayer can play this videos but not smooth enough. It freezes for 5-10 milliseconds at every 1-2 seconds.
Using stock 2.3.3 ROM and stock SD Card.
Phone can play 480p videos smoothly but I think it can play 720p videos since it can record 720p videos.
Thanks in advance.
The DZ isn't actually powerful enough to play 720p videos from an external source. I can barely play 480p AVI smoothly. MKV and MP4 are a total lost cause for me. Haven't tried after I installed Virtuous 2.0 and had it OC'd to 1.5GHz though.
ArmedandDangerous said:
The DZ isn't actually powerful enough to play 720p videos from an external source. I can barely play 480p AVI smoothly. MKV and MP4 are a total lost cause for me. Haven't tried after I installed Virtuous 2.0 and had it OC'd to 1.5GHz though.
Click to expand...
Click to collapse
As far as I know, DZ has hardware decoding for 720p videos. So it can play 720p videos and DZ records with 8mbps and encodes with h264 and its container is 3gp. Only difference is container. Maybe changing container will fix this but I tried with avi, mkv. Maybe I should try with 3gp container.
Anyone tried?
Try dice player
Sent from my HTC Desire S using XDA Premium App
tcchuin said:
Try dice player
Sent from my HTC Desire S using XDA Premium App
Click to expand...
Click to collapse
Tried with its trial version but it says "sorry, this video can not be played" when i try to play video which I mentioned at my first post (tv show one) and also another video which is a mp4 video.
DicePlayer can not play any video in the phone
I use Rock Player Lite and it can play MP4 vids properly. Granted, I just OC'd my DZ to 1.5GHz, and an MP4 file encoded in h.264 with an average bitrate of 1.5kbps plays flawlessly. At stock speeds the audio goes out of sync and artefacts get introduced. Haven't tried MKV files since I OC'd yet though. Software decoding in RPL.
Hardware decode basically is the same as the default media player, software decoding takes up more CPU resources, but is able to play more formats and containers.
I haven't found any way to reliably open mkv container on desire z. MX video player by far does the best job (and yes, I've used other players like rockplayer, dice player, etc) but it still plays 720p mkv h264 slightly choppy. 720p h264 mp4 plays fine with software and hardware decoder, while 720 avi xvid can play smoothly on a small overclock.
I try to avoid 720 anyway because the difference between 720 and 480 on a 3.7inch screen is barely visible to me lol
Exactly lol. As long as it can play 480 on the DZ it's more than fine by me. 720p on a 480x800 screen... ~_~
MX Video Player.. Never heard of it. Gonna search and try that out. How does it compare to Rock Player?
i really liked rockplayer for a long time until i found out mx player had software codecs tweaked for ARMv7. Check it out on the market, its free anyway lol
I tried mx player but still there is the same problem.
I also tried to change the container to mp4. PC plays well but when I try to play on phone, video is smooth but there is no sound and audio codec is ac3. Maybe the problem is here.
I tried with rockplayer using software decoding, there is sound but laggy video.
Try MX with SW. Works fine on any container and format so far for me.
ArmedandDangerous said:
Try MX with SW. Works fine on any container and format so far for me.
Click to expand...
Click to collapse
Tried in 3 available mode in MX Player but still laggy video
The trick is to use video in the correct settings for the hardware decoder. If you do that then it won't matter if it's in mkv or mp4.
For the video portion, use baseline profile h.264 with the maximum bitrate (VBV) capped at 8mbps up to 720p
For audio, use AAC-LC in stereo.
Sent from my HTC Vision
ChronoReverse said:
The trick is to use video in the correct settings for the hardware decoder. If you do that then it won't matter if it's in mkv or mp4.
For the video portion, use baseline profile h.264 with the maximum bitrate (VBV) capped at 8mbps up to 720p
For audio, use AAC-LC in stereo.
Sent from my HTC Vision
Click to expand...
Click to collapse
I think so. But there is a problem when playing MKV files. There is problem after I changed container to mp4, though.
But the audio codecs of videos which I tried are not AAC. Maybe this causes the problem.
I don't know, how hard can it be to play videos which have AAC audios.
Use Handbrake to encode and it'll be easy to specify AAC for audio. You can use the iphone profile for encoding.
Hi again,
I've solved my problem. I use dice player which plays 720p mkv videos (even with ac3 audio codec).
I wrote here dice player can't play any video in the phone. That was a hardware decoding problem, I think. When I try to play an unsupported video format with hardware decoding, hardware decoding crashes and unable to play videos as it should be.
So, after that if I restart the phone hardware decoding comes back and plays videos perfectly.
Is this a common issue? If it is not should I do a factory reset to my phone?
To be honest, with our default 800*480 screen, we would not be able to take advantage of 720p quality as 720p is 1280*720 (Unless we stream it to a HDTV or Monitor). Re-encoding it to 800*450 is wiser to conserve file size as well
found this recommended settings at afterdawn for Handbrake or MEGUI. Tried it with rockplayer hardware decoding and it is smooth i used mp4 format
full link is here http://www.afterdawn.com/guides/archive/converting_video_for_the_htc_desire_z.cfm
Code:
Recommended Video Options
Format H.264 (MPEG-4 AVC)
Profile Baseline
Level 3
Average Bitrate 800kbps - 1800kbps
Max Resolution 800×480 @ 24fps
800×480 @ 25fps
800×432 @ 30fps
768×448 @ 30fps
720×480 @ 30fps
Maximum GOP Length 250
Minimum GOP Length 25
B-frames None
CABAC Off
Other Recommended Settings
Audio Format AAC
Audio Channels 2
Audio Bitrate 128kbps - 256kbps
Container (File Type) MP4*
Subtitle Format Timed Text or SRT **
my .mkv videos dont play sound . unless i use softwere decoding on mobo but the the video is a lag fest. anyone know of a good way to convert them for one x friendly viewing
DicePlayer is working flawlessly for me with my 720p .mkv files. Buttery smooth video and audio is perfectly in sync.
Try Avidemux its free.
Just copy the video and re-encode the audio.
Works spot on for me.
mishmac said:
Try Avidemux its free.
Just copy the video and re-encode the audio.
Works spot on for me.
Click to expand...
Click to collapse
thanks works great changing it to aac
and its fast
Theres also bs player lite if you don't like the menu bar in diceplayer.
On MX Player you can set it to use the hardware decoder to decode video (H.264), software decoder to decode audio (Dolby 5.1/DTS) and enable fast mode.
720p and 1080p .mkv's tested here working perfectly.
Yeah currently using MX Player. But you gotta set the decoders away from HW every time you start playing an .mkv file.
What does Avidemux do exactly? Is mkv not really supported by ICS?
Thanks
Your audio is probably DTS or AC3 encoded, Dice Player can handle those and use hardware decoding. Best video player for any Android it supports IMO. No dirty transcoding or anything, just drag n drop and everything works.
NZtechfreak said:
Your audio is probably DTS or AC3 encoded, Dice Player can handle those and use hardware decoding. Best video player for any Android it supports IMO. No dirty transcoding or anything, just drag n drop and everything works.
Click to expand...
Click to collapse
Ah, gonna try Dice and do some experiments, like, see if it can play my mkv files with hardware acceleration instead of software.
kythor said:
Ah, gonna try Dice and do some experiments, like, see if it can play my mkv files with hardware acceleration instead of software.
Click to expand...
Click to collapse
Try MX Player. You can try HW video and SW audio and see how that goes. Decoding isn't locked to the same type between video and audio on MX
I just tried Dice Player and it can play the mkv's audio with HW.
I don't think my ears are sensitive enough to hear the difference, but I read that HW acceleration uses lesser battery juice than SW?
kythor said:
I just tried Dice Player and it can play the mkv's audio with HW.
I don't think my ears are sensitive enough to hear the difference, but I read that HW acceleration uses lesser battery juice than SW?
Click to expand...
Click to collapse
Yes it does cos most SoC's come with a built in decoder. SW decode would mean you're using your CPU power to convert audio/video on the fly as you watch/listen, causing more battery drain.
Here is a comparison on what I have tried so far, for playing .mkv files:
Default HTC player: No audio at all and you cannot setup decoding to play audio whatsoever.
Mobo player: The same as HTC player.
Dice player: Audio works and videos play using hardware acceleration, but if you have stock rom, you cannot watch videos in full screen because of the menu bar, which is a huge deal breaker for me.
BS player: ICS friendly (menu button and all), plays videos with audio fine on software decoding mode or hardware decoding mode (BSPlayer engine). But on hardware decoding mode (system), the video is really bad, it has some corrupted squares all over it. I reckon that "HW decoding mode (system)" should be utilizing Tegra 3, right?
MX player: Also ICS friendly. Plays videos with audio fine on software decoding mode, but on hardware decoding mode, there is no sound. There is, however, an option to software decode audio when playing hardware decoded video, but, when I select that, the video completely stops and it's unplayable.
So, the final conclusion is this:
In MX player, currently the only way to watch videos is by software decoding. BS player can use hardware decoding using its own engine, but actually I don't know what "BSPlayer engine" utilizes for hw decoding. So the winner should be BS player, but the problem is that I really much more prefer MX over BS, due to other functions that it has and the overall appearance and experience.
My question to you guys is this: are there any negative effects if I use MX player with software decoding? Will my battery last shorter if CPU does all the decoding instead of the Tegra 3? I guess it will in theory, but has anyone tried and actually seen the difference with HW over SW decoding?
I sure hope that all of these app devs will soon follow ICS standards and new phones with graphics accelerations.
Also, if anyone can suggest a video player that hasn't been mentioned here, please do so!
xaeder said:
Here is a comparison on what I have tried so far, for playing .mkv files:
So, the final conclusion is this:
In MX player, currently the only way to watch videos is by software decoding. BS player can use hardware decoding using its own engine, but actually I don't know what "BSPlayer engine" utilizes for hw decoding. So the winner should be BS player, but the problem is that I really much more prefer MX over BS, due to other functions that it has and the overall appearance and experience.
My question to you guys is this: are there any negative effects if I use MX player with software decoding? Will my battery last shorter if CPU does all the decoding instead of the Tegra 3? I guess it will in theory, but has anyone tried and actually seen the difference with HW over SW decoding?
I sure hope that all of these app devs will soon follow ICS standards and new phones with graphics accelerations.
Also, if anyone can suggest a video player that hasn't been mentioned here, please do so!
Click to expand...
Click to collapse
Software decoding will always consume more power. How much more I do not know. Also, Tegra 3 IS the CPU. Hardware decode means that there is a specific chip in the SoC that is there specifically to encode/decode video/audio and hence CPU resources are minimal. When that chip does not support a certain format, it's forced to render it in software.
Also, .mkv is just a container, there are many audio and video formats that can be encoded into .mkv
Thank you for your answer! I understand now what Tegra 3 actually is.
Oh, and for the format, sorry I forgot to mention. You are right, .mkv is just a container
The format of my files tested is:
Video: MPEG4 Video (H264) 1280x720 23.98fps [Video]
Audio: Dolby AC3 48000Hz stereo [Audio]
Click to expand...
Click to collapse
As mentioned in other posts... If you have to use S/W in MX, it's because you have a 5.1 audio track.
Use something like mkv2mp4, and that will convert the audio stream to 2ch
Then MX will play the video & audio with H/W
adamsweeting said:
As mentioned in other posts... If you have to use S/W in MX, it's because you have a 5.1 audio track.
Use something like mkv2mp4, and that will convert the audio stream to 2ch
Then MX will play the video & audio with H/W
Click to expand...
Click to collapse
This is helpful. Thanks
I think BSplayer is best. Sure, it uses it's own HW engine(if you want), but it shouldn't be any big differences I hope. It sure as hell uses alot less battery then SW anyway. And also, BSplayer can play straight from .rar's and stream from a windows share in HW-mode (with it's own engine ofc)! Most players switch back to SW when you play through network but not bsplayer. And BSplayer also downloads subs automatically. The only downside is that it's kind of ugly. Haha
Now, it they only would port XBMC to android..
---------- Post added at 10:54 PM ---------- Previous post was at 10:46 PM ----------
adamsweeting said:
As mentioned in other posts... If you have to use S/W in MX, it's because you have a 5.1 audio track.
Use something like mkv2mp4, and that will convert the audio stream to 2ch
Then MX will play the video & audio with H/W
Click to expand...
Click to collapse
The whole idea with these media players is to not have to convert every video you've want to see. BSPlayer is the best player, period. It can play everything I've tried as of yet anyhow.
There it however one thing I hate, but thats probably the phone (or drivers) and not bsplayer. If you play say 720p over network with a bluetooth headset, it will lag. It's if they haven't given enough bandwidth to the wifi/bluetooth chip. Don't think I had this problem on my old phone.
just tried Dice player there, i must say it is really good. no lag what so ever, and the sound was perfect, and the menu bar didn't bother me at all.
some of them might work in whatever app you want to use, but i can tell you that some of them will never work right. i bought a Cowon D2 (what a mistake!) and ended up selling it. some mkvs didn't show video and a lot of them didn't have audio. it depends on the codecs that were used. it's the same on PS3. there are certain videos and audios that you need better hardware to play. i've seen people say that the audio has to be "AC3" for it to work on PS3. i wouldn't waste too much time with it and you should just convert it lower or use a computer with mid to high level AMD/Nvidia and some $100+ sound card. if you're trying to watch bluray disc rips that keep some of the quality, then it most likely won't work.
Have any one tried it.
Or will it be done by flashing a custom rom(may be cm10)
mahoihei said:
Have any one tried it.
Click to expand...
Click to collapse
Yes. My sat-box records in .mkv and it is viewable (streamed from sat-box) without changing anything. I use vplayer.
I use diceplayer, works great.
Sent from my Nexus 7 using Tapatalk HD
MX Player with custom codec.
Sent from my Nexus 10 using Tapatalk 4
sidthegreatest said:
MX Player with custom codec.
Sent from my Nexus 10 using Tapatalk 4
Click to expand...
Click to collapse
+1. You can even boost the volume level to upto 30 if you use HW+ decoding, works amazing on AC3/DTS audio
serviio and diceplayer. Makes a great DNLC network that can stream any file to your Nexus. As for playing it on the nexus, I personally dont like putting movie files on mine since the memory gets used up rather quickly.
MX Player and the VLC Beta both work fine with .mkvs for me. I've even played some pretty hefty 1080p files with no issues.
you don't need to do anything. just open the file with MX player, be player or similar. sorry I'm not understanding why this is an issue for you
You can use HW decoding for video in players such as MX Player but you can't do audio HW decoding for some codecs since Dolby is suing everybody for supporting their formats without permission and is also refusing to license them.
MX Player works great in HW+ mode. I have had no problem with normal HD mkv files or 10 bit anime mkv
Tony_YYZ said:
You can use HW decoding for video in players such as MX Player but you can't do audio HW decoding for some codecs since Dolby is suing everybody for supporting their formats without permission and is also refusing to license them.
Click to expand...
Click to collapse
Actually you can, custom codec option in mx player Worked wonders for me, there's threads about this. Stock rom, locked.
Yes, it can for both 8-bits 720p and 1080p, but 10-bits sorry, can't....
Can anyone point me to the right codec to download? All videos I try are using S/W instead of H/W in MxPlayer (except MP4). WMV and MKV are playing in S/W. Thanks a bunch
joey4321 said:
Can anyone point me to the right codec to download? All videos I try are using S/W instead of H/W in MxPlayer (except MP4). WMV and MKV are playing in S/W. Thanks a bunch
Click to expand...
Click to collapse
ya, where do i download the latest HW codecs? my s/w works fine but HW mode doesnt work too well in mxplayer pro/ lags and stutters
Some education is needed
MKV is not a codec, it's a container format much like DVD .... The problem is not the MKV container but what it contains. Generally the biggest problems are MKV's made from US OTA (Over the air) and cable TV recordings which all have the audio in AC3 format and usually in Dolby encoding. (And as someone mentioned Dolby doesn't like it when they don't get their Cut, even if the software is free and no one is actually profiting from it except the Consumer)
I've recorded and archived several TV series since 2006 and some of my first MKV's kept the AC3 audio format (but converted the video to h.264) because I was having sound sync problems (Not sure if it was an x264 or the cable company's fault but the issue eventually went away) and for those I have to use software decoding for the audio but the video is still hardware accel .... The ones I've made in the last 3-4 years have the audio converted to AAC format and those have full hardware accel video and audio and play flawlessly and effortlessly even on my lowly Rockchip dual core TV Stick (720p and in the process of being embedded in a Motorola Lapdock)
Point being it's not the MKV container that is the problem, what counts is the formats it contains .... And in the case of us North Americans we need to convert the audio (AAC is the best bet IMO) so you may as well convert the video (Much of it is interlaced and that's another issue conversion fixes, Handbrakes default Decomb filter does it well) .... For that I would recommend x264 and Handbrake (x264 is included in Handbrake) which should not only take care of compatibility issues it also makes for a smaller file (Better transfer/streaming over wifi) without any loss of playback quality .... Also I would recommend stripping off any extra audio feeds (Languages) if you aren't going to use them, ditto for subtitles ... In other words keep it simple and convert to formats with known/best compatibility
SPAM.
http://forum.xda-developers.com/showthread.php?t=2156254
MX player > settings > decoder > download custom codec
what about the mpeg2 decode ,not h/w decode?
no hardware acceleration for 1080i dvb-s2 recordings or streams
My nexus 7 with stock Rom plays 1080p h264 content in MKV containers flawlessly with h/w acceleration with various players. Except for either streams or recordings from my tvheadend server. If they are 1080i (no German station broadcasts in 1080p) none of the players gets h/w working. SD and 720p do work though. The only difference I can see between my recorded files and the ones that do play is that the recordings have 25 fps whereas the other mkvs have about 24.
In the attachments there are two screenshots of two mkvs' properties. The 25 fps one is the one that won't work.
Anyone's got an idea? Thanks
from what i know,snapdragon still don't support 10bit decoding perfectly,thats why u can't use hw+ mode for 10bit video.
When I tried with my HTC One X,it can play 10bit video in hw+ mode though.Its likely for now Tegra and Exynos only support 10bit decoding in hw+ mode,even not perfectly.
u can refer to this thread ->
https://groups.google.com/forum/#!topic/mx-videoplayer/WKv1LNeUTSI
At $84, I'm tempted to buy one, but only if 1080p playback works flawlessly. Have the bugs finally been worked out?
Sizzlechest said:
At $84, I'm tempted to buy one, but only if 1080p playback works flawlessly. Have the bugs finally been worked out?
Click to expand...
Click to collapse
It depends on the codec within it. With XBMC or SPMC, I've found my Blu-Ray rips all technically play of course, but those whose video are encoded in VC-1 don't have hardware decoding and thus don't play smoothly. Those using MPEG-2 or H.264 play perfectly. To get around that, I transcoded such BR's to H.264 at a rather high quality (and kept the originals around for if / when VC-1 hardware decoding ever gets going).
On the audio side, I have pass-through enabled along with Dolby Digital encoding enabled for XBMC's audio transcode (that second part is necessary so something like 5.1 PCM, FLAC, Dolby True HD, or DTS Master audio can reach my receiver in 5.1, since Android devices currently can't pass full-bandwidth surround audio). Hope this helps you in making your decision.