.comment-link {margin-left:.6em;}

Tuesday, September 19, 2006


iPodDrop 1.5 released

UPDATE: There was a typo in the URL before. The file downloaded fine, but didn't have a ".zip" extension. I've updated the URL.

Bet you didn't see that coming, eh? Another release of iPodDrop, and a BIG one at that!

There are three main changes/themes to this release, which I'll talk a bit about.

First, iPodDrop has been updated for iTunes 7 and the new iPod firmware that was released with it. This means that (at least if you use TV mode), you need iTunes 7 and the latest iPod firmware (currently 1.2 for the 5th gen iPod) to use this new version of iPodDrop. If you don't use TV mode, you should be fine with iTunes 6 and the old firmware.

Why the change? Because of Apple's new movie store! When Apple launched their new movie store, they decided that ALL videos sold through iTunes would change from 320x240 up to 640x480. Little problem though, the highest 4:3 resolution the iPod could decode was about 554x414. So how did Apple fix it? They released a new version of iTunes and the iPod firmware that supports higher resolution video decoding! As such, iPodDrop now targets a total resolution of up to 307200 pixels, instead of the old max of 230400 pixels! This means that most content downloaded off the internet should transcode without rescaling, and original DVDs should require significantly less scaling than before. So, higher quality TV output with iPodDrop! Hurray!

The second major change is a new version of ffmpeg as the core of iPodDrop. The version of ffmpeg used was something like a year and a half old, and a lot of fixes have gone into ffmpeg in the intervening time. As such, the new version of iPodDrop should be able to convert an even larger variety of videos, and will hopefully be significantly more stable. But with this comes another change... 160kbit audio is working once again! It turns out that the problem was that iPodDrop was outputting "main" profile AAC audio. The iPod has no trouble decoding it, and iTunes used to accept it just fine, but since it isn't officially supported, Apple updated iTunes to prevent you from using it. Well, the newer version of ffmpeg now supports the "low complexity" AAC that iTunes needs. So, higher quality audio output with iPodDrop! Hurray!

The third major change is a slew of DVD-related changes. iPodDrop can't do much automated detection of the various types of DVDs (although it can properly handle non-anamorphic non-interlaced DVDs without intervention). There's not terribly much that can be done about this without getting a lot more involved with the input files than iPodDrop is now. However, you should at least be ABLE to properly convert DVDs with iPodDrop, so I've made a bunch of additions. First, you can tell iPodDrop that the input file is an anamorphic DVD, so that it will get the aspect ratio correct. Second of all, you can tell iPodDrop to de-interlace the input video, if you have an interlaced DVD. Third, iPodDrop should be able to detect standard PAL DVDs on it's own as it can NTSC DVDs. And lastly, there's a new "sample" mode that will encode a 60 second sample instead of the full video, so that you can make sure you've got everything working right. So, iPodDrop can now convert most unencrypted DVDs properly! Hurray!

As you can see, a lot of major changes in this release. There are also some other more minor improvements, as you can see in the changelog, such as support for 4 thread SMP (if you have four virtual or real processors/cores). All in all, a real big improvement. However, due to the number of changes, and the scope of some of the changes (such as the ffmpeg upgrade, which involved changing the interface to ffmpeg to be able to talk to the new version), there is a bigger potential for bugs to sneak in. So, if you have any problems with the new version, or anything doesn't work that worked before, please get in touch with me and let me know, so I can fix it (note that the -ab160 option has been removed since iPodDrop now defaults to 160kbit).

You can download iPodDrop v1.5 here: iPodDrop v1.5 (2.7MB)

Finally, the changelog:

- Upgraded version of ffmpeg. This should allow iPodDrop to read more formats, and fixes the 80kbit audio problem. This might break some things, please report bugs if you find something that worked before no longer works.
- Changed audio bitrate back to 160 since the newer version of ffmpeg fixed the issue
- Removed the -ab160 option as it is no longer required
- Added support for anamorphic DVDs via -anamorphicdvd option. It forces a 16:9 aspect ratio, which anamorphic DVDs need to be played back at. I don't have any anamorphic DVDs to test with, so I can't automate this, it needs to be specified manually.
- Added -smp4 option that uses 4 threads (-smp uses 2). This is useful if you have a four real or virtual cores/processors.
- Increased max TV resolution from 230400 pixels to 307200 pixels. You'll need iTunes 7 and the latest iPod firmware. For example, this means that iPodDrop can now output at 640x480 and other resolutions that multiply to 307200 pixels.
- Added -sample option to only encode 60 seconds of video, so you can see if the video is encoding properly without encoding the whole thing.
- Added -deinterlace option to de-interlace the input video. Probably mostly useful for DVDs.
- Added autodetection of PAL DVDs (720x576), previously iPodDrop would only autodetect NTSC (720x480).
- Added a warning if ffmpeg couldn't write an output file (this change is missing from the readme changelog)

