Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
psp [2017/02/24 12:59] beandog |
psp [2023/04/09 12:02] (current) beandog [HandBrake] |
||
---|---|---|---|
Line 4: | Line 4: | ||
* [[http://dtcwee.blogspot.com/2014/02/transcode-to-psp-using-handbrake.html|Transcode to PSP using Handbrake]] | * [[http://dtcwee.blogspot.com/2014/02/transcode-to-psp-using-handbrake.html|Transcode to PSP using Handbrake]] | ||
* [[http://tools.rodrigopolo.com/mp4box_aspect_fix/|MP4Box Display Aspect Ratio Calculator]] | * [[http://tools.rodrigopolo.com/mp4box_aspect_fix/|MP4Box Display Aspect Ratio Calculator]] | ||
+ | * [[https://forum.handbrake.fr/viewtopic.php?f=7&t=35849|HandBrake Forums - PSP Howto]] - I wrote this | ||
I have a PSP 1000 (the very first model) that I use to playback video on, just for fun. ''ffmpeg'' used to have a preset output for it, but no more. Encoding for the hardware is simple enough, with the right settings. | I have a PSP 1000 (the very first model) that I use to playback video on, just for fun. ''ffmpeg'' used to have a preset output for it, but no more. Encoding for the hardware is simple enough, with the right settings. | ||
Line 9: | Line 10: | ||
These playback settings are designed to run with the most recent firmware, version 6.61. | These playback settings are designed to run with the most recent firmware, version 6.61. | ||
- | Playback is at 480x272, with a 16:9 aspect ratio. | + | Playback is at 480x270, with a 16:9 aspect ratio. |
The video player does have support for chapters, but adding them to the MP4 doesn't have any effect. [Note: when using HandBrake. Probably need to use the proper supported subtitle formats for MP4] | The video player does have support for chapters, but adding them to the MP4 doesn't have any effect. [Note: when using HandBrake. Probably need to use the proper supported subtitle formats for MP4] | ||
- | If you're encoding something video that's **widescreen**, then scale the width to 480. On the other hand, if it's **fullframe**, then do a height of 272. | + | If you're encoding something video that's **widescreen**, then scale the width to 480 so that you're using the entire length and have black bars on top and bottom. On the other hand, if it's **fullframe**, then do a height of 270 so it's not stretching the video, and you have black bars on the left and right. |
==== Playstation Manual ==== | ==== Playstation Manual ==== | ||
Line 25: | Line 26: | ||
The baseline profile has less features than the main. The x264 encoding settings using the Main profile will set the amount of B-Frames to 3. However, the PSP won't work with any encoding higher than 1. So any changes to the default encoding here reflect that one difference. (also note that the linked article above disables more features than this -- I started with his configuration -- which worked great -- and then tweaked until I found mine) | The baseline profile has less features than the main. The x264 encoding settings using the Main profile will set the amount of B-Frames to 3. However, the PSP won't work with any encoding higher than 1. So any changes to the default encoding here reflect that one difference. (also note that the linked article above disables more features than this -- I started with his configuration -- which worked great -- and then tweaked until I found mine) | ||
- | ==== Encoding ==== | ||
- | I haven't tested encoding anything in a higher preset than medium, and don't really want to chase that down since it's such a small display size anyway. If you're looking for better quality, improve the CRF instead. :) | + | ==== ffmpeg ==== |
- | ==== libav ==== | + | * Scale video automatically |
- | + | ||
- | * Scale video to maximum width of 480, automatically adjust height to same aspect ratio | + | |
* Use x264 encoder, main profile except limit B-frames to 1 | * Use x264 encoder, main profile except limit B-frames to 1 | ||
* x264 medium preset for encoding level | * x264 medium preset for encoding level | ||
* Drop # of audio channels to 2 (stereo), although in this sample it's already set to 2 | * Drop # of audio channels to 2 (stereo), although in this sample it's already set to 2 | ||
+ | * Drop any subtitles | ||
- | It also seems appropriate to use Sony's "eye candy" presentation as a sample input source. | + | For a video source that is wider than it is taller (basically, anything widescreen), set the width to 480: |
<code> | <code> | ||
- | youtube-dl -f mp4 https://www.youtube.com/watch?v=jfdMo4b0U_Y | + | ffmpeg -i video.mpg -sn -vf scale=480:-1 -c:v libx264 -x264-params bframes=1 -profile:v main -ac 2 -y psp.mp4 |
</code> | </code> | ||
+ | |||
+ | For a video source that is taller than wider (pan & scan), set the height to 270: | ||
<code> | <code> | ||
- | avconv -y -i Sony_Bravia_-_Eye_Candy_HD_1080p-jfdMo4b0U_Y.mp4 -vf scale=480:-1 -c:v libx264 -x264-params bframes=1 -profile:v main -ac 2 bravia.mp4 | + | ffmpeg -i video.mpg -sn -vf scale=-1:270 -c:v libx264 -x264-params bframes=1 -profile:v main -ac 2 -y psp.mp4 |
</code> | </code> | ||
+ | |||
+ | On one of these you may have it complain about how it can't find the width or height. That's because it's auto-calculation is ending on an odd number -- for example, 480:183. You'd have to manually round the second number to the nearest number divisible by 2 (here, 182 or 184). | ||
==== Video Player ==== | ==== Video Player ==== | ||
The video player itself for the PSP will list a video as "Unsupported Data" if it can't be played back. However, don't depend on this icon completely as proof of failure. Some files it will show the video icon, but then have "This video cannot be played." when trying to watch it. An example being where something's encoded with the Main x264 profile alone. | The video player itself for the PSP will list a video as "Unsupported Data" if it can't be played back. However, don't depend on this icon completely as proof of failure. Some files it will show the video icon, but then have "This video cannot be played." when trying to watch it. An example being where something's encoded with the Main x264 profile alone. | ||
+ | |||
+ | For thumbnails, have a JPEG of 160x106 with the same basename as the video in the same directory. | ||
==== HandBrake ==== | ==== HandBrake ==== | ||
Line 58: | Line 63: | ||
<code> | <code> | ||
- | HandBrakeCLI -e x264 --encoder-profile main -x bframes=1 -w 480 -i /dev/dvd -o movie.mp4 | + | HandBrakeCLI -i /dev/dvd -e x264 --encoder-profile main -x bframes=1 --mixdown stereo -w 480 -l 272 -o psp.mp4 |
</code> | </code> | ||
Line 72: | Line 77: | ||
<code> | <code> | ||
- | HandBrakeCLI -e x264 --encoder-profile main -x bframes=1 -w 480 --subtitle-burned 1 -i /dev/dvd -o movie.mp4 | + | HandBrakeCLI -i /dev/dvd -e x264 --encoder-profile main -x bframes=1 --mixdown stereo -w 480 -l 272 --subtitle-burned 1 -o psp.mp4 |
</code> | </code> | ||
{{:star-wars-psp-subs.png|}} | {{:star-wars-psp-subs.png|}} | ||
- | |||
- | ** Aspect ratio ** | ||
- | |||
- | I don't know a lot about aspect ratios, but I do know that DVDs use the entire picture frame to encode more video, even though it is played back at a different aspect ratio. The same thing can be done here -- the PSP can display a max of 480x272, which is higher than the 208 originally set to. | ||
- | |||
- | Using the same source, which is a letterboxed 4:3 original source, I rip it with the full size and width of 480x272, then use mp4box to re-insert the aspect ratio. I'm not sure how to do this with Handbrake yet. | ||
- | |||
- | <code> | ||
- | MP4box -par 1=4:3 movie.mp4 | ||
- | </code> | ||