FAQ  •  Register  •  Login

BDP-S590 (EU) profile improvments ?

<<

nonolk

Streaming enthusiast

Posts: 25

Joined: Thu Sep 01, 2011 10:45 am

Location: France

Post Sun Aug 25, 2013 4:42 pm

BDP-S590 (EU) profile improvments ?

Hi everybody,

As I was testing differents file on my new panasonic plasma, I decided to test all those files also with my sony BDP-S590 (European), with the standard profile all where not playable, so I tried to improve it a litle bit.

And here is my final result:
  Code:
<Profile id="bdp2012" name="Sony BDP-Sx90 (2012)" extendsProfileId="1">
      <!-- For this BDP profile MKVs with multiple audio tracks and multiple subtitles are natively supported AVIs with DivX FourCC are transcoded,
       no XSub subtitle support -->
      <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>
         <!-- rename native WMA formats to those supported by the tv -->
         <MediaFormatProfile mime-type="audio/x-ms-wma" name="WMABASE">WMA_BASE</MediaFormatProfile>
         <MediaFormatProfile mime-type="audio/x-ms-wma" name="WMAFULL">WMA_FULL</MediaFormatProfile>
         <!-- rename 3gp profiles that can be played as AVC -->
         <MediaFormatProfile mime-type="video/mp4" name="AVC_MP4_MP_SD_AAC_MULT5">AVC_3GPP_BL_QCIF15_AAC</MediaFormatProfile>
      </MediaFormatProfiles>
      <H264LevelCheck>FILE_ATTRIBUTES</H264LevelCheck>
      <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" />
            <Matches container="asf" vCodec="mpeg1video" />
         </Video>
         <!-- h264 videos with high/main profile level > 4.1 will be transcoded to mpegts with mpeg2video and ac3 audio -->
         <Video targetContainer="mpegts" targetVCodec="mpeg2video" maxVBitrate="17000" targetACodec="ac3" aBitrate="320" forceInheritance="true">
            <Matches container="avi"  vCodec="h264"/>
            <Matches container="*" vCodec="h264" profile="high" levelGreaterThan="4.1" />
            <Matches container="*" vCodec="h264" profile="main" levelGreaterThan="4.1" />
            <Matches container="matroska" vCodec="vp8" />
            <Matches container="*" vCodec="h263"/>
            <Matches container="mp4" vCodec="h264" profile="high"/>
         </Video>
         <Video targetContainer="mpegts">
            <Matches container="flv" vCodec="h264" />
         </Video>
         <!-- unsupported codecs will be transcoded to mpegts with mpeg2video and ac3 audio -->
         <Video targetContainer="mpegts" targetVCodec="mpeg2video" maxVBitrate="17000" targetACodec="ac3" aBitrate="320" forceInheritance="true">
            <Matches container="asf" vCodec="vc1" aCodec="wmapro" />
            <Matches container="asf" vCodec="wmv2" aCodec="wmav2" />
            <Matches container="flv" />
            <Matches container="wtv" />
            <Matches container="ogg" />
            <Matches container="rm" />
            <Matches container="avi" vCodec="dvvideo" />
            <Matches container="avi" vCodec="wmv2" />
            <Matches container="mp4" vCodec="dvvideo" />
            <!-- digital camera video formats -->
            <Matches container="avi" vCodec="mjpeg" />
            <Matches container="mp4" vCodec="mjpeg" />
         </Video>
         <Video targetContainer="mpegts" targetVCodec="mpeg2video" maxVBitrate="17000" targetACodec="ac3" aBitrate="320">
            <!-- DivX -->
            <Matches container="*" vCodec="mpeg4" vFourCC="div3,div4,div5,divx,dm4v,dx50" />
            <Matches container="*" vCodec="msmpeg4" vFourCC="div3,div4,div5,divx,dm4v,dx50" />
                 <Matches container="avi" vCodec="vc1" />
         </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="ogg" />
            <Matches container="flac" />
            <Matches container="mp2" />
            <Matches container="wavpack" />
            <Matches container="mpc" />
               <Matches container="ape" />
         </Audio>
         <Image forceInheritance="true">
            <Matches container="jpeg" subsampling="YUV444" />
         </Image>
      </Transcoding>
      <OnlineTranscoding>
         <Video targetContainer="mpegts"> <!-- do not transcode to ac3 -->
            <Matches container="mp4" />
            <Matches container="flv" vCodec="h264" />
            <Matches container="applehttp" vCodec="h264" />
         </Video>
         <Video targetContainer="mpeg" targetVCodec="mpeg2video" targetACodec="ac3" aBitrate="320" forceInheritance="true">
            <Matches container="asf" /> <!-- to support mms:// streams -->
            <Matches container="flv" />
         </Video>
      </OnlineTranscoding>
      <HardSubsTranscoding>
         <Video targetContainer="mpegts" targetVCodec="mpeg2video" targetACodec="ac3" maxVBitrate="17000" aBitrate="320" />
      </HardSubsTranscoding>
      <LimitImageResolution>false</LimitImageResolution>
   </Profile>


