So today I wanted to try playing some MKV video files in Rockplayer, only to find out the audio wasn't working right (either distorted or no audio at all). After doing a little research, it turns out there are 2 primary reasons for this:
1) The audio component of the MKV file is surround sound, for example a 5.1 surround AAC file. (this caused distorted audio when opening in Rockplayer)
2) The MKV file is set up for dual audio, as commonly used for anime and other english dubbed shows. (this caused no audio at all when opening in Rockplayer)
Now that I knew the problem, I wanted to find a solution. Unfortunately it's not easy due to the complexity of MKV. Converting the MKV to another file format won't work, since it will still have the offending audio track embedded. So, what you have to do is remove or re-encode the problematic audio track(s). Here's how I did it:
What you'll need:
MKVtoolnix: MKVtoolnix 4.3.0
MKV Extract GUI (extract into SAME FOLDER as MKVtoolnix): MKVExtractGUI
Mediacoder Audio Edition: MediaCoder Audio Edition
Mediainfo (if you don't know your video's framerate already): MediaInfo
1) Open MKV Extract GUI in your MKVtoolnix folder (mkvextractgui.exe)
- Click the checkbox next to the video track and *ONE* audio track for each MKV file
- Note: if the MKV has embedded subtitles (software subs) you can choose to extract them as well.
- In order for Rockplayer to read the subs, they must be .SRT format, the same name as the corresponding video file, and in the same folder as the video file.
- If they aren't SRT, you'll need to convert them. See this link to learn how: Convert ASS to SRT Subtitle
- if they aren't working later, check that your "Show Subtitle" option is on in Rockplayer settings.
2) Open Mediacoder Audio Tool
- Drag & drop in all extracted audio tracks from step 1
- Shift-click to select all files in the list
- Set left "Audio" tab to:
- Encoder: CT AAC+
- Channel: Stereo
- Gain: 6 dB (necessary when going from 5.1 to 2.1)
- Set right "CT AAC+" tab to:
- Bitrate: 137 KBps
- Mode: Stereo
- Hit "start" button to begin transcoding
3) Open Mediainfo, open one of the extracted video tracks, & copy FPS number (usually 23.976 in my experience)
4) Open MKV Merge (mmg.exe in your MKVtoolnix folder)
- One pair at a time, drag & drop in the extracted video track and the *NEW* audio track ("transcoded" will be at the end of the filename by default)
- Click on the video track, then click "Format specific options" tab
- paste in the FPS number copied earlier
- Select output folder
- Click "Start muxing" button
- Once the file is muxed, click "remove all" before adding more files.
- Skip through the first finished file in a media player to see if the video & audio synced properly. If not, the FPS was entered wrong during step 4. Start over from step 3.
- If the audio is synced properly, repeat for each audio/video track pair from step 2.
5) Copy the files onto your SD card, open with Rockplayer, and enjoy!
If anyone has an easier way of doing this, I'm all ears. I searched for hours and couldn't find an easier way.