Samsung E/F profile modification

Issue #741 resolved
Former user created an issue

i needed to make some modifications to Samsung EF profile you implemented into 1.4 released version. this is my profile, one modification is cos of 3gp files, and other one cos of online section not recognizing rtsp streams, so this is what I changed (bold and italic):

<!-- transcode H264 MP4 files with LPCM audio --> <Video targetContainer="mpegts" targetACodec="ac3" forceInheritance="true"> <!-- 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" vCodec="h264" aCodec="amrnb" /> <!--Matches container="3gp" vCodec="mpeg4" aCodec="amrnb" /--> <Matches container="wtv" vCodec="h264"/> </Video>
<!-- my phone produces 3gp that don't fit above (diasbled 3gp-mpeg4 line), so needed this section below--> <Video targetContainer="mpegts" targetVCodec="mpeg2video" targetACodec="ac3" forceVTranscoding="true" maxVBitrate="4096" aBitrate="192" forceInheritance="true"> <Matches container="3gp" /> </Video>

and this is my online transcoding section:

<OnlineTranscoding> <Video targetContainer="mpegts" targetVCodec="mpeg2video" maxVBitrate="17000" targetACodec="ac3" aBitrate="384" DAR="16:9" forceInheritance="true"> <Matches container="rtp"/> <Matches container="rtsp"/> <Matches container="applehttp"/> <Matches container="asf"/> <Matches container="flv"/> </Video> </OnlineTranscoding>

in attachment is ffmpeg -i of 3gp file

Comments (5)

  1. Former user Account Deleted

    Petr, here is my complete profile with modifications I made to 1.4 Samsung EF profile, (above are explanations about 3gp files), and this is my proposal for E/F Samsung profile, please check it:

    <Profile id="Samsung6800" name="SamsungTV ES-serie" extendsProfileId="1">
        <ContentDirectoryMessageBuilder>org.serviio.upnp.service.contentdirectory.SamsungDLNAMessageBuilder</ContentDirectoryMessageBuilder>
            <ResourceTransportProtocolHandler>org.serviio.upnp.protocol.http.transport.SamsungWiseLinkProtocolHandler</ResourceTransportProtocolHandler>
            <Detection>
            <UPnPSearch>
                <FriendlyName>(^\[TV\][A-Z]{2}\d{2}(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-[EF].*)|(.*SEC_HHP_\[(HT|BD)\][EF].*)</User-Agent>
            </HttpHeaders>
        </Detection>
        <DeviceDescription>
            <FriendlyName>Serviio 1.4.1</FriendlyName>
            <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" forceInheritance="true">
                <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" forceInheritance="true">
                <!-- 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" vCodec="h264" aCodec="amrnb" />
                <!--Matches container="3gp" vCodec="mpeg4" aCodec="amrnb" /-->
                <Matches container="wtv" vCodec="h264"/>
            </Video>    
            <!-- my phone produces 3gp that don't fit above (diasbled 3gp-mpeg4 line), so needed this section below-->
            <Video targetContainer="mpegts" targetVCodec="mpeg2video" targetACodec="ac3" forceVTranscoding="true" maxVBitrate="4096" aBitrate="192" forceInheritance="true">
                <Matches container="3gp" />
            </Video>
            <Video targetContainer="mpegts" targetACodec="ac3" targetVCodec="mpeg2video" forceInheritance="true">
                <Matches container="matroska" vCodec="mpeg2video" />
                <Matches container="matroska" vCodec="vp8" />
                <Matches container="matroska" vCodec="vc1" aCodec="truehd" />
                <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="3gp" vCodec="h263" />
                <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" forceInheritance="true">
                <Matches container="asf" vCodec="mpeg2video" />
                <Matches container="asf" vCodec="mpeg1video" />
            </Video>
            <Video targetContainer="mpegts" forceInheritance="true">
                <Matches container="wtv" />
            </Video>
            <!-- transcode wmv2-wmav2, not: wmv3-wmapro it works ok on E series-->
            <Video targetContainer="mpegts" targetVCodec="mpeg2video" targetACodec="ac3" forceInheritance="true">
                <Matches container="asf" vCodec="wmv2" />
            </Video>
            <Audio targetContainer="lpcm" forceInheritance="true">
                <Matches container="mp4" />
                <Matches container="ogg" />
                <Matches container="adts" />
                <Matches container="mp2" />
                <Matches container="wavpack" />
                <Matches container="mpc" />
                <Matches container="ape" />
                <Matches container="asf" />
            </Audio>
        </Transcoding>
        <OnlineTranscoding>
            <Video targetContainer="mpegts" targetVCodec="mpeg2video" maxVBitrate="17000" targetACodec="ac3" aBitrate="384" DAR="16:9" forceInheritance="true">
                <!--Matches container="*" /-->
                <!--Matches container="mp4"/-->
                <Matches container="rtp"/>
                <Matches container="rtsp"/>
                <Matches container="applehttp"/>
                <Matches container="asf"/>
                <Matches container="flv"/>
            </Video>
        </OnlineTranscoding>
        <AutomaticImageRotation>true</AutomaticImageRotation>
        <LimitImageResolution>false</LimitImageResolution>
        <Subtitles>
            <SoftSubs mime-type="smi/caption" />
        </Subtitles>    
    </Profile>
    

    I love to have Serviio version in DeviceDescription (I copy also older Samsung profiles to new profiles with proper name 1.3.1 for example) so it is easier for me to compare them...

  2. Petr Nejedly repo owner

    Can you post ffmpeg -i for the 3gp file that didn't play with the original profile?

    What is the problem with the online sources in the current profile? Can you post ffmpeg -i of a stream that didn't play with it?

  3. Log in to comment