For sure It can be improved, It is based on try and error and file analysis using ffmepg -i and media info.

I am particulary not satisfied with this line as I think there could be some board effects:
  Code:
<Matches container="mp4" vCodec="h264" profile="high"/>


This was due to a file not playing without it, but not matching with:
  Code:
<Matches container="*" vCodec="h264" profile="high" levelGreaterThan="4.1" />


Here are the file information:
ffmpeg -i :
  Code:
ora\Multimedia\Series\Test\dw11222.mp4
ffmpeg version N-54096-ge41bf19 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jun 18 2013 10:49:28 with gcc 4.7.2 (GCC)
  configuration: --enable-static --disable-shared --disable-ffplay --disable-ffs
erver --enable-memalign-hack --enable-libmp3lame --enable-libass --enable-librtm
p --enable-fontconfig --enable-libfreetype --enable-zlib --enable-libx264 --extr
a-libs='-lrtmp -lpolarssl -lws2_32 -lwinmm -lexpat -lfreetype -lfribidi -lz' --a
rch=x86 --enable-runtime-cpudetect --enable-pthreads --target-os=mingw32 --cross
-prefix=i686-w64-mingw32- --enable-gpl --pkg-config=pkg-config
  libavutil      52. 37.101 / 52. 37.101
  libavcodec     55. 16.100 / 55. 16.100
  libavformat    55.  9.100 / 55.  9.100
  libavdevice    55.  2.100 / 55.  2.100
  libavfilter     3. 77.101 /  3. 77.101
  libswscale      2.  3.100 /  2.  3.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\\aurora\Multimedia\Series\Test\dw11222
.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    creation_time   : 2009-05-24 18:09:32
  Duration: 00:04:03.08, start: 0.000000, bitrate: 111 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 352x198 [
SAR 1:1 DAR 16:9], 67 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc
    Metadata:
      creation_time   : 2009-05-24 18:09:32
      handler_name    : GPAC ISO Video Handler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 40
 kb/s
    Metadata:
      creation_time   : 2009-05-24 18:09:32
      handler_name    : GPAC ISO Audio Handler


And here is mediainfo output:
  Code:
General
Complete name                            : /Volumes/Multimedia/Series/Test/dw11222.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom
File size                                : 3.22 MiB
Duration                                 : 4mn 3s
Overall bit rate                         : 111 Kbps
Encoded date                             : UTC 2009-05-24 18:09:32
Tagged date                              : UTC 2009-05-24 18:09:32

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L5.1
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 8 frames
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 4mn 3s
Bit rate                                 : 64.0 Kbps
Maximum bit rate                         : 132 Kbps
Width                                    : 352 pixels
Height                                   : 198 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 25.000 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.037
Stream size                              : 1.94 MiB (60%)
Writing library                          : x264 core 54 svn-606M
Encoding settings                        : cabac=1 / ref=5 / deblock=1:0:0 / analyse=0x3:0x133 / me=umh / subme=6 / brdo=0 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=1 / cqm=0 / deadzone=21,11 / chroma_qp_offset=0 / slices=4 / nr=0 / decimate=1 / mbaff=0 / bframes=2 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=1 / wpredb=1 / bime=0 / keyint=5 / keyint_min=3 / scenecut=40 / rc=2pass / bitrate=64 / ratetol=1.0 / rceq='blurCplx^(1-qComp)' / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / pb_ratio=1.30
Encoded date                             : UTC 2009-05-24 18:09:32
Tagged date                              : UTC 2009-05-24 18:09:32

