cant play .mkv file on a external hard drive through a tv

Solution
There are two possible issues here with different solutions.

First, mkv, mp4, avi, etc. are all just containers. They're just a way to combine (mux, short for multiplex) a video file, an audio file, and sometimes subtitles and chapter files into one single file for easy transport. Some containers support multiple audio files and subtitles, others don't.

If your TV doesn't support the mkv container format, then simply demuxing it and muxing it into a new container format can solve the problem. You're basically splitting the mkv into its component video, audio, subtitle, and chapter files, then combining them into the mp4 container format. It's relatively straightforward and easy to do (with the right tools).

The other possible...

matthew_nicho2

Distinguished
Jul 10, 2008
167
0
18,710
I also find mkv to be a pain for compatability so I remux them all to mp4 using this: -

Video container switcher GPL

Once setup it quickly and easily repackages mkv to mp4. One downfall is that it will only use the first audio stream on the file so if you have multiple audio streams then I also use this: -

Avidemux

Its more complicated but gives you greater control over video and audio
 
There are two possible issues here with different solutions.

First, mkv, mp4, avi, etc. are all just containers. They're just a way to combine (mux, short for multiplex) a video file, an audio file, and sometimes subtitles and chapter files into one single file for easy transport. Some containers support multiple audio files and subtitles, others don't.

If your TV doesn't support the mkv container format, then simply demuxing it and muxing it into a new container format can solve the problem. You're basically splitting the mkv into its component video, audio, subtitle, and chapter files, then combining them into the mp4 container format. It's relatively straightforward and easy to do (with the right tools).

The other possible problem is a lot harder to solve. Your TV may not support the actual video or audio encoding. Common video encoding formats are MPEG-4 and h.264 (which is actually MPEG-4 part 10). These two are the most widely supported. Older formats include MPEG-2 (used on DVDs), WMV (Microsoft's proprietary format), VP6 (Google's proprietary but open format). h.265 is new, so isn't supported on a lot of older devices. On top of this, a lot of these formats have a bunch of different options, and your TV may not support all of them.

On a computer, this is easy. Just install an appropriate video codec, and the computer will know how to decode the video format, using the CPU to cover for parts of the decoding process which aren't supported by the hardware decoder on your GPU. On a TV which probably isn't getting regular software updates, you may be stuck with whatever the TV can decode. In that case, your best bet is probably to download Handbrake and transcode the video into a new format. It's not the best video encoder, but it's pretty easy to use and fairly reliable. (Warning: Everything beyond this point is not for the point and click crowd. You will actually have to learn how to do new stuff.)

https://handbrake.fr
https://trac.handbrake.fr/wiki/WindowsGuiGuide
http://www.winxdvd.com/resource/handbrake-windows-tutorial.htm

Open up your original mkv file as the source. For the output, select mp4 (which is fairly widely supported because of the plethora of Apple devices producing it), unless you know your TV supports mkv. If it does, select mkv (it supports more features). Most importantly, in the Video tab, set the video codec to h.264, and make sure the "Fast Decode" box is checked. Checking this prohibits a lot of the fancier options h.264 can use to reduce file size. The resulting video file will be slightly bigger, but is much more likely to play on your TV, tablet, phone, etc.

There are a ton more options which I can't get into here (particularly the audio options - play with those if the TV plays the resulting video but has no sound). But you'll probably have to experiment with the Quality slider. The default setting of 20 will probably produce a file way too big for your purposes. Higher numbers result in lower quality but smaller files. There's no easy way to do this - you have to experiment to find a good balance. Use the Preview button liberally to get an idea of the effect this slider has on video quality and file size.

Finally, when you're happy with the settings, you can go ahead and start the encode. Depending on your computer and source video, this can take anywhere from about an hour to all day for a 2 hr movie. Your computer will be working hard, so it'll be hot and noisy during this time. If you're doing this on a laptop, you're gonna wanna plug it in because this will drain the batter in just 2-3 hours.

When it's finished, you'll have a shiny new video encoded with new settings, hopefully settings your TV can play. If you selected MP4 as the output, change the file extension from .m4v to .mp4. not sure why Handbrake does that, but it's done it forever. Copy it to your external HDD, plug it into your TV, and cross your fingers.

(Edit: Please note, I do *not* recommend using Handbrake to convert DVDs. Its deinterlacing/decombing is crap, and will result in videos with heavy jaggies on diagonal lines if you use it to convert interlaced video.)
 
Solution