I have posted a few journal entries on this subject, but this page is here to be sort of a more general overview. There is some detailed information in these posts if you are interested.
Nat Type 3
I run an OpenBSD router, and some port forwarding needs to be done to make sure that the PlayStation 3 can properly communicate with the internet. I have verified the following works for WarHawk, including voice chat, as well as the PlayStation Store, and the voice chat built into the XMB.
Allow Outbound (only necessary in some cases with extremely restrictive firewall rulesets)
TCP: 80, 443, 5223 and UDP: 3478, 3479.
Port Forward inbound
TCP: 9293 and UDP: 3658
TCP/9293 is the port for Remote Play, and 3658 is for other users to connect to you. If you do not forward 3658 you will get the dreaded NAT Type 3.
Media sharing with MediaTomb
Since MediaTomb is the only Linux UPnP media server that I have found that can do transcoding I have been using it for some time now. It is highly configurable and fairly stable. I tend to track the SVN version fairly closely, but now that 0.11.0 is out the transcoding features are available to anyone. Most of the new transcoding features are really well documented on the MediaTomb site, so I won’t reproduce my entire config here, but my transcoding stuff looks like:
<transcoding enabled="yes">
<mimetype-profile-mappings>
<transcode mimetype="video/quicktime" using="vlc-sh"/>
<transcode mimetype="video/x-matroska" using="vlc-sh"/>
<transcode mimetype="video/mp2p" using="ffmpeg-sh"/>
<transcode mimetype="video/ogg" using="ffmpeg-sh"/>
<transcode mimetype="video/mp4" using="ffmpeg-sh"/>
<transcode mimetype="video/avi" using="ffmpeg-avi"/>
</mimetype-profile-mappings>
<profiles>
<profile name="ffmpeg-sh" enabled="yes" type="external">
<mimetype>video/mpeg</mimetype>
<accept-url>no</accept>
<first-resource>yes</first>
<agent command="/staff/mernisse/bin/ffmpeg-tr" arguments="%in %out"/>
<buffer size="6144000" chunk-size="131072" fill-size="2048000"/>
</agent></profile>
<profile name="ffmpeg-avi" enabled="yes" type="external">
<mimetype>video/mpeg</mimetype>
<accept -url>no</accept>
<first-resource>yes</first>
<agent command="/staff/mernisse/bin/ffmpeg-tr" arguments="%in %out"/>
<buffer size="6144000" chunk-size="131072" fill-size="2048000"/>
<avi-fourcc-list mode="ignore">
<fourcc>XVID</fourcc>
<fourcc>DIVX</fourcc>
<fourcc>DX50</fourcc>
<fourcc>WVC1</fourcc>
</avi>
</agent></profile>
<profile name="vlc-sh" enabled="yes" type="external">
<mimetype>video/mpeg</mimetype>
<accept-url>yes</accept>
<first-resource>yes</first>
<agent command="/staff/mernisse/bin/vlc-tr" arguments="%in %out"/>
<buffer size="6144000" chunk-size="131072" fill-size="2048000"/>
</profile>
</profiles>
</transcoding>
Some notes about that config:
- I transcode MP4 – You may not have to if your MP4 files are all playable on the PS3, I would try it out without first and then transcode if necessary. I have more files that don’t work than files that do.
- Audio transcoding doesn’t work right now on the PS3 – A number of weird things that the PS3 does is keeping this from working, hopefully the MediaTomb guys will nail it and make it work, it sounds like the on the horizon ‘built in transcoding’ might fix this issue, but that is still a bit off.