And to satisfy the GPL requirements of ffmpeg, you can get the source of the build of ffmpeg used here: http://celticdruid.no-ip.com/source/

The source of iPodDrop is, as usual, included in the package. Creative Commons license, as specified in the source, etc.

Oh, and as a note, really high resolution non-4:3 files don't look right on the iPod screen unless it's outputting to a TV. When I transcoded a DVD for testing, the iPod screen only showed the center of the film zoomed in with the rest cut off. However, it displayed normally when the iPod displayed to a TV. The iPod displays 640x480 content on the screen just fine, however.

You know you're my hero, right?

Also, any plans to allow for a queue of files?

It's a feature that I keep forgetting about each release ;)

I'm honestly not sure how hard it would be to add support for it. Probably not that hard, but not trivial either. I'll try to remember for next release, although who knows how long that will be. One thing you can do in the mean time is start several files up at the same time, and set them to different priorities each (in task manager). You can get away with doing three or so files at the same time like this. The net result is a sort of queueing, since the normal priority task will take pretty much all the CPU time until it finishes, at which point the below normal task will get most of the CPU time, and when that finishes the low priority task will get time. You could also do multiple files for each priority level, in which case, IIRC, each job at a priority level will split the processor.

Or, heck, you can just start up multiple simultaneous jobs, if you don't care about when any file finishes, just that they all finish :P

This approach actually works really well with dual core (or multiprocessor, or hyperthreading). ffmpeg's multithreading support isn't great. It doesn't seem to do a very good job at using each CPU fully, at least in the previous version of iPodDrop (I haven't had a chance to test 1.5 and the new version of ffmpeg on a dual-core system).

So, again, I'll try to remember to look into queues for the next release, and in the meantime you can play around with doing multiple files at the same time. Or, if you don't mind a bit of work, you can write a batch file to call iPodDrop for each file, since iPodDrop will run until it finishes, and then quit. So the batch file would (hopefully) run the first ipoddrop command, then wait for it to finish, then run the second, etc.
I have a dual core athlon XP. This new version seems to crash midway through the files if I try and run more than 2 at a time (total).

SMP really doesn't work well, I think you need multiple pass encoding to really take advantage of it.

Drop me an email at ipod@shoeish.com, I want to show you a screenshot of another weird issue I have every once in a while.

Thanks again!
Doh, dual core athlon 64 is what I meant. Durr.
Here's the batch file(s) that I use to feed my pvr recordings to iPodDrop and load the files into itunes every night. I haven't checked yet to see if there's anything that breaks in version 1.5.

There are two batch files. The first (isqueeze.cmd) gets the files to work on and feeds them to the second (isqueezeAction.cmd) one at a time.

isqueeze.cmd needs to be called with a parameter of the working directory for the queue. I've added a temporary hack to copy new files from my PVR as the feature that should have done this for me was borked at the time. You probably just want to ditch these lines.

isqueeze.cmd starts below;

@echo off
rem batch file by mick to process all files in a show folder

rem set path below to itunes unknown artist unknown album for checking cleanup of converted mp4 files
rem note that itunes needs to be set to copy imported files into the library
set itunespath=C:\iTunes\iTunes Music\Unknown Artist\Unknown Album

set folderpath=%*

rem temporarily added the following until I can work out what's borked showsqueeze copy
rem use archive bit to get only new recordings
xcopy /a \\hal\f$\shows\*.mpg %folderpath%
attrib \\hal\f$\shows\*.mpg -a

