The Atrix is a peculiar beast when it comes to video and audio. While it is a very powerful device for certain things, it does lack in a few others. One of the most pronounced is video compatibility.
Please make note that this guide was made for Froyo-based (2.2+) firmwares, NOT the latest Gingerbread (2.3+) releases. However, the settings contained within play very nicely with the stock media players on the phone regardless of firmware.
FIRST: The Atrix does not play *.mkv files out of the box.
SECOND: Even with a media player from the market, *.MKV runs poorly.
THIRD:This guide will tell you how to fix these issues
So the Atrix will play 3 major video containers right out of the box. *.MP4, *.AVI, and *.3GP. The Stock media player will only translate stuff from those types of containers.
Audio works out of a boatload of containers. *.mp3, *.mp2, *.m4a, *.wav, *.wma, *.amr, *.ogg... those are the only ones I can remember off the top of my head.
But you don't care about what it'll play, you just wanna make it work.
How to make stuff play on your Atrix
Transcode with Megui walkthrough: Here.
Transcode with Handbrake: Here.
Transcode with CLI with FFMPEG: Here. (Thanks relaxed!)
*NOTE: My preference on media transcode programs leans very, very heavily toward Megui. Megui (found here) gives a level of video control that you can not obtain with many (read as 'any) other transcode programs. If you take the time to set it up, you can get the results you want every single time with just a couple of clicks.
I AM NOT RESPONSIBLE FOR BRICKING YOUR PHONE/COMPUTER/INTERNET CONNECTION/WHATEVER WITH THE USE OF THIS GUIDE. THIS GUIDE IS ALMOST EXACTLY WHAT I DO TO MAKE MEDIA WORK ON MY PHONE. IT WORKS 99% OF THE TIME, THE OTHER 1% OF THE TIME I MESS SOMETHING UP TWEAKING THE SETTINGS, IN WHICH CASE I FOLLOW THE STANDARDS LAID OUT IN THE GUIDE TO FIX IT!
Here is a list of supported codecs and containers that the Atrix plays that most people will be concerned with. As these are just containers, most of what you can put into them is almost unlimited. You can have h.264 video and flac audio in an AVI container, but it most likely will not work with any player due to the restrictions on said container. (Container first, with codec possibility laid out next to it):
(*)Main profile x264 will achieve better compression results. However, you must disable weighted B-frame/P-frame prediction. If the conversion software of your choice does not have the option for profile based encoding, then you must DISABLE weighted B-frames, and P-frames. More information on what these settings are can be found at the x264 main site, http://x264.nl. It should also be noted that any resolution at or below 1080p at any bitrate can be played, withstanding the speed of your sd card as long as you use the settings aformentioned.
(**) Due to limitations of the phone, audio tracks that are encoded in mono (1.0 channel) should be converted to joint-stereo or stereo for the best compatibility. If audio tracks have more than 2 channel stereo (IE 2.1, 3.1, 5.1, 6.1, 7.1 or any combination thereof) they need to be downsampled to stereo, Dolby Pro Logic, or Dolby PLII to eliminate the 'echo' effect that these files will produce. AAC does this nicely. AC3 to my knowledge will not play at all if the channel set is anything but 2.0. NeroAACenc is recommended for AAC compression, more info here.
(***) Using QQPlayer, I have managed to achieve a playable MKV with soft subtitles. The video inside the MKV *MUST* be xvid, compressed with 2 pass with a bitrate of LESS THAN 1700kb at FILM framerate (23.976FPS) and NO MORE THAN 848x480 resolution. Any resolution lower than those numbers will work, with any other aspect ratio also. QQPlayer can read the aspect ratio properly, so watch your video tags inside the MKV. The audio *MUST* be MP3 (stereo or j-stereo) below 192kbps. Any sampling frequency works. The subtitles must be SRT plain text. H.264 as a video codec inside the MKV WILL NOT WORK WELL. Anything but MP3 audio in the container WILL NOT WORK WELL.
TO SUMMARIZE THE MKV:
XVID@ <=1700kb 2 pass @ 23.976 fps, resolution <= 848x480
MP3 @ <=192kbps (44.1khz or 48khz will work)
SRT Plain text subtitle track
**** After examining a file I encoded using High Profile 8-bit h264 and AC3, I found that no matter what media player I used (stock/mx/qq/rockplayer) on my installation of CM7 weekly3, there was no sound. I cannot promise AC3 will work, and if anyone knows how to make it work (kernel dependence maybe?) please let me know. I will probably be doing an update on the whole guide when I get some more information
Special thanks to relaxed and kmiller8 on IRC for proving me wrong on a few things in this post.
Yes, this is an important step. Say you get a movie from a 'reputable' source, or you ripped your own. If you are anything like me, I like MKV files. They play nicely on my desktop running Vista (don't flame pl0x, I know Vista sucks), but don't work on the phone. Usually stuffed inside that shiny MKV is a high-profile x264 encoded video with ridiculous settings and a shiny 5.1 (or 6.1, or even 7.1) FLAC audio track. Sometimes subtitles! And even in more cases multiple audio tracks! Will your Atrix play this monster file? lolno. Can we make it work for your Atrix? Yes. Read on.
This example is going to be using a MKV file, and we will be converting to a 720p MP4 using x264 and AAC. (Most other files will work this way as well. If you are ripping a dvd and looking to stuff it on your phone, find a guide on the internet. Google is your friend. Most guides will tell you how to get the dvd into a workable format on your computer, from there you can use this guide.)
Step 2: Get Megui.
As said previously, you will need Megui. (found here). You will also need avisynth. (get that here; make sure you get version 2.5.8, as it is the most stable at the time of writing this.) Install avisynth first, then Megui to prevent any serious issues. Megui will tell you it needs avisynth before you install it anyway, so this cuts out a step in the process.
For best audio results, you can get neroAACenc also. When you update megui, it will tell you how to get this file. Follow the directions on the website it sends you to at the update step to get this awesome audio encoder. Megui will tell you how to make it work.
As stated before I am not responsible for bricking your computer with this software. I am also not responsible for any issues regarding bugs or technical support with the software I listed. I just use it. It works flawless for me on 3 different x64 based computers (Windows XPx64, Vista Ultimate x64, and 7 professional x64)
Step 3: Megui.
Megui, after it is updated and working, looks like a complicated piece of software. There are so many configuration options even the configuration options have configurations if you go deep enough. Lucky for us, they are not as complicated as they seem. We will only be working with a few of the options.
In this case, we will be working with a MKV that has a video, an audio, and a subtitle track.
A. Extract the file.
Tools > HD Streams Extractor.
The reason we do this is to get all the information we can out of the file. Choose the radio button for 'select file as input' and either type or click the '...' button to browse to your file. Once that is done, we want to extract everything. So under the streams list, check them all. If you want to change the location that they extract to, then do so it is all up to you. This particular case will produce 3 files, a video track, an audio track, and a subtitle track. Click Queue. This will take you back to the main window. Click the queue tab and click start at the bottom to begin extracting the files.
B. Index the Video
Now we have the files extracted, we need to index the video file that was produced from this extraction. To do this, go to Tools > File Indexer and choose the *.mkv file that was extracted from the last step. Why this file and not the original? Because this file has only video in it, no extra crap. The file produced will most likely be 'T1_Video - .mkv' unless your source had a strange index set to begin with. Because this is a MKV file, we only have one option for indexing, and that is with 'FFMSIndex'. Click the queue button, go back to the queue tab on megui and click start.
C. AVIsynth gui inside Megui
Once the previous step has been completed, we will have a window pop up with the video in it. Yay! This video has a few things we need to do to it before we can start the actual encode process though. In my example, the frame rate is too high for the phone to understand (120fps... i should slap someone for that), and it by default has no subtitles. Contrary to popular belief, we do not have to resize the video to 960x540 as per the resolution of the phone, because it will play back up to 1080p. This video is fine at 1280x720. So unless you are concerned with the amount of space its going to take on your phone, leave the resize option alone. (*) Go to the filters tab. Under deinterlacing, choose 'progressive scan'. Reason for this: this example is animu. For some reason, it cannot detect interlacing in animu. If you have a film or another source, then you can click analyze and it will figure out what it needs to do with the file. Under filters, choose either a spline16 or a spline36 (because we aren't resizing) for the resize filter. If you are going to try to upscale, make sure you choose one of the soft resize filters. (*) Subtitles: choose your subtitle file. In this case, 'T3_Subtitle - 3 Subtitle (ASS).ass'.
To fix the framerate problem I had with this video, I changed the actual script manually. Under the script tab I changed a value. Avisynth script is a pain, but this made convert it properly.
Reason I just changed the .assumefps is because the video is actually 23.976 fps, it was just tagged wrong when I extracted it. With this, we are done. Click Save and we can finally encode!
*If you resize the video to something smaller, make absolutely sure you choose the "resize mod16" option or things WILL break. Also, the only way to upscale properly is to add a soften filter and some grain to the video on the upscale. You can check google for some filters that will do that, and check with the megui nomenclature to get the filters working right. I don't recommend upscaling native 720p footage, but upscaling 480p or 576p footage tends to work OK.
D. The Encode. (Video)
Now we get to the part that actually matters. After you click save from part C, go to the input tab. Choose 'x264: *scratchpad*' under Encoder settings and click 'config'. The x264 Config dialog will open. Click the checkbox next to 'Show Advanced Settings'. Under the AVC Profiles pulldown, choose 'Baseline Profile' or 'Main Profile'. Please note that if you enable main profile, you will need to go to the 'Frame-Type' tab, and DISABLE 'Weighted prediction for B-Frame', and change 'P-frame Weighted Prediction' to 'Disabled'. Under Tunings, choose the type of video that you are using (in my case, animation). AVC level we can leave at unrestricted/autoguess. If you want a bit more compressability you can change the level if you want. The lower the number, the less information is stored per frame. If you want to change the bitrate you can, i prefer a constant quality of between 18 and 21, (the bigger the number the smaller the file fyi). Any of the other tabs are up to your discretion on modification. You don't need to change the other values. If you want to save the preset, click 'New' down by the presets and name it so you can just load it later from the main window without changing any of the other settings. Click OK, make sure the file format is 'MP4', then click 'Enqueue' under the video encoding.
E. The Encode (Audio)
Same drill as video. Choose the audio file, choose either 'Nero AAC: *scratchpad*' or 'FAAC: *scratchpad*', then click configure. It should also be noted that while FAAC is open source, you will get better results from NeroAAC. Both will give the same basic options. Under output channels, my personal preference leans toward 'Downmix multichannel to DolbyDigital Pro Logic II' for the simulated surround experience when plugged into a tv, and the samplerate at 48000hz for the best range of sound. As far as bitrate is concerned, VBR 100 will get you about cd quality sound. (NeroAAC give the option for a quality, Q=0.5 is a bit better than cd quality.) Again, you can save your profile as whatever so you don't have to click the options again, click ok and click enqueue on the audio dialog.
* side note, my example i did not re-encode the audio, as the audio extracted was AAC. lucky me~ *
** side side note, you can close out of the video preview window at any time after the video has been put in the encode queue.
F. Almost done...
In the main window, go to the Queue tab and click start at the bottom. After some magical mumbo jumbo, your files will be done. This will take a while depending on the specs on your encoding machine. After that is done, we need to make it into a file that has both the audio and the video. Under Tools > Muxer > MP4 Muxer we find just that. Choose your video, make sure the right framerate is selected (in my case, 23.976), choose your audio, and name your file at the end in the box named 'Muxed Output'. It will most likely try to name the file for you, you can change it to whatever you want as long as it ends in .mp4. Click Queue, go to the queue tab in the main window and click start one last time. Once that is done, you have a video that will play flawlessly in the stock media player on your phone.
And that is it. Results may vary depending on the video used, and bitrates/quality will vary depending on your tastes. If the final product is more than 2gb, it will cause some weird issues on the phone. If that is the case, reduce the bitrate on the video and that should solve your problem. If you are using a constant quality, x264 Q=20 (depending on motion) will yield between 350~400mb/30 minutes so plan accordingly. I personally have made a 720p video that was about 2 hours long fit 1.4gb with x264 baseline Q=20 and audio through neroAAC@Q=0.5.
If you would like some screenshots illustrating the process, you can go here to find them.
This is a very important step. Generally if you can load it into Handbrake, you can transcode it. There are all kinds of options we can use to transcode to make it work on the phone, and this guide will cover those steps.
Step 2: Get Handbrake
Handbrake can be found at http://handbrake.fr/. Instructions for download for your system can be found there. Currently Handbrake supports MacOS X, Windows and Linux.
Even though Handbrake supports a large number of operating systems, if you use Windows the preferred method of transcoding is still going to be MeGUI due to the reasons listed in the first post on this thread!
Step 3: Handbrake
Handbrake has a much simpler interface than Megui. However, because of this, there are much fewer options. This is good for a lot of users, but as stated before it does not give you much control over the video. For Linux and MacOS X users, this is going to be your best solution for a graphical interface. In the example I am going to use, again like the Megui walkthrough, we will be using a MKV file containing a video, audio, and styled subtitle track.
A. Load the file
First you need to load the file for input. Click on the button in the top left that says 'Source'. Choose your file that will be loaded. Under the drop-down menu that says 'Title:' you have a few options. For best results, choose the 'Frames' option and choose the entire video. This prevents chapters from being loaded into the file and makes the file more compatible with the phone. The Summary tab at the bottom will give you the details on the file that is loaded.
B. The video.
Under the video tab, you will be presented with some basic encoding options. We will be using H.264(x264) because it is what the phone can read easily. The other options we will not worry about. Keep the framerate the same as the source (Unless you are encoding from a dvd, then you need to follow a dvd-ripping guide) and choose your bitrate. With x264, the quality is inversly proportional, so if you choose a quality of 30, your file will be small but the quality will be garbage. Keep the constant quality between 18-23 for the best results with reasonable file size. If you want to target a certain file size or bitrate, you can choose to do so as well, but be aware that those settings will force a 2 pass encode that will increase the transcode time.
B1. H.264 Settings.
Contrary to popular belief, you do not need to 'install a preset' to make these work. Here is a list of settings you need to change to make it work on your atrix:
Weighted P-frames = OFF
Maximum B-frames = 2~6
Adaptave B-Frames = OFF
Those are the ONLY settings you need to change to make the video work. As long as the settings for weighted p-frames and adaptive b-frames are set to off, you can change any of the other settings to your liking. Leave CABAC on though, as it increases compression by a lot.
If you have an odd-sized source, or if your source has 'letterboxing', or if you have the urge to resize your video to whatever resolution, read the next section. Otherwise, skip to part C.
If you have a weird source that requires some special attention, click the button at the top that says 'Picture Settings'. From the dialogue that pops up you can resize, crop, add certain filters (deinterlace, IVTC, soften, sharpen etc...) to make your file more compressable and watchable. You can also use this window to resize your source, but upscaling via this method is not recommended due to picture quality problems on stretching. There are a lot of advanced options in here, and due to the complexity of said options, this guide will not go into detail on what they do, because if you are in here, you already have some idea what you need to do to fix your source.
Putting these sections together because they are easy. Under the audio tab, you are presented with a few options for the built in AAC encoder, FAAC. Choose your bitrate. 128kbps will give you a bit better than cd quality, 160 is a pretty good option for stereo, 192 is a good option for Dolby PL or Dolby PLII. If your audio track is multichannel, I strongly suggest you change the 'Mix' settings to Dolby PL/PLII. Reason: multichannel AAC produces a horrible echo when played back in stereo on the phone. DRC if you want to make the louds quieter and the softs louder.
Under the subtitle tab, you can choose your subtitle track. By default, it has no track selected. If you have subtitles you want to get on your video track, you need to click on the '+ subtitle'. This will automatically load the subtitle track from the MKV. (Alternatively, if you have a subtitle track outside the file you can click '+ Import SRT' to add a text-only subtitle track.) Choose the radio button for 'Burned In' to directly encode the subtitle track onto the video.
The atrix does not recognize chaptered MP4 files. So under the chapters tab, uncheck the box for chapter markers. This is not required, as it does not affect playback on the phone.
Almost done. Under the destination box at the top, choose the destination for the file. As a note, we will most likely have to rename the file to .mp4 after we are done, because for some reason the final product will be .m4v. Not hard, if the file works as m4v then good. If not, rename it to .mp4 and you should be fine. Now click start, grab a beer and walk away for a bit. This is going to take a while. When it's done, do what you normally do to get stuff on your phone.
Note: if "-vpre $preset" doesn't work, use -fpre /path/to/preset.ffpreset
Thanks to Girgizzlemuf for the great guide!
If you've found my post helpful and you don't have a dropbox account, please consider clicking the above image and signing up so we'll both recieve 250mb of free space. It's completely free for you and I need the space. Thank you!
The default boot animations on any device, no matter whichmanufacturer, are generally pretty … more
XDA Developers was founded by developers, for developers. It is now a valuable resource for people who want to make the most of their mobile devices, from customizing the look and feel to adding new functionality. Are you a developer?