How can I insert the mysterious iPod Atom to make a movie iPod friendly?

Hello. I've been looking for an answer to this problem all over the Internet and haven't found anything! An Quicktime GURU out there?

THE PROBLEM:

I have several mp4 video files that iTunes won't sync to my iPod. They play well on QT, FrontRow and iTunes but then iTunes says "This video cannot be played on this iPod".
Yes! you know that message too...
We all have gotten that message before, even when we know the video will play perfectly on the iPod because it was encoded on H.264, AAC, etc, etc...

Doing a little research I came to the fact that the problem is that these videos are missing an "iPod Atom Tag" which tells iTunes that the video can actually be played on the iPod. Seems quite simple but wait, there is a catch...

Nobody knows how to insert this iPod Atom in the mp4 file!!!

I found a nice UNIX app called AtomicParsley which let's you edit these tags but then I'm missing the important information... The iPod Tag code and the value which is supposed to be set to...

THE QUESTIONS:

Does anyone here has any idea on how to push the iPod Atom inside the mp4 file? Will AtomicParsley do the job?

Which is the code of the iPod Atom? Is it uuid?

Which value should I assign to it?

Is there anything else I have to do to the files to make them iPod friendly?

Most people would say that the easiest way is to use Quicktime Pro to re-encode the files but then the files grow in size, they loose some quality and features and not to mention that it takes forever to re-encode them again...

I believe that this app, AtomicParsley can do the job if I know which tags to modify and the values I should set them to but that's the information I'm missing...

I would really appreciate if someone can point me into the right direction and give me a little help with this matter. Thank you very much!

Alejandro Cordero
Costa Rica.

From 128K to Xeon, Mac OS X (10.5.2), Apple Collector

Posted on Mar 23, 2008 3:53 AM

Reply
30 replies

May 12, 2008 2:49 AM in response to Apple Lifestyle

Try this script:

http://dougscripts.com/itunes/scripts/ss.php?sp=setvideokindofselected

I was copying tv shows, but couldn't get them to show up in itunes as TV shows (in the right place - they'd show up as movies). This script did its mojo and made the tv shows do the right thing.

Now I have no idea if this will work for you, but if you can get the movies into itunes (which I assume you have), then using this script and setting the video kind to 'movie' will probably do exactly what you want.

Again, I haven't tried it for this application, but it worked swell for mine.

Hope this helps...

Jul 15, 2008 8:46 PM in response to Andreyco

First I downloaded AtomicParsley and tried this command. It said that DeepScan was not a command it recognized.

After further investigation I discovered you had to run a different version of AtomicParsley by putting the command '/path/to/AtomicParsley svn co https://atomicparsley.svn.sourceforge.net/svnroot/atomicparsley atomicparsley'

Then I tried again and it appeared to work (ie no error message) but nothing happened. Finder did not indicate my file had been modified and it still wouldn't go on my iPhone.

What am I doing wrong?

Jul 19, 2008 8:26 PM in response to Apple Lifestyle

If you find the answer to this, can you send it to me? I have over 200 movies (M4V) made with earlier versions of handbrake that I do not want to re-encode. I just want to add the iPod atom.

If AtomicParsley works, great. If not, I'll write a quick program to do it myself and put it out as freeware - no one seems to have the answer to this question!

Thanks in advance.
Adam

Aug 9, 2008 12:15 PM in response to Gary Keam1

I'm currently playing with AtomicParsley for a different reason, but the comments I see in the source code say it won't overwrite when it isn't a release version.

You might want to try writing the result to a different file, rather than using overWrite. The option should be --output pathname.

Now if I can just figure out where to stick this stupid colr atom....

Aug 10, 2008 3:13 AM in response to Adam Nash

