[One (M7) General] electronical:
I have been experiencing persistent difficulties playing high definition 1080p MKV rips on my HTC One, since day one. The video playback frame-rate always drops and the lag was apparent. My HTC One is rooted, so i was able to install FPS Meter to test the frame-rate during playback and it would always oscillate rapidly between 10 and 30. I always used MX Player Pro for video playback on Android, so i stuck to the latter and in order to enable DTS audio support, there's the settings option in-app to download the required custom codec (it's the ARMv7 NEON for the HTC One), which coincidentally opens up a link on XDA where a developer has been compiling the DTS audio codec. Here's the link: http://xdaforums.com/showthread.php?t=2156254. You can download and extract the libffmpeg.mx.so to any folder on your phone. Then, in the MX Player Pro settings, point it to the location of the libffmpeg.mx.so file. But in my case, even after all that, the lag wasn't solved. I thought that maybe the Snapdragon 600 SoC wasn't powerful enough to handle these bulky (around 10 GB) 1080p MKV files. That is, until i came across the following FREE media players which solved the lag completely!

DicePlayer

1. Download and Install the FREE DicePlayer app from the Play Store: https://play.google.com/store/apps/details?id=com.inisoft.mediaplayer.a

Try to play your video file. For me, the DTS audio was supported right out of the box. Maybe it was due to the custom DTS audio file that i had already installed previously for the MX Player Pro? In any case, you should first try to play your video file to see if it's fully supported.

But if you get no audio, follow these steps:

2. Download the DTS Audio Codec to your PC: https://dl.dropbox.com/u/7909146/DicePlayer-DTS-AudioCodec-libffmpeg.zip

3. Extract the downloaded zip file.

4. Transfer the extracted libffmpeg.so file to the root of the internal SD card on your Android device. DO NOT transfer it to a folder or sub-folder. Make sure to place it in the directory of your phone's internal storage.

5. Launch Dice Player on your Android device and open the Settings Menu

6. Scroll down to Custom Plugin and check the box

7. Go back to the main menu.

8. Select your video file. You should now be able to play DTS audio on your HTC One!

Archos Video Player

1. Download and Install the FREE Archos Video Player app from the Play Store: https://play.google.com/store/apps/details?id=com.archos.mediacenter.video

2. Download the Archos Video All Codecs Plugin to make sure that you have all the required video and audio codecs: https://play.google.com/store/apps/details?id=com.m4rk3t.libcopy2

3. From the main menu, select "All Videos" and then choose the video file that you want to play.

(Credits to [MENTION=3274453]spawndk[/MENTION] for suggesting the Archos Video Player and its codecs pack)

VLC for Android

1. Download and Install the FREE VLC for Android app from the Play Store: https://play.google.com/store/apps/details?id=org.videolan.vlc.betav7neon

2. From the main menu, just select the video you want to play.

3. Enjoy!

Note: The video file tested has been copied onto the phone's internal memory via USB, so if you stream the video file from your PC or online, the result might differ. If your video contains embedded subtitles, the video playback might lag in VLC and the image itself might appear corrupt (that would also depend on your video file). Since the VLC for Android player is currently in beta, some bugs still need to be ironed out. However, in DicePlayer and Archos Video Player, the subtitles play without any issue. Conclusion: use DicePlayer or Archos Video Player if you need subtitles. I tested the smoothness of the playback with power save mode on and off - it made no difference, so you can leave power saver mode on (when enabled, the power save option lowers your Snapdragon 600 CPU frequency which could cause lagging and stuttering if there is a high-enough CPU load).

Since there are many different types of codecs and bit rates used in 1080p MKV files, here is the exact video file that i've used for this guide (just in case anyone wants to replicate the steps in this guide to verify if they get identical results with the exact same video file):

Pacific.Rim.2013.1080p.BluRay.DTS.x264-PublicHD.mkv

Runtime ............: 2:11:17

Size ...............: 13.8 GB

Video ..............: 1920x1080

Bitrate ............: 13300 kbps (H264 High@L4.1 CBR)

Audio 1.............: English DTS 5.1 Ch 1510 kbps

Audio 2.............: English OGG 2.0 Ch 64 kbps -Commentary By Director Guillermo Del Toro

Chapters............: Yes

Source .............: 1080p Blu-ray AVC DTS-HD MA 7.1-PublicHD

Subs ...............: English French Spanish Portuguese

Using MX Player Pro, that same video file would lag all the time. No amount of tweaking in the settings would fix it.

Disclaimer: I own that movie on original Bluray disc, but instead of re-encoding it myself (my PC is too slow and i'm far from being an encoding wizard to know the best settings for optimal compression while preserving image quality) to play on my mobile devices, i got it from torrents. I am in no way promoting piracy. If you like a movie, definitely buy it.