echo Folder path is %folderpath%
echo --------------------------------------------------------------------------------- >> "%folderpath%\IsqueezeLog.txt"
echo -- %date% %time% - %computername% - Begin processing files in: >> "%folderpath%\IsqueezeLog.txt"
echo -- %folderpath% >> "%folderpath%\IsqueezeLog.txt"
echo --------------------------------------------------------------------------------- >> "%folderpath%\IsqueezeLog.txt"
dir "%folderpath%\*.mpg" /b /od > showlist.tmp
rem dir "%folderpath%\*.tp" /b /od >> showlist.tmp
for /F "tokens=* delims=" %%i in (showlist.tmp) do start /wait /min cmd /c IsqueezeAction.cmd %folderpath%\%%i
echo --------------------------------------------------------------------------------- >> "%folderpath%\IsqueezeLog.txt"
echo -- %date% %time% - %computername% - Completed processing files in: >> "%folderpath%\IsqueezeLog.txt"
echo -- %folderpath% >> "%folderpath%\IsqueezeLog.txt"
echo --------------------------------------------------------------------------------- >> "%folderpath%\IsqueezeLog.txt"

rem cleanup files that have been moved to the itunes library
rem wait a minute to allow any outstanding imports to complete
sleep 60

dir "%folderpath%\*.mp4" /b /od > mp4list.tmp
for /F "tokens=* delims=" %%i in (mp4list.tmp) do if exist "%itunespath%\%%i" del "%folderpath%\%%i"
if exist mp4list.tmp del mp4list.tmp

iSqueezeAction.cmd starts below
@echo off
rem this file should be called by isqueeze.cmd
set showfile=%*
echo Show file is %showfile%

rem Check to see if file has been edited with igCutter
rem echo %showfile%|find "_cut.mpg" /i
rem if %errorlevel%==0 goto cutfile

rem generate converted filename using 3rd party tool thingo
call var set ifile= -ext of %showfile%
set ifile=%ifile%_ipod.mp4
echo ifile is %ifile%

echo Checking for %ifile%
if exist "%ifile%" goto alreadyProcessed

echo checking if another machine is already processing this show
if exist "%showfile%.lck" goto alreadyProcessed

echo Need to process %showfile%
rem write .lck file to stop other machines from attempting to process this file
echo %computername% began processing %showfile% - %date% %time% > "%showfile%.lck"
echo %date% %time% - %computername% - Begin processing %showfile% >> "%folderpath%\iSqueezeLog.txt"
start /wait /min /low cmd /c ipoddrop\ipoddrop.exe -smp 300 "%showfile%"
echo %date% %time% - %computername% - Completed processing %showfile% >> "%folderpath%\iSqueezeLog.txt"

if exist "%showfile%.lck" del "%showfile%.lck"
if exist "%showfile%" attrib "%showfile%" -r -s -h
if exist "%ifile%" del "%showfile%"

rem add converted file to itunes playlist
if exist "%ifile%" start /wait cmd /c cscript addtoplaylist.js "%ifile%"

goto end

echo Already processed %showfile%
goto end

echo Skipping file %showfile%
echo Already processed with igCutter.



I've referenced some other non standard batch tools etc in these batch files that you'd have a hard time finding so have zipped these and the batch files and put them at http://www.daleks-of-god.net/btv/isqueeze.zip

Hope this helps.

PS: Please read through the batch files above and make sure you understand what's happening before using them.

WARNING: there are some lines of code that delete files once they are processed. Remove these lines if that is not what you want to do.

Wonderful. Inoticed in the source the additional ffmpeg params string, how can I pass these through ipoddrop.exe?
Betterr yet, my friend, how can I build this project, or recompile it?
The additional_ffmpeg_params variable is strictly used internally. It's a catch-all variable into which ffmpeg parameters are placed at various points in the program, such as smp, deinterlace, etc. Since it isn't exposed internally, there's no way to add stuff to it at runtime.

You are perfectly free to modify the source, however. Keep in mind that you must adhere to the following license:


Plus the additional restrictions mentioned in the "Class1.cs" file. Essentially, no commercial use, must attribute, and must release new version under the same license if you distribute it.

If you want to add parameters yourself, you can add stuff directly to the additional_ffmpeg_params variable, or add stuff directly to the ffmpeg commandline on line 364. You can also add new commandline parameters by adding a new entry to the switch statement that starts on line 141, adding a help entry in the area starting on line 115, and adding code somewhere else in the program that actually does something with the parameter. A bunch of parameters are acted on in a code segment starting on line 335.

If you make any changes, I'd love to know what they are. If they fit in with the philosophy of iPodDrop, I might add them into the next version ^_^

As for compiling, iPodDrop will compile with standard Visual C# .NET 2003. It might compile under Visual C# Express 2005 (which is free), but I'm not sure; I haven't tried. You also may be able to use the free C# compiler that comes with the .NET 1.1 Framework SDK, but again, I haven't tried it.