Hi, I have been reading this thread, and I found it so pitiful how the OP had a hard time bringing his point across, so I looked for an answer (although I don't have an ipod lol).

Here's what I found: You have to compile the latest version of Atomic-Parsley yourself.
You can find it here: http://atomicparsley.svn.sourceforge.net/viewvc/atomicparsley/trunk/atomicparsle y.tar.gz?view=tar
Unpack it and compile it with the following Terminal commands (You have to have the 'Developer Tools' installed for this):

cd atomicparsley
autoconf
./configure
make

Now you should have a working binary named 'AtomicParsley'.
The command-line options for inserting the ipod-atom are apparently undocumented,
but it seems to work like this:

./AtomicParsley /Users/YourName/Path/toYourMovie.mp4 --DeepScan --iPod-uuid 1200

I can't test it but it hopefully works. With one file created with Quicktime it said:
'the ipod higher-resolution uuid is already present.'

Aug 10, 2008 12:21 PM in response to Adam Nash

I'm so sorry, even if I can't test it on an iPod, AtomParsley doesn't seem to work. I tried the above command ( 'AtomParsley ... --DeepScan --iPod-uuid 1200') with a mp4 created by Handbrake (Dimensions: 720x336) and nothing was added. No ipod uuid.

@Adam Nash: if you really want to program a freeware utility to do it, I think some code from Handbrake could be easily adapted. I'm sure it would be faster to write such a thing than it is to re-encode 200 movies. Good Luck. Here's the code that does it in Handbrake (ipodutil.cpp):

/*
* MP4 library API functions
*
* These are wrapper functions that provide C linkage conventions
* to the library, and catch any internal errors, ensuring that
* a proper return value is given.
*/

#include "mp4common.h"

static u int8t ipod_magic[] = {
0x6b, 0x68, 0x40, 0xf2, 0x5f, 0x24, 0x4f, 0xc5,
0xba, 0x39, 0xa5, 0x1b, 0xcf, 0x03, 0x23, 0xf3
};

class IPodUUIDAtom : public MP4Atom {
public:
IPodUUIDAtom() : MP4Atom("uuid")
{
SetExtendedType(ipod_magic);

MP4Integer32Property* value = new MP4Integer32Property("value");
value->SetValue(1);
AddProperty(value);
}
};

extern "C" void AddIPodUUID(MP4FileHandle hFile, MP4TrackId trackId)
{
MP4Track* track = ((MP4File*)hFile)->GetTrack(trackId);
MP4Atom* avc1 = track->GetTrakAtom()->FindChildAtom("mdia.minf.stbl.stsd.avc1");
avc1->AddChildAtom(new IPodUUIDAtom());
}

Message was edited by: OlliMayr

Aug 22, 2008 6:54 PM in response to Apple Lifestyle

Ok,

before you go crazy about not understanding your question, believe me, I do understand.... that said....

I tried to compile a movie from a DVD using Handbrake and the iPod Atom setting. Handbrake seemed to work great.... created a m4v file instead of the usual mp4 file. I tossed the file into iTunes, seemed ok, but when I tried to send it to my generation 5 ipod video, no go.... so I am assuming the the atom thing is for iPhones and iPod touches?

Anywho.... I have been using a utility called VisualHub to accomodate my iPod needs. I compile the movie using Handbreak and use the AppleTV settings so I get a good reproduction on the flat screen TV, then I take the compiled movie from Handbreak and toss it through VisualHub set to ITUNES - ALL DEVICES and STANDARD for the quality. You can stage up the conversions, so kinda' set it and forget it. And the compiling goes pretty quick. End result, smaller file, iPod compatible (both Gen 5 and iPhone - touch), and the utility can handle a list of files so you can stage up the job, and go to sleep, work, vacation, etc...

Again, I know it is not the simple add the atom trick, but what I can tell you from my experiment is that the atom thing (at least for the 5th gen iPods) won't work anyway...

Kos

Aug 22, 2008 7:29 PM in response to OlliMayr

ok... I tried the compilation.... downloaded the developer tools, installed, grabbed the sc for atomicparsley, followed the directions... all seemed to work well except at the end of the ./configure routine. I recieved the following error...

configure: creating ./config.status
config.status: creating Makefile
config.status: WARNING: Makefile.in seems to ignore the --datarootdir setting
config.status: creating src/Makefile
config.status: WARNING: src/Makefile.in seems to ignore the --datarootdir setting


then when I run MAKE.... it rolls through lots of feedback, but does not create the executable. this is the end of the MAKE routine feedback...


AP_NSImage.mm: In function ‘bool ResizeGivenImage(const char*, PicPrefs, char*)’:
AP_NSImage.mm:204: error: ‘_NSBitmapImageFileType’ was not declared in this scope
AP_NSImage.mm:204: error: expected `;' before ‘filetype’
AP_NSImage.mm:208: error: ‘filetype’ was not declared in this scope
AP_NSImage.mm:212: error: ‘filetype’ was not declared in this scope
AP_NSImage.mm:216: error: ‘filetype’ was not declared in this scope
make[1]: * [../obj dir/APNSImage.o] Error 1


any ideas?

Sep 10, 2008 3:43 PM in response to Apple Lifestyle

after some experimenting using the helpful information from this thread, i present to you.... thanks to Andreyco and OlliMayr, whose solutions i'm rolling up into these instructions. also thanks to Darwinports for the AtomicParsley source compilation fix.

THE SOLUTION:

1.) get the latest version of AtomicParsley source at http://atomicparsley.svn.sourceforge.net/viewvc/atomicparsley/trunk/atomicparsle y.tar.gz?view=tar (don't get the binary, it's older than the source files and doesn't do what you'll need it to!)

2.) edit the file "atomicparsley/src/AP_NSImage.mm" and change the text "_NSBitmapImageFileType" to "NSBitmapImageFileType" wherever it appears in that file. (this fixes a compilation error that occurs under Leopard)

3.) compile atomicparsley with these steps:
cd atomicparsley
autoconf
./configure
make

4.) insert the iPod atom with this command:
./AtomicParsley /Users/YourName/Path/toYourMovie.mp4 --DeepScan --iPod-uuid 1200

and you're done! in my case, it turned out my files weren't encoded properly to have the iPod Atom inserted, so i received this message:
"AtomicParsley warning: the AVC track profile/level was too high. The ipod hi-res uuid was not added."

but hopefully this will be useful to all of you on this thread. good luck!

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

How can I insert the mysterious iPod Atom to make a movie iPod friendly?

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.