Page 1 of 1

Best ES series profile?

PostPosted: Wed Mar 13, 2013 6:55 pm
by Iveky
I own Samsung UE46ES6800 TV set. Not happy with 'official' profile, cos I am suffering disconnects as others... so I started to search to optimise.
Looking in older posts, where someone said that Sony AVreceiver profile works for some online short videos I discovered that ES serie supports MP4 without transcoding...
If video is MP4, H264, AAC it works without ANY transcoding, that's why it shows proper timing of video (2-3 minutes instead of some huge hours 289:21:06...) if you choose Sony AVreceiver profile, cos it won't be transcoded on Samsung. And timing is ok, no disconnection.
Also, ES serie supports windows media video WMV3 with WMAP audio! So I tried to disable that transcoding too.... and those videos now work ok.
Here is my profile that I use now:
  Code:
<Profile id="ES6800" name="Samsung TV - UE46ES6800" extendsProfileId="1">
      <ContentDirectoryMessageBuilder>org.serviio.upnp.service.contentdirectory.SamsungDLNAMessageBuilder</ContentDirectoryMessageBuilder>
        <ResourceTransportProtocolHandler>org.serviio.upnp.protocol.http.transport.SamsungWiseLinkProtocolHandler</ResourceTransportProtocolHandler>
        <Detection>
         <UPnPSearch>
            <FriendlyName>(^TV-\d{2}C\d{3}.*)|(^\[TV\][A-Z]{2}\d{2}(D|E)[A-Z]?\d{3,4}.*)</FriendlyName>            
            <ModelNumber>(1\.0)|(AllShare1\.0)</ModelNumber>
         </UPnPSearch>   
         <HttpHeaders>
            <!-- for BD players -->
            <User-Agent>(.*SEC_HHP_BD-[CDE].*)|(.*SEC_HHP_\[(HT|BD)\][CDE].*)</User-Agent>
         </HttpHeaders>
      </Detection>
      <DeviceDescription>
           <ExtraElements>
              &lt;sec:ProductCap&gt;smi,DCM10,getMediaInfo.sec,getCaptionInfo.sec&lt;/sec:ProductCap&gt;
            &lt;sec:X_ProductCap&gt;smi,DCM10,getMediaInfo.sec,getCaptionInfo.sec&lt;/sec:X_ProductCap&gt;
           </ExtraElements>
        </DeviceDescription>
        <MediaFormatProfiles>
            <MediaFormatProfile mime-type="video/x-mkv">MATROSKA</MediaFormatProfile>
            <MediaFormatProfile mime-type="video/x-msvideo" name="">AVI</MediaFormatProfile>
            <MediaFormatProfile mime-type="audio/x-flac">FLAC</MediaFormatProfile>
        </MediaFormatProfiles>
      <ContentDirectoryDefinitionFilter>org.serviio.upnp.service.contentdirectory.definition.SamsungContentDirectoryDefinitionFilter</ContentDirectoryDefinitionFilter>   
      <H264LevelCheck>FILE_ATTRIBUTES</H264LevelCheck>
      <Transcoding>
         <!-- Transcode all h264 video with HIGH/MAIN > Level 4.1 on MPEG-TS stream with MPEG2VIDEO and ac3 audio transcoding -->
         <Video targetContainer="mpegts" targetVCodec="mpeg2video" targetACodec="ac3" aBitrate="192">
            <Matches container="*" vCodec="h264" profile="high_10" />
            <Matches container="*" vCodec="h264" profile="high" levelGreaterThan="4.2" />
            <Matches container="*" vCodec="h264" profile="main" levelGreaterThan="4.2" />
                            <Matches container="mp4" vCodec="mpeg4" aCodec="lpcm" />
                            <Matches container="mp4" vCodec="dvvideo" />
                            <Matches container="mp4" vCodec="mjpeg" />
                       </Video>
         <!-- transcode H264 MP4 files with LPCM audio -->
         <Video targetContainer="mpegts" targetACodec="ac3">
            <!-- Matches container="mpegts" aCodec="mp2" /-->
            <Matches container="mp4" aCodec="lpcm" />
            <!-- <Matches container="flv" vCodec="h264" /> -->
            <Matches container="matroska" vCodec="h264" aCodec="flac" />
            <Matches container="matroska" vCodec="h264" aCodec="vorbis" />
            <Matches container="matroska" vCodec="h264" aCodec="truehd" />
            <Matches container="mpegts" vCodec="h264" aCodec="truehd" />
            <Matches container="ogg" vCodec="mpeg4" />
            <Matches container="3gp" aCodec="amrnb" />
            <Matches container="wtv" vCodec="h264"/> 
         </Video>   
         <Video targetContainer="mpegts" targetACodec="ac3" targetVCodec="mpeg2video">
            <Matches container="matroska" vCodec="mpeg2video" />
            <Matches container="matroska" vCodec="vp8" />
            <Matches container="avi" vCodec="h264" />
            <Matches container="avi" vCodec="mjpeg" />
            <Matches container="avi" vCodec="dvvideo" />
            <Matches container="flv" vCodec="flv"/> <!-- some models support playing flv natively, in that case remove this line -->
            <Matches container="flv" vCodec="h263"/>
            <Matches container="flv" vCodec="vp6"/>
            <Matches container="ogg" />
            <Matches container="rm" /> <!-- some models might support RealVideo natively, in that case remove this line -->
         </Video>
         <!-- For dvr-ms files force mpeg2video transcoding to fix monotone timestamps problems-->
         <Video targetContainer="mpegts" targetACodec="ac3" forceVTranscoding="true">
            <Matches container="asf" vCodec="mpeg2video" />
            <Matches container="asf" vCodec="mpeg1video" />
         </Video>                    
         <Video targetContainer="mpegts">
            <Matches container="wtv" />
         </Video>
         <!-- transcode wmv2-wmav2, not: wmv3-wmapro it works ok -->
         <Video targetContainer="mpegts" targetVCodec="mpeg2video"  targetACodec="ac3" maxVBitrate="20000" aBitrate="384">
            <Matches container="asf" vCodec="wmv2" aCodec="wmav2" />
         </Video>
         <Audio targetContainer="lpcm">
            <Matches container="mp4" />
            <Matches container="flac" /> <!-- E series plays FLAC natively so this line can be removed-->
            <Matches container="ogg" />
            <Matches container="adts" />
                            <Matches container="asf"  />
         </Audio>
      </Transcoding>
      <OnlineTranscoding>
         <Video targetContainer="mpegts" targetACodec="ac3" aBitrate="384">
             <Matches container="applehttp" vCodec="h264"/>
             <Matches container="flv" vCodec="h264"/>
         </Video>      
         <Video targetContainer="mpegts" targetVCodec="mpeg2video" targetACodec="ac3" aBitrate="384">
            <Matches container="asf" /> <!-- mms -->
         </Video>
      </OnlineTranscoding>
      <AutomaticImageRotation>true</AutomaticImageRotation>
        <LimitImageResolution>false</LimitImageResolution>
        <Subtitles>
         <SoftSubs mime-type="smi/caption" />
      </Subtitles>   
   </Profile>