So really, the easiest way to compile is with Visual Studio .NET 2003. And 2005 (free) will probably work, but not sure.
Not sure what I am doing wrong but when I download the new version it does not recognize the file as a zip file or as a exe file.

I downloaded the previous version 1.4, unzipped it but when I installed the software it was nowhere to be found.

I am running windows xp? is that the problem?
My bad, I had typed the URL incorrectly when writing the post. The download still worked fine, the file just had no extension.

I've added the ".zip" onto the end, you should be able to download it fine now. You can also just rename the copy of 1.5 you downloaded before and append ".zip" to the end.

As for installing, iPodDrop doesn't have an installer. There is an exe file in the zip, and that is iPodDrop itself. You drag video files onto that exe's icon, and it will transcode the video. You can also make shortcuts to set up some presets (such as, output at TV resolution), see the readme file for more information.
This is a great program. Props to you! Is there any way to force a 640x480 resolution? When I use the anamorphicdvd and tv parameters, the program encodes at 738x416. Another weird thing I saw was that sometimes, the encodings with certain dvds would result in the program going haywire, with percentages reaching 100 percent in seconds and keeps going up. Eventually, it would error out. Anybody else seen this?
The -anamorphicdvd option should only be used for DVDs that are really anamorphic. These are DVDs that have the image stretched out to use up extra resolution, and then are resized down to 16:9 for playback (the actual video might be wider than that due to black bars in the video).

If you've got an ordinary DVD, iPodDrop should detect that all by itself and default to 4:3 as it should (DVDs encode the letterboxing right into the video). If it doesn't, please post the resolution of your DVDs here so I can look into it.

If you want to force 4:3, use the "-dvd" option, which is useful if iPodDrop didn't detect that your input was a DVD for some reason.

As for the crashing after 100% problem, I think I may have fixed it in my development builds of 1.5.1, but I'm not sure. Does the resulting file play back properly? The bug I ran into and tried to fix involved iPodDrop crashing *after* the file was finished encoding, so it's a cosmetic bug. If the output file was fine, then hopefully it will be fixed in v1.5.1.
The DVDs I tried converting were all anamorphic, ie. Star Wars, Serenity, Princess Bride, and Fight Club. Now that I think about it, I think all the anamorphic DVDs I tried were scaled to 738x414. When viewed on the ipod 5.5g, it does that weird zoomed effect regardless if widescreen mode was on or not. The 738 resolution seems rather odd since that's higher than the original DVD resolution of 720.
The zoomed effect is going to happen with any video encoded at higher non-4:3 resolutions at TV res. It's a bug in the iPod firmware (or perhaps a limitation of the performance of the iPod's scaler). Regardless, it will look fine once you output it to a TV. Alternatively, you can encode it in non-tv mode, and it will play back fine on the iPod screen.

If you REALLY want to encode DVDs in TV mode and have them play back on both the TV and iPod screen, you'd have to use v1.4.1 of iPodDrop. The only other way I can do this is to limit widescreen content to the old iPod firmware limits, which would be slightly less quality for TV output. So in order to get playback for TV and iPod screen, you'd sacrifice quality. It's a trade-off, either way there is a downside :( I've been thinking about adding an option to use the old behaviour in these situations, but the more options I add, the more confusing the program gets. I'm trying to keep things simple while producing the best quality output I can. Please share your thoughts on which option you prefer, though, lower resolution but playback on both TV/iPod, or higher resolution but TV-only output. Keep in mind that if you have an input file that is less than 640 pixels wide, it will play back just fine on both iPod and TV, so this usually just affects DVDs.

Now, as for the strange output resolution... This is expected behaviour. With anamorphic DVDs, the image is 720x480 (3:2), and we need to display it at 16:9. There are two ways to get it to 16:9. Either we squish down the vertical res (720x405), or we stretch out the horizontal res (853x480). 720x405 is a lot less than the iPod's max limit though, and then we're losing 75 lines of pixels. So iPodDrop tries to minimize how much it has to throw away. By scaling to 738x414, it only has to throw away 66 lines of pixels. In effect, iPodDrop is trying to get to 853x480, and is just going as close as it can without going over the limits.

In other words, this produces better quality video.
Err, I meant 738x416, which is closer to 16:9.
For me, I rather have both iPod and TV functionality. The main reason I got a video ipod was to be able to view videos on the road. The TV functionality is a bonus.

