Encoding video for the PSP, on Linux

The PSP has a screen resolution of 480x272, however there is an artificial limitation applied to videos played from memorystick (but not UMD): The maximum pixel count (ie. width multiplied by height) cannot exceed 76800. So you should use these resolutions for your video:

  • 320x240 (4:3 ratio)
  • 368x208 (16:9 ratio)

The maximum video bitrate it will handle is 768 kbit. (Although that's plenty for the small resolution!)

I know the PSP works with audio encoded at 24 kHz sampling rate, and 32 kbps bitrate. I think it will work with 48 kHz sound too, but not 44.1 kHz..

As of firmware 2.60, my PSP appears to support some non-NTSC framerates, finally. I've succesfully encoded movies at 15, 23.976, 24, 25, and 29.97 fps. HOWEVER, if you use anything other than 15, 23.976, or 29.970, the movie plays at the wrong speed and gets out of sync with the sound. I hear that earlier firmwares supported less framerate options. I'm not convinced about these limits, though; I think they might be caused by misunderstandings of the encapsulation format, rather than actual limitations. Time will tell.

So, to bring that all together, and make video for your PSP, you need a recent version of ffmpeg installed (to get support for the PSP's non-standard mux format). I'm currently using a snapshot that Gentoo labels "media-video/ffmpeg-0.4.9_p20060302", and that works for me. (mencoder's mux support doesn't include the PSP format, yet, but I'm sure it's only a matter of time. So use ffmpeg for now on Linux, or ffmpegX if you are running MacOS X.)

The command line to re-code a movie goes like this:

ffmpeg -i original.avi -f psp -r 29.970 -s 320x240 -b 768 -ar 24000 -ab 32 M4V00001.MP4

You should check your original first, and adjust the framerate (-r) to be something similar to your original framerate. Adjust the size (-s) if you're encoding a widescreen movie to be -s 368x208. ffmpeg has about 140 other options that you can tweak to try and improve the quality/speed/compression/penis size. I've just stuck to the defaults for now.

Note that the output file must look like M4Vnnnnn.MP4 for the PSP to recognise it, and it must be placed in the /MP_ROOT/100MNV01/ directory.

My tags:
 
Popular tags:
  linux psp
Powered by Catalyst