By Werner Ruotsalainen on Sun, 07/08/2012
UPDATE (08/09/2012): in the comments section below, I elaborated on deinterlacing. Note that I'll devote a complete article / tutorial to these subjects (using X.264 / HandBrake / Episode to deinterlace etc.) some time. Before that, it's mostly HandBrake's (default) decombing that will be your best friend.
UPDATE (08/04/2012): THIS thread has a lot of discussion of the subject. Remember to prefer my statements to ones that state the opposite! (The thread is full of factual errors.)
Particularly if you're outside the US and/or your mother tongue isn't English and/or have a large collection of DVD's and/or prefer the best quality possible (which isn't always the case with the material in the iTunes Store, both video and audiobook-wise), you may want to prefer converting your DVD's (or, for that matter, Blue Ray discs, if any) to something iOS-friendly. (Why, you may ask. 1.: you can't re-download your movie purchases from non-US accounts, unlike with AppStore or music purchases (related discussion). You can't even stream them from iTunes Store to your Apple TV! 2.: few iTunes Store movies have closed captions, which may be needed by non-native English speakers. For example, NONE of the Monty Python movies / TV episodes are captioned, just to mention an actor group I've closely looked for closed captioned videos of. 3.: both movies and audiobooks (but NOT music files) in iTunes are known for being a little bit overcompressed. For example, Douglas Adams' audiobooks and radio dramatizations are almost all 64 kbit AAC's; no wonder they have a lot of negative feedback in the Store. Videos also exhibit pretty clear overcompression artefacts – see for example THIS article. You may also want to read THIS for a discussion directly comparing converting your own DVD's / BD discs to purchasing from the iTunes Store instead.)
While some apps (for example, GoodPlayer) can play back DVD files directly, there are several advantages of converting your DVD's. Among other things, you can drastically reduce the storage requirements (this is even more true of Blue-Ray discs.) Second, even the easiest format to convert to, MKV (see the discussion of MakeMKV below) with a non-recompressed, MPEG-2 video stream in it, is far more widely supported on iOS, than the original DVD version. (Let alone the original Blue Ray disc content, which in no way can be played back on iOS.) Finally, if you do compress these MKV files further to H.264-based MP4 files with, say, the absolutely excellent and, as with MakeMKV, free HandBrake, you not only reduce the storage usage by around 60%, but also make your stuff 100% compatible with all iOS players, even with the stock Videos app. Below, I elaborate on all questions you may ask during the process.
The first step of the conversion is converting the DVD to MKV via MakeMKV (free download link). It's really a straightforward process: you, after clicking the first icon at the top left, either point MakeMKV to the disc drive (it's the default) or, if you have the (already-ripped) DVD files elsewhere, just browse to the VIDEO_TS.IFO in the VIDEO_TS directory. Then, all you need to do is clicking the third icon (save) and the DVD (or Blue Ray disc, for that matter) will be remuxed to the much more widely supported MKV format:
The files MakeMKV creates contain the audio, video and (possible) subtitle streams in exactly the same format they initially were, “only” in a brand new (MKV) container. (This is why the conversion is so fast!)
You can already play back these MKV files, should you want to avoid having to recompress it for even better iOS app compatibility and much lower file sizes. Note that,
1. the original subtitle format of DVD's is graphical. (Actually, you can't easily convert them to textual formats. If you don't want to do any OCR'ing (see THIS for a complete tutorial) and you can live with the somewhat lower compatibility rate, you can safely stay with these original formats.)
2. should you want to give a try to video players yourself, I've made the test MKV file (a two-minute trailer from the Finnish DVD “Promise” with two audio and several subtitle tracks) available HERE.
Note that these MKV's contain MPEG-2 video and, therefore, should not be handled in the same way as most high-definition MKV's out there, which have H.264 video. Players that blindly try to handle the video stream as a H.264 stream, generally, either crash or don't have any picture. An example of them is “CineXPlayer – The best way to enjoy your Xvid movies by NXP Software B.V.”, which only presents a black screen with the audio track being played back.
MPEG-2 MKV players
The following players will play back these standard-definition MPEG-2 MKV's properly (not messed-up aspect ratio (many players play this video back at 4:3, which is completely wrong), with the nominal 24/25 fps – that is, without stuttering - etc.). (In parentheses, I also list whether the player is able to render subtitles (if any) and whether you can switch between subtitles (if more than one))
Can also switch subtitles:
VM Player HD (see the lowermost section of the Settings menu (upper left corner during playback))
Oplayer HD by olimsoft
GPlayer by Ginkgo Tech
ProPlayer (with color problems in the subs, though)
AVPlayerHD by EPLAYWORKS.Co.Ltd. (exactly the same as with ProPlayer: color problems but, otherwise, excellent)
GoodPlayer by Hustmobile
XBMC (tested: today's latest 12.0 alpha nightly build) (no iPad 3 retina support, though!)
BUZZ Player HD by BUGUN Software (switching is in Settngs > Stream Index; don't forget to disable the new MKV player before playback, otherwise, the app will hang! Color problems.)
AcePlayer (a quick warning: it doesn't recognize the aspect ratio in either TS or MKV containers; it defaults to 4:3. It must be manually reconfigured to 16:9 (Info icon / Aspect Ratio))
Only one subtitle stream is rendered and can't be changed:
VLC player (both the ex-AppStore and Cydia version)
Movie Player – Plays any Video! by Dominic Rodemer
Azul Media Player - Video player for your iPad By Gplex
iSpring Movie Player
Lists the subtitle tracks but doesn't display them:
HD Player Pro
Absolutely no support for subs:
It's Playing by Addition, Lda
If you take a closer look at the list, you can see that the first group (the one that can render any subtitles) has almost all the most recommended players: ProPlayer, AVPlayerHD, GoodPlayer, XBMC (note that it doesn't support the iPad 3's retina screen not even in the current (07/07/2012) 12.0 alpha nightly) and BUZZ Player HD. Unfortunately, the other highly recommended title, It's Playing, doesn't support graphical subtitles at all.
If you'd like to make an MP4 file from the MPEG-2 MKV output of MakeMKV, you'll need to use HandBrake or a similar app. HandBrake is the fastest (some benchmarks are HERE); however, other apps can turn out to be a easier to operate if you plan to do mass-transcoding of several files. In HandBrake, you need to import each of them separately. The developers have chosen to do so as each movie file needs to be separately checked and fine-tuned for, say, cropping. This is indeed true with sources like digital TV broadcast (DVB), where, at least here in Europe, you can't predict whether there will be a 2-4-6-pixel-wide black bar on either (or both) sides of the video and/or you need to en/disable decombing based on whether the actual content you transcode is interlaced or not and/or you want to chop out the upper half of the logo of 2.35:1 movies (logos are placed as if the movie was a 16:9 one) and/or overwriting the cropping decision of HandBrake with burnt-in subtitles with 2.35:1 movies (Handbrake's automatic scanning, generally, chops off the second row of subtitles in 2.35:1 movies).
With DVD (or, in general, non-DVB) sources, however, you rarely need to make any changes as there are no channel logos, burnt-in subtitles or black bars. Therefore, you can safely go with batch apps like the free and excellent, OS X-only HandBrakeBatch, which I recommend a lot. Just drag and drop the movies onto its window, set the target device (generally, “Normal” will do) and click “Start”:
Note that the Start button will become, after adding files, hidden under OS X 10.6 (Snow Leopard), which is a known issue. Just resize the window and it'll be shown again. Also note that, by default, subtitles are disabled. To enable the transfer of all subtitles to the target MP4 file, select the “All available languages” radio button (annotated by a red rectangle):
No further settings need to be altered – as you can see, batch (mass) converting of files is really easy using HandBrakeBatch!
Again, let me emphasize that batch mode should only be used with video source content not needing different cropping, decombing etc. settings – that is, not with DVB material. With DVB, just use the plain HandBrake, where you can set cropping etc. directly and individually.
When the MP4 (H.264) file is ready...
Then, you can play it back with any MP4 & H.264-compliant player – even iTunes on the desktop and the Videos app on iDevices. Note that these apps won't be able to render embedded subtitles as they're (still) graphical, and Apple's own apps only render textual embedded subtitles (in addition to the, technically and programmatically, entirely different closed captions).
Should you need a player capable of not only H.264 playback (again, almost all players are to do so), but also rendering these embedded (and nonstandard) subtitles correctly, you'll want to turn to the above list of apps, with the following differences:
Absolutely no subtitles will be shown (as opposed to the MKV case):
iSpring Movie Player
Movie Player – Plays any Video! by Dominic Rodemer
Subtitles are only shown if you switch manually to software decoding:
VM Player HD: Unfortuately, in SW decoding mode, the H.264 playback becomes VERY slow even at SD resolutions (original MPEG2 MKV playback is OK); colour problems
viPlay (Lite) and 8player (switch under Settings > Settings > Video Player > Native Player)
BUZZ Player (switch via Playback > Coe Engine > Buzz Player Engine)
Azul Media Player
Subtitles are also shown in the preferred hardware decoding mode:
AVPlayer(HD) (exactly the same as with ProPlayer: color problems but, otherwise, excellent. And also in HW mode!)
(BTW, the file exported by HandBrake is HERE, should you want to give the video players a test ride.)
As you can see, when it comes to the most recommended players, it's only ProPlayer and AVPlayer(HD) that can both play back the videos using hardware decoding (to keep CPU and, consequently, battery usage down) and display subtitles (along with being able to switch between them.) If you're serious about DVD subtitles (without OCR'ing them), these two players should be the first to choose from.
What about “It's Playing”?
As you can see in the above list, It's Playing (in my opinion, currently, It's Playing is the best all-in-one MP4 player - see my review of the latest version HERE) can't render graphical subtitles at all. Nevertheless, I'll talk to the devs and ask them to implement support for graphical subtitles. By the way: if you don't need subs and/or need the excellent DSP capabilities of It's Playing, you can use it for both the original MakeMKV-output MKV and the HandBrake-output MP4 playback.
Note that most (well-produced) non-4:3 (that is, 16:9, 2.35:1 etc. widescreen movies / stuff) DVD's (and, for that matter, standard definition DVB recordings) are anamorphic (please see the Wiki for more info on what it is). When using hardware (but NOT with software!) MP4 / H.264 decoding in It's Playing, the last pixel column of the original content is repeated. For example, if the video is PAL but is 16:9 and non-letterboxed (anamorphic), which means 1024-pixel wide, then, about half of the screen will be filled by the multiplication of the rightmost column. With the above ( anamorphic) MP4 file, you'll see something like this:
(I've annotated the distorted, column-duplicated area with a red rectangle. Click the image for a full-sized one.)
Another anamorphic file (this time, from a DVB source) is HERE, should you want to reproduce the bug with another video.
To fix this, you can either use software decoding (I don't recommend it for the above-explained reasons: CPU and battery usage) or zoom into the video with pinching, gently repositioning it on the screen (drag it to the right while pinching), until only the non-distorted part is visible. The developers of the app know of this bug and will hopefully fix it too.