As for the resolutions, it seems to me that unless the Ipod has a component output and you are displaying the video on a widescreen TV, saving 9 lines of resolution is really a moot point since to display the anamorphic video on a 4x3 television, the vertical resolution is still scaled down and black bars are added to the top and bottom.
A temporary workaround for you might to be to not use tv mode, then.

I think in the next version, I'll make compatibility with both the default, with an option for higher resolution.

It isn't 9 lines of resolution, but in fact 11. Still a small difference, yes. The iPod supports S-VIDEO output with the dock, or composite with the iPod itself (I ues composite, my TV's single S-VIDEO is already in use). The TV can display the extra resolution, so long as the horizontal resolution is less than 720, although the difference won't be huge. Remember, the DVD is only anamorphic before iPodDrop transcodes it, at which point it's a regular 16:9 video file. And the less you need to rescale a video, the better ;) But any increase helps. As I said, I think I'll make the higher resolution modes optional. 1.5 already had lots of other enhancements, mainly brought around by the move to a new version of ffmpeg (fixed the 80/160 kbit audio bug, and can read more formats), and the iPod still will decode 640x480 video just fine on both TV/screen, which it wouldn't before. So even with the limitations I'll add, there's still a nice improvement over previously.

Thanks for your input.
I like the progam alot, good balance of functionality/speed/simplicity. However is there any whay that I could change the output directory of the .mp4 file ?? How can this be done when editing the source code ... any ideas? I'm asking cause I want to encodeall the movies I have on cd's for my ipod without copying the files to my hard drive - Kev
The code that builds the final ffmpeg command line is on line 365 of Class1.cs.

A quick hack would be to replace the end of the line:

+ " \"" + filename.Substring(0, filename.Length - 4) + "_ipod.mp4\"", true);

With this:

+ " \"c:\" + filename.Substring(0, filename.Length - 4) + "_ipod.mp4\"", true);

(and then recompile of course) That'd encode *every* file to go into the root of drive C. I think. I think that the variable "filename" contains just the filename, and not a full path. If that doesn't work, you could just replace the end of the line with this:

+ " \"c:\myvideo.mp4\"", true);

Which would obviously encode every file as "c:\myvideo.mp4". So you'd have to move/rename the file after every encode. But hopefully the first hack would work.

I have to be honest, I considered the possibility that somebody would encoding something from a CD, but also thought that I didn't want to bother with the complexity of output destination dialog boxes.
Yeah what I did was put this in at around line 247:
else if ( args.Length - last_opt - 1 == 3 )
bitrate = Convert.ToInt32(args[last_opt + 1]);
filename = args[last_opt + 2];
outputfilename = args[last_opt+3];
if ( bitrate < 100 && bitrate > 2500 )
throw_error("ERROR: Invalid bitrate specified. Expected 100 to 2500, got " + bitrate.ToString() + ".");

So that the output file can be accepted as another argument. Cause writing the output file into the source code is
very inconvenient.

And replaced your 1 line process = spawn_app .. with:

if (outputfilename.Equals(""))
Console.WriteLine("No output file selected, writing to default directory");
process = spawn_app(ffmpeg_path, "-i \"" + filename + "\" -y -b " + bitrate + " -acodec aac -ac 2 -ab " + audio_bitrate.ToString() + " -f mp4" + additional_ffmpeg_params + " -s " + vid_info.width + "x" + vid_info.height + " \"" + filename.Substring(0, filename.Length - 4) + "_ipod.mp4\"", true);
Console.WriteLine("Writing to specified output file: " + outputfilename);
process = spawn_app(ffmpeg_path, "-i \"" + filename + "\" -y -b " + bitrate + " -acodec aac -ac 2 -ab " + audio_bitrate.ToString() + " -f mp4" + additional_ffmpeg_params + " -s " + vid_info.width + "x" + vid_info.height + " \"" + outputfilename + ".mp4\"", true);

to check if the user has decided to specify an output file, otherwise it just outputs to the same directory as the origional file.

At the end of the day you can run the program like this:

c:\ipoddrop\IpodDrop.exe -output 600 "D:\Video Encoding\Futurama\I, Roommate.avi" C:\Video\IPOD\I,Roommate

