As I wrote earlier, I try to get some infos which formats my Sony BRAVIA 5800 TV is able to play over the network. Sony is not really helpful (they tell only names someone with a DLNA spec could correctly interpret). Now I took the time to move my TV into a different subnet (the same where my NAS is in, not like before in a DMZ), and I installed minidlna. After some network sniffing, the use of the Intel UPnP Device Spy and some minidlna–source reading I have now a better idea what my Sony TV expects.
The DLNA-specification seems to mandate a MIME-type and some DLNA-specific identifier which describes the content a player (a DLNA-Renderer) is able to display. In the following I will present the MIME-type, the DLNA-identifier, and probably a Sony-specific identifier.
Regarding pictures the TV only accepts JPEGs, bit in small, medium and large sizes. I did not bother to look up what this means in real values, so far this is not of high interest for me. For audio the TV accepts MP3s and LPCM (raw PCM samples). The raw sniffed data from the TV looks like this:
The more interesting part for me is the video part. The TV supports MPEG2 Video (the MPEG_ part in the DLNA.ORG_PN) and H.264 (the AVC_ part in the DLNA.ORG_PN). For MPEG2 it supports program streams (PS in DLNA.ORG_PN) and transport streams (TS in DLNA.ORG_PN). For PS it supports PAL and NTSC resolutions (720×576 is PAL, HD resolutions like 720p or 1080i or 1080p are not supported). The packet-length of a transport steam can be 188 bytes or 192 bytes. If the width is >= 1288 or the height is >= 720, minidlna adds HD in DLNA.ORG_PN, else it will add SD. The EU in DLNA.ORG_PN is for SD video with a height of 576 or 288 pixels. Depending of the combination of the packet-length and if there is a timestamp in use or not, the DLNA.ORG_PN will have a _ISO or a _T appended.
It also supports H.264. The DLNA.ORG_PN starts with a AVC in this case. Only transport streams (TS in DLNA.ORG_PN) is supported. As with MPEG2, the packet-length of the TS can be 188 or 192 bytes. Depending of the combination of the packet-length and if there is a timestamp in use or not, the DLNA.ORG_PN will have a _ISO or a _T appended. Depending on the profile used, minidlna adds some more infos to the DLNA.ORG_PN, BL if it is a baseline-profile, MP if it is a main-profile, and HP if it is a high-profile. I do not see this in the valid video formats my TV requested over the wire. As with the MPEG2 format, SD or HD is added (in minidlna) depending on the width and height, but also on the bitrate of the video. For the main-profile the width has to be <= 720, the height <= 576 and the bitrate <= 10M (base 10, not base 2) for SD, and the width has to be <=1920, the height <= 1152 and the bitrate <= 20M (base 10, not base 2) for HD. For the high-profile the width has to be <=1920, the height <=1152, the bitrate <= 30M (base 10, not base 2) and the audio has to be AC3 to get the HD added in DLNA.ORG_PN. The audio is specified in DLNA.ORG_PN as MPEG1_L3 for MP3, AC3 for AC3, and AAC or AAC_MULT5 for AAC (stereo or 5-channel). As can be seen below, the TV seems only to support AC3 audio for AVC. The TV also has _24_, _50_ and _60_ in DLNA.ORG_PN. I did not find those things in the minidlna source (but I have not really searched for this). I could imagine that _24_ stands for 24 pictures per second, and the _50_ and _60_ for progressive videos (with 50 respectively 60 pictures per second), but this is pure speculation from my side. Here is the raw sniffed data:
So far I did not get the time to experiment with this. I also have the impression that minidlna has still some rough edges (the sintel video I used to test before with a different media server, does not show up in the list with minidlna).