My question is now, could we make transcoding into MP4, H264 instead of MPEGTS, and how? If it is possible, we would solve those disconnections on Samsung ES series?

Re: Best ES series profile?

PostPosted: Wed Mar 13, 2013 10:38 pm
by zip
You cannot transcode to mp4 (restrictions of the container) nor h264 (bundled FFmpeg doesn't support it)

Re: Best ES series profile?

PostPosted: Wed Mar 13, 2013 10:55 pm
by Iveky
so, only option to transcode is mpegts, or exist any other format to try? asf?

Re: Best ES series profile?

PostPosted: Wed Mar 13, 2013 10:57 pm
by zip
asf yes (look at xbox profile), but mpegts is the best (can hold h264 for remuxing)

Re: Best ES series profile?

PostPosted: Wed Mar 13, 2013 11:12 pm
by Iveky
zip wrote:asf yes (look at xbox profile), but mpegts is the best (can hold h264 for remuxing)


but for samsung es series, we need to find other approach...
if asf is supported, can i transcode into wmv3, wmapro?
cos Samsung 2012 (ES series) support it.
hold in mind, that we are searching option how to get no disconnection, and ok video length on Samsung, not easiest way :(

Re: Best ES series profile?

PostPosted: Wed Mar 13, 2013 11:53 pm
by zip
you can trancsode to wmv2, but the encoder is single threaded, so will be slow - quality is not the best either.

Re: Best ES series profile?

PostPosted: Thu Mar 14, 2013 9:18 am
by Iveky
no luck, damn Samsung support natively only WMV3 and WMAPRO :(
not wmv1, nor wmv2.

Re: Best ES series profile?

PostPosted: Tue Aug 20, 2013 6:29 am
by Iveky
zip, is it possible now (with serviio 1.3.1) to transcode to h264?
so i could try (once more) to solve Samsung E series problems (it supports H264, AAC)...
thx for reply

Re: Best ES series profile?

PostPosted: Thu Aug 22, 2013 1:00 pm
by zip
yes, you can transcode to mpegts/h264/aac. Just need to make the profile changes.

Re: Best ES series profile?

PostPosted: Thu Aug 22, 2013 4:55 pm
by Iveky
zip, here is result, could you check it out (especially added mime-types), I don't understand them, I just added them from Roku profile:

- changed as you suggested, forced everything into: mpegts,h286,aac and result is similar as with original samsung e profile (mpegts,mpeg2video,ac3):

original length of file is about 60 sec. and with mpeg2video declared length is some 286 hours, with h286 is sometimes 2 hours, and sometimes 34 hours...
disconnects in both cases some 30 sec before true end. no difference. I can't see why Samsung get wrong timing...
it is ok for movies, disconections don't bother too much, but for music songs it makes bad interruptions...
here is profile i tried:

<Profile id="Samy6800" name="SamsungTVtest-ES6800" extendsProfileId="1">
<ContentDirectoryMessageBuilder>org.serviio.upnp.service.contentdirectory.SamsungDLNAMessageBuilder</ContentDirectoryMessageBuilder>
<ResourceTransportProtocolHandler>org.serviio.upnp.protocol.http.transport.SamsungWiseLinkProtocolHandler</ResourceTransportProtocolHandler>
<Detection>
<UPnPSearch>
<FriendlyName>(^TV-\d{2}C\d{3}.*)|(^\[TV\][A-Z]{2}\d{2}(D|E|F)[A-Z]?\d{3,4}.*)|^\[TV\] Samsung</FriendlyName>
<ModelNumber>(1\.0)|(AllShare1\.0)</ModelNumber>
</UPnPSearch>
<HttpHeaders>
<!-- for BD players -->
<User-Agent>(.*SEC_HHP_BD-[CDEF].*)|(.*SEC_HHP_\[(HT|BD)\][CDEF].*)</User-Agent>
</HttpHeaders>
</Detection>
<DeviceDescription>
<ExtraElements>
&lt;sec:ProductCap&gt;smi,DCM10,getMediaInfo.sec,getCaptionInfo.sec&lt;/sec:ProductCap&gt;
&lt;sec:X_ProductCap&gt;smi,DCM10,getMediaInfo.sec,getCaptionInfo.sec&lt;/sec:X_ProductCap&gt;
</ExtraElements>
</DeviceDescription>
<MediaFormatProfiles>
<MediaFormatProfile mime-type="video/x-mkv">MATROSKA</MediaFormatProfile>
<MediaFormatProfile mime-type="video/x-msvideo" name="">AVI</MediaFormatProfile>
<MediaFormatProfile mime-type="audio/x-flac">FLAC</MediaFormatProfile>
<!--dodao ove formate iz Roku-->
<MediaFormatProfile mime-type="video/mp4">AVC_MP4_MP_SD_AAC_MULT5</MediaFormatProfile>
<MediaFormatProfile mime-type="video/mp4">AVC_MP4_MP_SD_MPEG1_L3</MediaFormatProfile>
<MediaFormatProfile mime-type="video/mp4">AVC_MP4_MP_SD_AC3</MediaFormatProfile>
<MediaFormatProfile mime-type="video/mp4">AVC_MP4_MP_HD_720p_AAC</MediaFormatProfile>
<MediaFormatProfile mime-type="video/mp4">AVC_MP4_MP_HD_1080i_AAC</MediaFormatProfile>
<MediaFormatProfile mime-type="video/mp4">AVC_MP4_HP_HD_AAC</MediaFormatProfile>
<MediaFormatProfile mime-type="video/mp4">AVC_MP4_LPCM</MediaFormatProfile>
<MediaFormatProfile mime-type="video/mp4">MPEG4_P2_MP4_ASP_AAC</MediaFormatProfile>
<MediaFormatProfile mime-type="video/mp4">MPEG4_P2_MP4_SP_L6_AAC</MediaFormatProfile>
<MediaFormatProfile mime-type="video/mp4">MPEG4_P2_MP4_NDSD</MediaFormatProfile>
<MediaFormatProfile mime-type="audio/mpeg">MP3</MediaFormatProfile>
<!--dodao do ovdje iz Roku-->
</MediaFormatProfiles>
<ContentDirectoryDefinitionFilter>org.serviio.upnp.service.contentdirectory.definition.SamsungContentDirectoryDefinitionFilter</ContentDirectoryDefinitionFilter>
<H264LevelCheck>FILE_ATTRIBUTES</H264LevelCheck>
<Transcoding>
<!-- Transcode all h264 video with HIGH/MAIN > Level 4.1 on MPEG-TS stream with MPEG2VIDEO and ac3 audio transcoding -->
<Video targetContainer="mpegts" targetVCodec="h264" targetACodec="aac">
<Matches container="asf" />
<Matches container="mpegvideo" />
<Matches container="mpeg" />
<Matches container="mpegts" />
<Matches container="matroska" />
<Matches container="avi" />
<Matches container="flv" />
<Matches container="wtv" />
<Matches container="ogg" />
<Matches container="3gp" />
<Matches container="rtp" />
<Matches container="rtsp" />
<Matches container="rm" />
</Video>
</Transcoding>
<AutomaticImageRotation>true</AutomaticImageRotation>
<LimitImageResolution>false</LimitImageResolution>
</Profile>

Re: Best ES series profile?

PostPosted: Thu Aug 22, 2013 9:59 pm
by Iveky
Just finnished second part of testing on my Samsung ES6800, this time i used FLV as container, vcodec: h264, acodec: aac

TV shows length of served video as 0, also stops with error (disconnected) before true end, BUT only few seconds before.
Interesting is next: same video wil sometimes play ok if repeated (shows exact time length) and sometimes will show 0 length. If shows correct length then will continue to play next song, if it is zero length then will stop with 'disconnection' like 'original' Samsung C-D-E-F profile...
will continue playing with options to get clue why SOMETIMES Serviio sends CORRECT length of video to SamsungTV but mostly wrong (in this case as flv container as zero length), and as mpegts container then it shows 289 hours length....

Any hints what to try next?

Re: Best ES series profile?

PostPosted: Fri Aug 23, 2013 6:21 pm
by zip
can you post ffmpeg -i of one of the music videos? The Samsung only shows the incorrect duration for transcoded files, but it plays almost everything natively.

Re: Best ES series profile?

PostPosted: Sun Aug 25, 2013 10:18 pm
by Iveky
here it is:
[root@serviio Viki]# ffmpeg -i MOV015.3gp
ffmpeg version 1.2.2 Copyright (c) 2000-2013 the FFmpeg developers
built on Aug 4 2013 08:23:55 with gcc 4.8.1 (GCC) 20130603 (Red Hat 4.8.1-1)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib --mandir=/usr/share/man --arch=i686 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables' --enable-bzlib --disable-crystalhd --enable-frei0r --enable-gnutls --enable-libass --enable-libcelt --enable-libdc1394 --disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopencv --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib --cpu=i686 --enable-runtime-cpudetect
libavutil 52. 18.100 / 52. 18.100
libavcodec 54. 92.100 / 54. 92.100
libavformat 54. 63.104 / 54. 63.104
libavdevice 54. 3.103 / 54. 3.103
libavfilter 3. 42.103 / 3. 42.103
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'MOV015.3gp':
Metadata:
major_brand : 3gp4
minor_version : 768
compatible_brands: 3gp4mp413gp6
creation_time : 2012-11-18 11:16:18
copyright :
copyright-eng :
Duration: 00:05:56.82, start: 0.000000, bitrate: 1494 kb/s
Stream #0:0(eng): Audio: amr_nb (samr / 0x726D6173), 8000 Hz, mono, flt, 12 kb/s
Metadata:
creation_time : 2012-11-18 11:16:18
handler_name : SoundHandler
Stream #0:1(eng): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 1478 kb/s, 13.48 fps, 13.50 tbr, 1k tbn, 60 tbc
Metadata:
creation_time : 2012-11-18 11:16:18
handler_name : VideoHandler
At least one output file must be specified
[root@serviio Viki]#

Re: Best ES series profile?

PostPosted: Tue Aug 27, 2013 10:51 pm
by Iveky
zip, i tried again and i am almost sure that bug is on serviio side. why?
i repeat: those files sometimes show length correct, sometimes wrong.... if I see that length is wrong (huge number of hours) I immediately stop it, restart and check length again... if wrong stop it again and restart until shows correct length of video.
Thinking about this, I came to conclusion that serviio doesn't send always same data to TV!? what else. but why?
I haven't changed profile, even not discconected from serviio, just restarting video and sometimes shows correct time, mostly wrong (1 out of 6 is correct).
in that case, playing video till end won't disconnect, it will start to play next song, then same 'game', stop-start untill getting right video length....
I am sure, if we find solution for this one, it could solve all Samsung disconnection problems?

Re: Best ES series profile?

PostPosted: Wed Sep 04, 2013 10:14 pm
by zip
This is what's happening:

1) you start a video that needs to be transcoded, serviio starts ffmpeg, but at this point it doesn't know the future file size, so only sends the duration
2) The TV ignores the duration and works it out itself from (probably) current bitrate and the fake file size serviio uses for transcoded files (about 50 GB)
3) you try again and again
4) Serviio finishes transcoding and sends the fully transcoded file with the final file size, so that the TV works out the duration correctly (at this point the file is played 'natively' from the already pre-transcoded file)

So if Samsung didn't ignore duration that Serviio ends, it'd work. I suppose they did it this way because their media server doesn't transcode, so it works for them just fine.