Note that there are no spaces in the output file name and that the filename is not enclosed in quotes("). And that it doesn't end with .mp4
I'll probably play around with this a bit more and maybe add a bit more functionality for advanced
users wanting to send different arguments throught to the ffmpeg encoder. I'll keep you updated If I do anything cool.

- Kev
Thanks for making the world a better place, guspaz.
You have a pretty awesome program. Its got me interested in learning to program with C#.

Any plans to add support for cropping so that 2.35 aspect ratio movies get properly encoded without black bars? I tried doing this myself but it seems to end up with a few black lines still.

Also, from looking at your code, it looks like you're not encoding specifically for resolutions that are multiples of 16. What are your thoughts on that since generally MPEG will encode more efficiently due to the video being chunked into 16x16 blocks for encoding.

Cropping is not something I can really add (short of a commandline option, which I want to try to avoid unless necessary). iPodDrop doesn't have access to any more information about the video than ffmpeg gives it. This is why there is so much trouble with DVDs, there is no way of knowing if it's an anamorphic DVD or not.

Cropping isn't really very important anyhow; the black parts of letterboxing take up almost no bandwidth due to them not changing at all, the only downside to them is the hard edge. And iPodDrop already uses such insanely high bitrates with the intension of trying to degrade the original video quality as little as possible (since most people use it to transcode things like TV shows they've downloaded, which are a low quality source) that it doesn't really matter that much.

The same thing applies to not using a multiple of 16 for encoding. iTunes only cares about the maximum number of pixels, not if the dimensions are multiples of 16. If iPodDrop had to fit into this constraint, it would have a lot less flexibility when trying to get something as close to that limit as possible. The only two options would be to either put up with lower resolution videos, or reduce the sensitivity for aspect ratio and allow iPodDrop to diverge even more from the exact aspect ratio when calculating a matching resolution. As for the reduction in encoding efficiency by having the image cut off partway through macroblocks, again, iPodDrop already uses a pretty crazy video bitrate (2mbit) on TV content (and 1mbit on iPod screen content) that it shouldn't really matter.

My reasoning when using the high bitrate was that it solved a lot of quality issues, and the iPod had a LOT of space on it. iPodDrop is all about maximizing the quality of video on the iPod, which is why the main emphasis of the program is the TV mode (find the max resolution at a similar aspect ratio that the iPod can decode), which I still haven't seen replicated in any other programs.
Hi, first of all I want to say that I love the program, it's so simple. I have had a problem recently when I have been trying to encode videos. The whole thing encodes, but then at the end I get an error message,

"Common Lanuage Runtime Debugging Services"

"Application has generated an exception that could not be handled."

"Process id=0x11f8 (4600), Thread id=0x1eb8 (7864)."

I then click on it and another window comes up saying

"No Debugger Found."

"Registered JIT ddebugger is not available. An attempt to lauch a JIT debugger with the following commend resulted in an error code of 0x2 (2). Please check computer settings."

"cordbg.exe !a 0x11f8"

"Click on Retry to have the process wait while attaching a debugger manually.
Click on Cancel to abort the JIT debug request."

The thing is, is that the video still works fine on my computer, but when I put it on my ipod, it doesn't play.

