IPod Video Conversion Guide
This page describes how to make your Video Files playable on an iPod. | Other "how to" pages |
To play on this device, the file you copy to it needs to be of the correct format. This format is summarised below:
Video Codec | mp4v (MPEG4) |
Audio Codec | mp4a (MP4 audio), aac (AAC) |
Container | mp4 (MPEG4/MOV) |
Size | 320x240 |
To make the video the correct size, you can edit the preferences, or run vlc from a command prompt.
- vlc "input_filename" :sout="#transcode{vcodec=mp4v, vb=512, acodec=mp4a, ab=128, channels=2, audio-sync}:std{access=file, mux=mp4,url="output_filename"}" --sout-transcode-width=320 --sout-transcode-height=240 --aspect-ratio=width:height
This all goes on one line, and you'll need to fill in some of the values: the input and output filenames, plus the aspect ratio of the input file. By default vlc will stretch the video to the size specified by sout-transcode-height and width, but if you tell vlc the file's aspect ratio, it will scale and put a black border around it. The aspect ratio can be written as a ratio of width and height, with a colon between the two, or as a decimal.
Further I found that the iPod was particular about the parameter "channels" being set to 2. I found that without this parameter iTunes would import the file into the library but would not be able to upload the same to the iPod.
Further during my experiments I figured out that it was better to stick with MPEG4 encoding for the video stream. While H.264 codec is the latest video compression standard I found the resultant file size usually larger than when the MPEG4 compression mode was used, keeping all the other parameters like the resolution and the bitrate same. This definitely seems contradictory to what I would have expected but these were the findings of my experiments while using videoLan VLC media player.
If you would like to try using H.264 set the parameter vcodec to h264 in the above command line as follows
- vlc "input_filename" :sout="#transcode{vcodec=h264, vb=512, acodec=mp4a, ab=128, channels=2, audio-sync}:std{access=file, mux=mp4,url="output_filename"}" --sout-transcode-width=320 --sout-transcode-height=240 --aspect-ratio=width:height
A useful tip - If you intend to create a batch file that would transcode several titles in a DVD one after the other use the keyword vlc:quit as follows
- vlc "input_filename" :sout="#transcode{vcodec=h264, vb=512, acodec=mp4a, ab=128, channels=2, audio-sync}:std{access=file, mux=mp4,url="output_filename"}" vlc:quit --sout-transcode-width=320 --sout-transcode-height=240 --aspect-ratio=width:height
Here is the info for a batch file to convert videos one after another, although you have to enter your input and output values yourself (use find and replace, or, if you are better than me, make an actual script/program). Make sure the output names are different or else it will get stuck and/or overwrite the old one
vlc "input_filename" :sout="#transcode{vcodec=mp4v, vb=512, acodec=mp4a, ab=128, channels=2, audio-sync}:std{access=file, mux=mp4,url="output_filename"}" vlc:quit --sout-transcode-width=320 --sout-transcode-height=240 --aspect-ratio=width:height
vlc "input_filename(1)" :sout="#transcode{vcodec=mp4v, vb=512, acodec=mp4a, ab=128, channels=2, audio-sync}:std{access=file, mux=mp4,url="output_filename(1)"}" vlc:quit --sout-transcode-width=320 --sout-transcode-height=240 --aspect-ratio=width:height
......etc for each video to convert (useful for converting short .flv or .gvi, or pretty much any file) I relise this is inefficient, but hopefully someone will make a script (vlc seems best for making ipod videos from any source).
NOTE: If you can somehow to get 264 to work (megui makes it work...) just change vcodec=mp4v to vcodec=h264.
This is also described (with snapshots) on http://tom.zickel.org/vlcmp4/
This has also been discussed in the forum