MP4 and M4A File Support

From wiki.jriver.com
Revision as of 00:14, 6 April 2014 by Glynor (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Deprecated: This content has been deprecated as of MC16 and may no longer be valid. Please refer to Red October for additional details.

A MP4 file is the common name (based on the regular file extension) for MPEG-4 Part 14 container files. Put simply, MP4 files are a modern file format that serve a similar purpose to AVI files and other audio and video container formats (but provides new features not available in older formats).

M4A files are simply MP4 files that contain only an audio stream (usually AAC encoded). There is no difference between an M4A file and an MP4 file other than the file extension. In fact, the M4A extension was actually not part of the original MP4 "specification" but was invented by Apple to differentiate audio-only MP4 files from video MP4 files. Other common MP4 extensions include: M4V (for video), AAC (for AAC encoded audio files), M4P (for MP4 files "protected" with Apple's DRM system), 3gp (for Mobile Phones), and M4B (audiobooks). All of these different file types are really just MP4 files "inside" (though 3GP files are special simplified MP4 files).

Enabling MP4 Playback in MC

In order to play these files back with MC you need to have either:

  • Apple's Quicktime Player installed
  • proper DirectShow filters installed, and you need to enable DirectShow M4A support in MC

Generally, using DirectShow for playback will give better results for M4A files in MC12. DirectShow playback allows MC to use visualizations on the files, to natively convert the files to other formats, and a number of other features not available with Quicktime-supported file types. However, because most new users have Quicktime already installed (while they may not have proper DirectShow filters installed to support MP4 decoding), MC disables DirectShow support in favor of Quicktime by default. This is easy to change though!

Enabling MP4 Playback Using Quicktime Player's Engine

Uncheck both M4A and MP4 in the DirectShow Playback Settings dialog box in order to enable playback of these filetypes using the Quicktime engine. Check both boxes to enable DirectShow playback support.
further information: DirectShow Playback Guide: Apple Quicktime Player

This couldn't be simpler. Simply install Apple's Quicktime Player, which is available free of charge from Apple for a variety of platforms.

Installing Quicktime can sometimes create more problems than it solves because of some of the default settings the application uses when you install it. All of these annoying qualities can be mitigated or eliminated by being very careful as you proceed through the installation process, and by taking a few steps after the installation is complete. For a detailed guide to installing Quicktime in the least annoying method possible, refer to the Quicktime Installation Guide at CodecGuide.com.

Then you also need to tell MC to use Quicktime (rather than DirectShow) to play these file types back. Simply go to Tools --> Options --> Playback --> DirectShow Playback Settings and uncheck M4A and/or MP4 in the DirectShow Filters list. You can use this same method to tell MC to use Quicktime to play back other MPEG-4 container file formats (such as 3g2, 3gp, aac, m4v, etc) in the same way by simply unchecking the relevant box.

Enabling MP4 Playback Using the DirectShow Engine

further information: DirectShow Playback Guide: What Filters Do I Need

As mentioned earlier, while MC uses the Quicktime Engine as it's default method of decoding MP4 and M4A files, this is not always the best option. You can get greatly expanded features and capabilities by using DirectShow to decode and play back these file types. In order to properly handle MP4 playback in MC12, you must do both of the following:

  • Install DirectShow filters capable of decoding the MP4 files and any audio and video streams that may be contained within the file. This normally requires a set of multiple different filters.
  • Set MC to use DirectShow to decode and play these file types.

There are a wide variety of different filters that can be used to decode MP4 files using DirectShow. By far, the simplest method to make it Just Work is via the Combined Community Codec Pack (CCCP). For more information on this codec pack, including how to obtain and install it, please refer to the main DirectShow Playback Guide article.

If CCCP doesn't work for you for some reason, there are alternatives discussed in the DirectShow Playback Guide: Alternative Filters article.

Then you also need to tell MC to use DirectShow (rather than Quicktime) to play these file types back. Simply go to Tools --> Options --> Playback --> DirectShow Playback Settings and check M4A and/or MP4 in the DirectShow Filters list. Refer to the image above, and check both boxes (rather than unchecking them as you would to enable Quicktime playback). You can use this same method to tell MC to use DirectShow to play back other MPEG-4 container file formats (such as 3g2, 3gp, aac, m2v, etc) in the same way by simply checking the relevant box.

Please read the following sections for exceptions.

Apple Lossless Audio Codec (ALAC)

DirectShow filters in CCCP can not handle ALAC files. To play ALAC in DirectShow, a different DirectShow filter needs to be installed.

DSP-Worx ALAC DirectShow filter (DC-BASS Source) can be installed to play ALAC m4a files. Support of UNICODE characters in file paths is available in version 1.2.0. Make sure you have this or newer version if you need unicode support.

Apple FairPlay DRM Encrypted Files Do Not Work in DirectShow

Even though DirectShow is generally preferred, there are cases where it cannot be used to handle playback. Apple FairPlay DRM encrypted files (M4P) is an example. For this file type, you will need to use Quicktime to handle playback because there are no DirectShow filters capable of handling this encoding.

Tagging

MC12 does not support writing tags to m4a files, although it does read m4a tags. MC16 supports writing M4A tags.

More information

A thread on encoding M4A from MC: http://yabb.jriver.com/interact/index.php?topic=63899.msg427047#msg427047