Mon May 07, 2012 6:47 pm by patters
I've had my eye on this problem to follow up for a while, because as a NAS owner I'm always keen to minimize unnecessary transcoding. The reason I hadn't initially been able to replicate JezzaT's findings were down to the need to edit the DLNA media type/mime type section at the top of the profile to add the AAC-in-mpegts formats too. Once that was done, and with JezzaT's changes made, AAC content played back without being transcoded on my 2009 Bravia, so I'm guessing it ought to be fine on newer Bravia models too. I also edited the OnlineTranscoding section to prevent AAC being transcoded there too. YouTube HD clips now play perfectly without any transcoding.
Illico, can you test this change to profile 9 (which all Bravias inherit) on your TV using Serviio 0.6.2?
- Code:
<Profile id="9" name="Sony Bravia TV (2011)" extendsProfileId="1">
<!-- same as older Bravia 2010/2009 except it supports AVI playback -->
<Detection>
<UPnPSearch>
<FriendlyName>BRAVIA KDL-\d{2}([A-Z]X\d2\d|CX400).*</FriendlyName>
</UPnPSearch>
</Detection>
<DeviceDescription>
<!-- act as WMP so that the TV doesn't show root categories -->
<ModelName>Windows Media Player Sharing</ModelName>
<ModelNumber>3.0</ModelNumber>
<Manufacturer>Microsoft Corporation</Manufacturer>
</DeviceDescription>
<ContentDirectoryMessageBuilder>org.serviio.upnp.service.contentdirectory.SonyDLNAMessageBuilder</ContentDirectoryMessageBuilder>
<ContentDirectoryDefinitionFilter>org.serviio.upnp.service.contentdirectory.definition.WMPContentDirectoryDefinitionFilter</ContentDirectoryDefinitionFilter>
<MediaFormatProfiles>
<MediaFormatProfile mime-type="video/avi" name="">AVI</MediaFormatProfile>
<!-- rename native mpeg2ts with h264/ac3/aac formats to those supported by the tv -->
<MediaFormatProfile mime-type="video/vnd.dlna.mpeg-tts" name="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU">AVC_TS_MP_HD_AC3</MediaFormatProfile>
<MediaFormatProfile mime-type="video/vnd.dlna.mpeg-tts" name="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU">AVC_TS_MP_SD_AC3</MediaFormatProfile>
<MediaFormatProfile mime-type="video/vnd.dlna.mpeg-tts" name="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU">AVC_TS_MP_HD_AAC_MULT5</MediaFormatProfile>
<MediaFormatProfile mime-type="video/vnd.dlna.mpeg-tts" name="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU">AVC_TS_MP_SD_AAC_MULT5</MediaFormatProfile>
<MediaFormatProfile mime-type="video/vnd.dlna.mpeg-tts" name="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T">AVC_TS_MP_HD_AC3_T</MediaFormatProfile>
<MediaFormatProfile mime-type="video/vnd.dlna.mpeg-tts" name="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T">AVC_TS_MP_SD_AC3_T</MediaFormatProfile>
<MediaFormatProfile mime-type="video/vnd.dlna.mpeg-tts" name="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T">AVC_TS_HP_HD_MPEG1_L2_T</MediaFormatProfile>
<MediaFormatProfile mime-type="video/vnd.dlna.mpeg-tts" name="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T">AVC_TS_HP_SD_MPEG1_L2_T</MediaFormatProfile>
<MediaFormatProfile mime-type="video/vnd.dlna.mpeg-tts" name="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T">AVC_TS_MP_HD_AAC_MULT5_T</MediaFormatProfile>
<MediaFormatProfile mime-type="video/vnd.dlna.mpeg-tts" name="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T">AVC_TS_MP_SD_AAC_MULT5_T</MediaFormatProfile>
<!-- rename transcoded mpeg2ts with h264 to one of the TV's supported profiles -->
<MediaFormatProfile mime-type="video/mpeg" name="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO">AVC_TS_MP_HD_AC3_ISO</MediaFormatProfile>
<MediaFormatProfile mime-type="video/mpeg" name="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO">AVC_TS_MP_SD_AC3_ISO</MediaFormatProfile>
<MediaFormatProfile mime-type="video/mpeg" name="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO">AVC_TS_HP_HD_MPEG1_L2_ISO</MediaFormatProfile>
<MediaFormatProfile mime-type="video/mpeg" name="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO">AVC_TS_HP_SD_MPEG1_L2_ISO</MediaFormatProfile>
<MediaFormatProfile mime-type="video/mpeg" name="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO">AVC_TS_MP_HD_AAC_MULT5_ISO</MediaFormatProfile>
<MediaFormatProfile mime-type="video/mpeg" name="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO">AVC_TS_MP_SD_AAC_MULT5_ISO</MediaFormatProfile>
</MediaFormatProfiles>
<Transcoding>
<!-- For dvr-ms files force mpeg2video transcoding to fix monotone timestamps problems -->
<Video targetContainer="mpegts" targetACodec="ac3" forceVTranscoding="true" forceInheritance="true">
<Matches container="asf" vCodec="mpeg2video" />
</Video>
<!-- Transcode all h264 video with HIGH/MAIN > Level 4.1 on MPEG-TS stream with MPEG2VIDEO and ac3 audio transcoding -->
<!-- expected profile MPEG_TS_SD_EU/MPEG_TS_SD_NA/MPEG_TS_SD_KO -->
<Video targetContainer="mpegts" targetVCodec="mpeg2video" maxVBitrate="17000" targetACodec="ac3" aBitrate="384" forceInheritance="true">
<Matches container="avi" vCodec="h264" profile="high" levelGreaterThan="4.1" />
<Matches container="avi" vCodec="h264" profile="main" levelGreaterThan="4.1" />
<Matches container="matroska" vCodec="h264" profile="high" levelGreaterThan="4.1" />
<Matches container="matroska" vCodec="h264" profile="main" levelGreaterThan="4.1" />
<Matches container="mp4" vCodec="h264" profile="high" levelGreaterThan="4.1" />
<Matches container="mp4" vCodec="h264" profile="main" levelGreaterThan="4.1" />
<Matches container="mpegts" vCodec="h264" profile="high" levelGreaterThan="4.1" />
<Matches container="mpegts" vCodec="h264" profile="main" levelGreaterThan="4.1" />
</Video>
<!-- Remux h264 video with AC3/AAC audio to MPEG-TS stream without transcoding -->
<!-- expected profile AVC_TS_MP_HD_AC3_ISO -->
<Video targetContainer="mpegts" forceInheritance="true">
<Matches container="avi" vCodec="h264" aCodec="ac3" />
<Matches container="mp4" vCodec="h264" aCodec="ac3" />
<Matches container="matroska" vCodec="h264" aCodec="ac3" />
<Matches container="avi" vCodec="h264" aCodec="aac" />
<Matches container="mp4" vCodec="h264" aCodec="aac" />
<Matches container="matroska" vCodec="h264" aCodec="aac" />
</Video>
<!-- Remux all other h264 video to MPEG-TS stream with ac3 audio transcoding -->
<!-- expected profile AVC_TS_MP_HD_AC3_ISO -->
<Video targetContainer="mpegts" targetACodec="ac3" aBitrate="384" forceInheritance="true">
<Matches container="avi" vCodec="h264" />
<Matches container="mp4" vCodec="h264" />
<Matches container="flv" vCodec="h264" />
<Matches container="matroska" vCodec="h264" />
<!-- if audio different to ac3/aac, it must be transcoded -->
<Matches container="mpegts" aCodec="mp3" />
<Matches container="mpegts" aCodec="dca" />
<Matches container="mpegts" aCodec="lpcm" />
<Matches container="mpeg" aCodec="dca" />
<Matches container="ogg" vCodec="mpeg4" />
</Video>
<!-- All Others video/audio codec will be transcoded into mpeg2ts, mpeg2video and ac3 audio -->
<!-- expected profile MPEG_TS_SD_EU/MPEG_TS_SD_NA/MPEG_TS_SD_KO -->
<Video targetContainer="mpegts" targetVCodec="mpeg2video" maxVBitrate="17000" targetACodec="ac3" aBitrate="192" forceInheritance="true">
<Matches container="asf" />
<Matches container="mp4" />
<Matches container="matroska" />
<Matches container="flv" />
<Matches container="wtv" />
<Matches container="ogg" />
</Video>
<Audio targetContainer="lpcm" forceInheritance="true">
<!-- To allow "pause" then "resume" functions and album art for TVs that support it - transcode to mp3 instead -->
<Matches container="asf" />
<Matches container="mp4" />
<Matches container="ogg" />
<Matches container="flac" />
<Matches container="adts" />
</Audio>
</Transcoding>
<OnlineTranscoding>
<Video targetContainer="mpegts">
<Matches container="mp4"/>
<Matches container="flv" vCodec="h264"/>
<Matches container="applehttp" vCodec="h264"/>
</Video>
<Video targetContainer="mpeg" targetVCodec="mpeg2video" targetACodec="ac3" aBitrate="384">
<Matches container="asf"/> <!-- to support mms:// streams -->
<Matches container="flv"/>
</Video>
</OnlineTranscoding>
</Profile>