Audio
ID                                       : 2
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : 40
Duration                                 : 4mn 3s
Bit rate mode                            : Variable
Bit rate                                 : 40.3 Kbps
Maximum bit rate                         : 46.6 Kbps
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 44.1 KHz
Compression mode                         : Lossy
Stream size                              : 1.17 MiB (36%)
Encoded date                             : UTC 2009-05-24 18:09:32
Tagged date                              : UTC 2009-05-24 18:09:32


Maybe someone can help me to understand why it's not matching on levelGreaterThan="4.1", even if reported as L5.1.

Feel free to use this profile and/or imrpove it.

Best regards,
--
Serviio Pro 1.5.2: Runing on intel XEON (VMWare virtualized) under Windows 2k12 r2
Renderers: Panasonic P50ST60 (2013), Panasonic BDT 500, Onkyo TX NR 609, IPAD Air2
<<

DenyAll

DLNA master

Posts: 2257

Joined: Fri Mar 08, 2013 11:16 pm

Location: Adelaide, Australia

Post Sun Aug 25, 2013 11:03 pm

Re: BDP-S590 (EU) profile improvments ?

Maybe someone can help me to understand why it's not matching on levelGreaterThan="4.1", even if reported as L5.1.
Have a read of the wiki article: http://wiki.serviio.org/doku.php?id=get_h264_level.

The line in your profile <H264LevelCheck>FILE_ATTRIBUTES</H264LevelCheck> tells Serviio to use the file attributes (ie. the width, height and reframes) to determine h264 level. Based on the wiki article, the dpbMbsfor your file is = 352 x 198 x 8 / 256 = 2,178 which corresponds to a h264 level = 2 --> hence no match to your greater than L4.1 bit.

Removing the <H264LevelCheck>FILE_ATTRIBUTES</H264LevelCheck> line will tell Serviio to inherit the value from profile 1 - <H264LevelCheck>ANY</H264LevelCheck> - which then tells Serviio to use the higher of the file attributes calculated level, or the level stored in the file header (in your case 5.1) - see http://www.serviio.org/index.php?option ... icle&id=16 for details.
DenyAll
Panasonic Viera FX800A | Panasonic Viera CS610A | Sony PS4 | Sony PS3 | Panasonic DMP-BD79 | Yamaha RX-V500D | iPad | Windows 10 | Serviio 1.10.1 Pro
WinHelper | MediaInfo

Beta Tester, Moderator
Please do not PM me for support as any solution cannot be shared with others.
<<

nonolk

Streaming enthusiast

Posts: 25

Joined: Thu Sep 01, 2011 10:45 am

Location: France

Post Mon Aug 26, 2013 3:52 pm

Re: BDP-S590 (EU) profile improvments ?

Hi everybody,

Thank's to Denyall, I was able to improve a litle bit more the profile for european BDP-S590:
  Code:
<Profile id="bdp2012" name="Sony BDP-Sx90 (2012)" extendsProfileId="1">
      <!-- For this BDP profile MKVs with multiple audio tracks and multiple subtitles are natively supported AVIs with DivX FourCC are transcoded,
       no XSub subtitle support -->
      <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>
         <!-- rename native WMA formats to those supported by the tv -->
         <MediaFormatProfile mime-type="audio/x-ms-wma" name="WMABASE">WMA_BASE</MediaFormatProfile>
         <MediaFormatProfile mime-type="audio/x-ms-wma" name="WMAFULL">WMA_FULL</MediaFormatProfile>
         <!-- rename 3gp profiles that can be played as AVC -->
         <MediaFormatProfile mime-type="video/mp4" name="AVC_MP4_MP_SD_AAC_MULT5">AVC_3GPP_BL_QCIF15_AAC</MediaFormatProfile>
      </MediaFormatProfiles>
      <H264LevelCheck>ANY</H264LevelCheck>
      <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" />
            <Matches container="asf" vCodec="mpeg1video" />
         </Video>
         <!-- h264 videos with high/main profile level > 4.1 will be transcoded to mpegts with mpeg2video and ac3 audio -->
         <Video targetContainer="mpegts" targetVCodec="mpeg2video" maxVBitrate="17000" targetACodec="ac3" aBitrate="320" forceInheritance="true">
            <Matches container="avi"  vCodec="h264"/>
            <Matches container="*" vCodec="h264" profile="high" levelGreaterThan="4.1" />
            <Matches container="*" vCodec="h264" profile="main" levelGreaterThan="4.1" />
            <Matches container="matroska" vCodec="vp8" />
            <Matches container="*" vCodec="h263"/>
            <Matches container="matroska" vFourCC="mp4v" />
            <Matches container="mp4" vCodec="mpeg4" vFourCC="mp4v" ftypNotIn="isom"/>
         </Video>
         <Video targetContainer="mpegts">
            <Matches container="flv" vCodec="h264" />
         </Video>
         <Video targetContainer="mpegts" targetACodec="ac3" forceInheritance="true">
                        <Matches container="mp4" vCodec="h264" aCodec="dca" />
               </Video>
         
         <!-- unsupported codecs will be transcoded to mpegts with mpeg2video and ac3 audio -->
         <Video targetContainer="mpegts" targetVCodec="mpeg2video" maxVBitrate="17000" targetACodec="ac3" aBitrate="320" forceInheritance="true">
            <Matches container="asf" aCodec="wmapro" />            
            <Matches container="asf" vCodec= "vc1" aCodec="wmav2" />
            <Matches container="flv" />
            <Matches container="wtv" />
            <Matches container="ogg" />
            <Matches container="rm" />
            <Matches container="avi" vCodec="dvvideo" />
            <Matches container="avi" vCodec="wmv2" />
            <Matches container="mp4" vCodec="dvvideo" />
            <!-- digital camera video formats -->
            <Matches container="avi" vCodec="mjpeg" />
            <Matches container="mp4" vCodec="mjpeg" />
         </Video>
         <Video targetContainer="mpegts" targetVCodec="mpeg2video" maxVBitrate="17000" targetACodec="ac3" aBitrate="320">
            <!-- DivX -->
            <Matches container="*" vCodec="mpeg4" vFourCC="div3,div4,div5,divx,dm4v,dx50" />
            <Matches container="*" vCodec="msmpeg4" vFourCC="div3,div4,div5,divx,dm4v,dx50" />
                 <Matches container="avi" vCodec="vc1" />
         </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="ogg" />
            <Matches container="flac" />
            <Matches container="mp2" />
            <Matches container="wavpack" />
            <Matches container="mpc" />
               <Matches container="ape" />
         </Audio>
         <Image forceInheritance="true">
            <Matches container="jpeg" subsampling="YUV444" />
         </Image>
      </Transcoding>
      <OnlineTranscoding>
         <Video targetContainer="mpegts"> <!-- do not transcode to ac3 -->
            <Matches container="mp4" />
            <Matches container="flv" vCodec="h264" />
            <Matches container="applehttp" vCodec="h264" />
         </Video>
         <Video targetContainer="mpeg" targetVCodec="mpeg2video" targetACodec="ac3" aBitrate="320" forceInheritance="true">
            <Matches container="asf" /> <!-- to support mms:// streams -->
            <Matches container="flv" />
         </Video>
      </OnlineTranscoding>
      <HardSubsTranscoding>
         <Video targetContainer="mpegts" targetVCodec="mpeg2video" targetACodec="ac3" maxVBitrate="17000" aBitrate="320" />
      </HardSubsTranscoding>
      <LimitImageResolution>false</LimitImageResolution>
   </Profile>


Wit this profile only one test file didn't play properly ( I had video but no sound), but I really think this is due to bad encoding.
Otherwise if you want to avoid this issue you can transcode all asf files to mpeg-ts replacing those lines:
  Code:
<Matches container="asf" aCodec="wmapro" />            
<Matches container="asf" vCodec= "vc1" aCodec="wmav2" />


With:
  Code:
<Matches container="asf"/>


But my goal was to only transcode if needed.

Maybe someone can still improve it but I think this profile is quite good now. (At least for me it works better than before)

So maybe Zip or Patters can integrate it in the next release.

Best regards,
--
Serviio Pro 1.5.2: Runing on intel XEON (VMWare virtualized) under Windows 2k12 r2
Renderers: Panasonic P50ST60 (2013), Panasonic BDT 500, Onkyo TX NR 609, IPAD Air2

Return to Sony

Who is online

Users browsing this forum: No registered users and 37 guests

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.