How can I play MKV files on ChromeOS?
I have a lot of videos in MKV format on my local network available over NFS/SMB? How can I get them to play, without transcoding, on a ChromeOS machine?
google-chrome-osmatroskavideo
How can I play MKV files on ChromeOS?
I have a lot of videos in MKV format on my local network available over NFS/SMB? How can I get them to play, without transcoding, on a ChromeOS machine?
I have the same problem with my Windows 8 / Samsung TV. In Windows 7 I could rename files from mkv to avi and right click them and select "Play To" and select my TV.
My workaround (which doesn't require any third party software) is to rename the files to avi and then on the TV select the Content button -> Find my Computer, browse to Movies -> then to whatever folder has the movie I have just renamed to avi and open it. It will then play.
If you have not already allowed your TV to view your media library in Windows Media Player (via DLNA) you will need to open Windows Media Player click Stream -> More Media Options and allow your TV to browse your media files. You might also need to add your movies folder if it is not already in Windows Media Player. (Right click Videos -> Manage Video Library and add wherever you keep your movies)
Hopefully Microsoft allow MKV files to be played to TV's again via right click play to - but I wouldn't hold my breath.
Well, I did it. It’s not the optimal way, but I was in a hurry. Below is how I solved my problem.
(Also, do not forget to install mkvtoolnix. Linux users can simply pull in the package from their repository, while Windows users can try downloading mkvtoolnix from the official website.)
mkvinfo <mkv filename>
and get the subtitle index.mkvextract tracks <mkv filename> <subtitle track index>:<mkv filename>.ass
<mkv filename>.ass
with a text editor.mkvmerge -o <new mkv filename> <mkv filename> --language 0:eng <mkv filename>.ass
<new mkv filename>
with HandBrake and watch the transcoded file on TV.An example with the file dn-01.mkv
:
Run mkvinfo dn-01.mkv
and the program will print out some information about the mkv file. Look for the subtitle track and its corresponding number. Be sure to use the number within parentheses, since it is the one used for mkvextract
. In my case, the subtitle track information was:
| + A track
| + Track number: 3 (track ID for mkvmerge & mkvextract: 2)
| + Track UID: 476285904
| + Track type: subtitles
| + Enabled: 1
| + Default flag: 1
| + Forced flag: 0
| + Lacing flag: 0
| + MinCache: 0
| + Timecode scale: 1
| + Max BlockAddition ID: 0
| + Codec ID: S_TEXT/ASS
| + Codec decode all: 1
| + CodecPrivate, length 2057
| + Language: eng
Run mkvextract tracks dn-01.mkv 2:dn-01.ass
and wait.
Open dn-01.ass
with some text editor, and change the font sizes under the V4+ Styles
header in the beginning of the file. (Remember to change the size of all styles, not just the Default
.) Example:
Style: Default,Marker Felt,27,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,0,2,10,10,10,0
Style: SIGN,Sand,36,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,0
(more)
... becomes ...
Style: Default,Marker Felt,42,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,0,2,10,10,10,0
Style: SIGN,Sand,54,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,0
(more)
Save the file after the changes have been made.
Run mkvmerge -o dn-01-modified.mkv dn-01.mkv --language 0:eng dn-01.ass
and wait. After the process has been completed, the newly created dn-01-modified.mkv
will have an extra subtitle track, which should be larger in rendering size than the original subtitle track.
You’re now done! I wanted to watch the video on a TV though. If you want to do that too, or play it on some other device, then:
Transcode dn-01-modified.mkv
with some video transcoding program, using the appropriate settings for your targeted device. (Do not forget to tell the program to burn in the newly added subtitle track into the video itself, if your targeted device cannot play ASS subtitles!) In my case, I used HandBrakeCLI with the settings below for use on a Samsung 60" TV. Note that I am burning in the subtitle, since my TV doesn’t like ASS subtitles.
HandBrakeCLI -e x264 -q 20.0 -a 1 -E ffac3 -B 160 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mkv --loose-anamorphic --modulus 2 -m --x264-preset veryfast --h264-profile main --h264-level 4.0 --subtitle "2" --subtitle-burned 2 -i dn-01-modified.mkv -o dn-01-modified-burned.mkv
Play the transcoded file dn-01-modified-burned.mkv
on the targeted device.
As I said in the beginning: this is not an optimal process. Things can be done better, but I do not have the time to refine this process as of now. It would also be not-so-fun to do this for a large number of videos; it would get really repetitive. Luckily for me, I only had to do this for a few videos, but in the future, I’ll surely have more videos whose subtitle has to be enlarged, and by then, I’ll write a bash or python script to do everything automatically.
Best Answer
Some people report that renaming the files from .mkv to .mp4 is enough. Worth trying.
If this doesn't work, the only solution I can think of is converting the files to another format.
source