The problem is likely one of these issues:
1. unsupported video format (check the supported list, e.g. LG)
- especially note the restriction of 30 fps for FullHD
- video codecs are usually divx and h264 (up to profile 4.1), no GMC
- audio codecs are usually mp3, ac3, aac.
2. Badly muxed file or unsupported file type
3. Mkv with header compression
Your options are reencoding (1.), which is slow but can always be set up in a way that fixes things or remuxing (2.) which is extremely fast but can only fix some problems, as the codecs and their settings must already be supported by your setup.
1.a. ffmpeg (old style):
ffmpeg -i Oldfile.mp4 -vcodec libx264 -vpre normal -r 25 -crf 23 -ab 384k -acodec ac3 Working.mkv
1.b. ffmpeg (improved, new style):
ffmpeg -i "oldfile.mp4" -c:v libx264 -profile:v main -level 4.0 -maxrate 20M -preset slow -crf 26 -c:a copy "newfile.mp4"
For really old software and systems you may want to decrease the level e.g. to 2.0 or 1.0 and add -pix_fmt yuv420p lower the maxrate. In case of sound issues, you may want to reencode the sound as well.
2. a. Plain Remuxing (mkvmerge)
mkvmerve -o Newfile.mkv Nonworkingfile.mp4.
2. b. Remuxing with forced frame rate (ffmpeg)
In case the header just has a wrong, too high, frame rate (2.), adjust -r 25 to the correct framerate (e.g. 24, 25, 30), then use this:
ffmpeg -r 25 -i Oldfile.mp4 -r 25 -vcodec copy -acodec copy Working.mkv
3. Decompressing Matroska header:
In case of header compression (3.) you need to add:mkvmerve --compression -1:none -o Newfile.mkv Nonworkingfile.mp4.
Extra tip: Only encode a few seconds in each variant, then cancel, then try to play the files and just completely transform the file with the method that works.
If you like this post, share it and subscribe to the RSS feed so you don't miss the next one. In any case, check the related posts section below. (Because maybe I'm just having a really bad day and normally I write much more interesting articles about theses subjects! Or maybe you'll only understand what I meant here once you've read all my other posts on the topic. ;) )