Please Help Me! I would apprectiate it sooo much. Thx, Jeff.
The bug where iPodDrop sometimes crashes at the end is fixed (I think) in 1.5.1, which I'm still working on. Since it's so hard to reproduce the bug (It happens pretty rarely, but I've run into it), it's really hard to test if I've fixed it.

It should just be cosmetic, though. If the files won't play on the iPod, there is probably something else going on. How does that problem manifest itself? Does iTunes copy the file over without complaint, or does iTunes refuse to copy it?

Here's the big question: What kind of iPod do you have (5th gen or 5.5th gen), and if you have the 5th gen, did you update your iPod's firmware to v1.2?
iTunes copies the file over to the ipod without complaint, it just won't play. I have a 5th generation ipod and yes it is updated with the current firmware.
That's quite odd. Could you provide a screenshot of iPodDrop in action? If it's an issue related to the resolution, I should be able to reproduce it on my own. It might be easier for you to copy and paste iPodDrop's text rather than take an image screenshot.

I'd also like you to do something else. In iPodDrop's "bin" folder is a copy of ffmpeg. I want you to open up a console, navigate into the bin directory, and type:

ffmpeg -i "c:\myfile.avi"

where c:\myfile.avi is the input file that you're dragging onto iPodDrop. Then post the result here. This will give me more detailed info about the input file. iPodDrop doesn't actually check all the aspects of the input file; for example, if the input file has a framerate higeher than 30fps, it won't play on the iPod. Of course, iTunes should pick that up, but you never know.
I don't know exactly what you want me to do. Any just so you know its a dvd that i'm having problems with. Also, I have it on settings -smp, -tv and 2000 bitrate.
Let's start simple. Run iPodDrop to encode the movie, make sure the window that pops up is big enough to display all the text, and take a screenshot.

To take a screenshot, make sure the window is in the foreground, and hit ALT-PrintScrn (usually next to scroll lock on the keyboard). Open up mspaint (Start->Programs->Accessories->Paint). Paste the screenshot in (Edit->Paste). Save the file as a JPEG, and upload it somewhere (You can use http://suprfile.com), or email it to me (guspaz@gmail.com).
thanks a lot for making iPodDrop. It has really changed the way I use my ipod!!

Is there any chance of integrating atomic parsley so I could tag my videos without having to run them through two programs?
There are no short term plans, since it'd complicate iPodDrop too much as a commandline program. However, since you're not the first person to request it, I'm thinking about adding it when I get around to doing the GUI version. The GUI version will make it easier to add such features without getting much more complicated.

Unfortunately, there are some rather sticky issues to get out of the way before the GUI version (which is a lot of work, too). I'm trying to figure out a crash bug with a user, hopefully to fix in 1.5.1, and then for 1.6 I want to add queue support (which will actually make the GUI version easier). I guess the GUI version would be 2.0. It might take a while to get there though.

I should also probably get a proper website for iPodDrop sometime too, rather than posting updates in my blog ;)
On some of the files I encode with ipod drop they end up going past 100% and never stop going. What's the problem?
This seems to be a recurring issue, one that I haven't been able to isolate myself. What file were you trying to encode at the time, and is it one that I can download a copy of myself to test with? It'd help greatly to figure out this problem if I could reproduce it.
I was just converting a large mpeg file that I got from a dvd. The strange thing is is that this problem also happened to me with videora ipod converter; the file would get to 100% and not stop going.
I've had the same issue as well. It would usually occur when I rip my DVD using DVDDecryptor using IFO mode to rip the movie as a single VOB. I believe two movies that show this problem was Princess Bride and Fight Club.
The problem seems to be happening to people with DVDs, and I've been unable to reproduce the issue with AVI files.

I've got some DVDs, I'll try to do some testing with them and hopefully reproduce the issue.
when i run this application, it simply says: The application failed to initialize properly. Click on OK to terminate the application.
what should i do? =((
Do you have the .NET framework installed? It's available through Windows Update. You need version 1.1 or newer.
would it be possible to make a command line option for just leaving the res/bitrate the same and just converting the format (aka for vid out on HR-HDTV's?

also i have a dualcore duo e6600, and am just curious... how come when i set the commandline options to -smp -tv it stays fixxed at 4.7speed the whole time (doesnt matter if i do nothing or im runnin a million programs...)
with just -smp ive seen as high as 7.5 just curious if there is something else im missing...

If you run iPodDrop in TV mode, it will actually leave the resolution alone so long as the iPod supports that resolution. Unfortunately, there is no way for ffmpeg to switch the video format without recompressing. Since recompressing video induces a loss in quality, iPodDrop defaults to higher than normal bitrates to try to offset that.

The speed factor (such as 4.7x) is an average calculated by how many seconds of video were encoded and how many real seconds it took to do it. The longer you encode for, the more averaged it gets, so if another program uses the CPU for a few seconds, that's not going to affect the average much.

The reason it encodes slower when you don't use the -tv switch is because -tv encodes at higher resolution/bitrate, which takes more time to encode. When you just do -smp and nothing else, it limits the resolution to 320x240 (or lower), for best results on the iPod's screen. The lower resolutions transcode a lot faster, but are of course lower quality.
I use to have this programm and it worked nicely, but now when i drag my video there it just says: iPodDrop has encountered a problem and needs to close. We are sorry for the incovenience.
If you were in the middle of something, the information you were working on might be lost.
Any suggestions? I have NET frameworks 2.0 also.
I have a question. For some reason the program does not finish the process. When it reaches 100% it then continues..... is there a way to fix this? and then there are some movies that cannot be converted, it says cannot find resolution or something... please help me.
i love this program any plans on making the -tv trigger always on i have a batch scriptt hat does it but it'd be easier if i could just drag and drop to do it
anonymous: I'm really not sure why that's happening, I can't explain it :(

juan_scoob: Are those past-100% problems happening on DVDs, perchance? I was never able to reproduce that problem reliably enough to fix it, despite it being annoyingly common. I have a beta of 1.5.1 that fixes the crash bug where it crashes at the end of the conversion, but never got around to releasing it. Maybe if I have some time...

other anonymous: Simply create a shortcut to ipoddrop and add the -tv parameter. That way, you can drag and drop the file onto the shortcut with all your parameters already entered and it'll just work. Alternatively, you could set up the batch script to allow you to drag files onto it ^_^
aside from the problem I had...your program is great! its the best I've used and I thank you for the work! really, its really appreciated!
I have a memory of using IpodDrop to convert VOB files ripped from DVDs using DVD Decrypter. But when I tried a couple of VOB files last night, I got an error. Is IpodDrop supposed to be able to handle VOB files?
It should be able to, but DVDs are what give iPodDrop the most trouble overall. They're the ones that have that 200% encoding problem that I've never been able to nail down. I've had it happen to me, but I can't reproduce it reliably enough to fix the damned thing.

There's a crash bug in 1.5 that I (think I) fixed in the beta of 1.5.1, but I never got around to releasing that. Remind me to package up the 1.5.1 exe some time so that people can get around that crashing bug (which happened at the end of encoding).
Hey your program is truly awesome!
Every now and again, after having ripped a a DVD and dropping the .VOB file onto IpodDrop. The program stops because it has a problem reading the input file and something goes wrong with detecting the resolution.

THis happens in about 1 out of every 5 DVDs that I convert for loading onto Ippod. Any way around this ???
I just started using the program yesterday, and it kicks royal tail. No more needing to suffer through burning DVDs to be able to watch stuff on my tv.

That aside, I seem to be running into the 100% crash problem that many others have mentioned. Is it a random occurence, or is it based on the file that it starts out with?
Great program. Is 1.5.1 that fixes the crash bug being released anytime soon?
This blog looks pretty quiet lately. But since I really like iPodDrop, I thought I would post a suggestion anyway. It would be cool if iPodDrop had a switch that would handle higher resolutions (like 720p). I know that iPods can't handle 720p yet. But the Apple TV can. The big thing for me is that iPodDrop is the easiest way I know to convert video, even if I don't play it exclusively on the iPod. Now if only it handled HD.
Wow, it's been a while since Guspaz has posted here...

I've been using iPodDrop for just over a year and I have to say that it's amazing. I love the -tv option because I can watch videos on my TV with ease in the highest resolution the iPod can handle, a feature I had been looking for for a long time.

I also have the crash after 100% problem. This truly does seem random since I've encoded hundreds (if not thousands) of AVI files with iPodDrop and can never find a pattern as to why it crashes. This doesn't effect the video file though. They play just fine every time.

Is there going to be an update to the program ever? I'm really hoping for a multi-file batch convert system so I can drag in like 20 files and walk away. A GUI would be even better but not if it decreases the great performance this program gives. It converts videos in record time with -smp enabled.

What language is it programmed in? Is it C#, C++? Either way, I wish I knew either of those so I could help develop it in some way.

Anyways, I hope to see an update soon!
Yeah, the 100% bug is due to the app not properly detecting when ffmpeg closes.

It's unlikely that I'll update it (although maybe I'll just release the latest version I have some day, it might help with the 100% bug a bit). I haven't watched a video on my iPod for a very long time.

The app is written in C#, and the source code is included with every version, so anybody who wants to can update it. It uses ffmpeg for the encoding, an open-source application. All iPodDrop really does is examines the input file and determines the proper settings to pass to ffmpeg.

A UI wouldn't affect speed, it's just that I originally wrote iPodDrop to be a quick-and-dirty automation utility for my own use, and it kind of grew from there.
Btw, Ipoddrop also works REALLY well for converting videos for use on PS3 ;-)
Great program, but having trouble changing the video output etc.
I go to windows command line type in the bitrate etc. Then I get a response : ipoddrop.exe is not recognized as an internal or external command, operable program or batch file.

What am I doing wrong?

Cheers Dan.
Probably you don't have the right version of the .NET Framework installed. I believe you need 2.0 or 2.0SP1 installed.

To be honest, iPodDrop is somewhat dead; I haven't worked on it for over a year, and don't really have any plans of picking it up again.
Post a Comment

Links to this post:

Create a Link

<< Home

This page is powered by Blogger. Isn't yours?