Hello, again.
I've tried setting up a profile for my easycast device by myself, but unfortunately, I seem to have messed it up somewhere. Serviio is now refusing to start and gives the following message in the server log:
- Code:
2016-02-29 16:45:51,688 ERROR [XmlUtils] XML Profiles.xsd didn't pass validation, reason: cvc-enumeration-valid: Value 'mkv' is not facet-valid with respect to enumeration '[asf, mpegvideo, mpeg, mpegts, m2ts, flv, applehttp]'. It must be a value from the enumeration.
2016-02-29 16:45:51,688 ERROR [MediaServer] An unexpected error occured. Ending the application. Message: org.serviio.profile.ProfilesDefinitionException: Profiles XML file is not valid (according to the schema). Check the log.
java.lang.RuntimeException: org.serviio.profile.ProfilesDefinitionException: Profiles XML file is not valid (according to the schema). Check the log.
at org.serviio.profile.ProfileManager.parseProfilesFromFile(ProfileManager.java:183)
at org.serviio.profile.ProfileManager.loadProfiles(ProfileManager.java:156)
at org.serviio.MediaServer.main(MediaServer.java:127)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.exe4j.runtime.WinLauncher$2.run(Unknown Source)
Caused by: org.serviio.profile.ProfilesDefinitionException: Profiles XML file is not valid (according to the schema). Check the log.
at org.serviio.profile.ProfilesDefinitionParser.validateXML(ProfilesDefinitionParser.java:986)
at org.serviio.profile.ProfilesDefinitionParser.parseDefinition(ProfilesDefinitionParser.java:157)
at org.serviio.profile.ProfileManager.parseProfilesFromFile(ProfileManager.java:181)
... 8 more
2016-02-29 16:45:51,688 WARN [IndexedDiskCache] Region [tokens] Disk cache not shutdown properly, shutting down now.
2016-02-29 16:45:51,688 WARN [IndexedDiskCache] Region [online_technical_metadata] Disk cache not shutdown properly, shutting down now.
2016-02-29 16:45:51,688 WARN [IndexedDiskCache] Region [thumbnails] Disk cache not shutdown properly, shutting down now.
Did I mess up the profiles file? This is what I inserted into the existing profiles file:
- Code:
<Profile id="easycast" name="EasyCast Alpha" 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}H[A-Z]?\d{3,4}.*)</FriendlyName>
<ModelNumber>(1\.0)|(AllShare1\.0)</ModelNumber>
</UPnPSearch>
<HttpHeaders>
<!-- for BD players -->
<User-Agent>(.*SEC_HHP_BD-H.*)|(.*SEC_HHP_\[(HT|BD)\]H.*)|(\[BD\]H.*)</User-Agent>
</HttpHeaders>
</Detection>
<DeviceDescription>
<ExtraElements>
<sec:ProductCap>smi,DCM10,getMediaInfo.sec,getCaptionInfo.sec</sec:ProductCap>
<sec:X_ProductCap>smi,DCM10,getMediaInfo.sec,getCaptionInfo.sec</sec:X_ProductCap>
</ExtraElements>
</DeviceDescription>
<MediaFormatProfiles>
<MediaFormatProfile mime-type="video/x-mkv">MATROSKA</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="mkv" targetVCodec="mpeg2video" targetACodec="ac3" aBitrate="192" maxVBitrate="15360" 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="*" vCodec="h265" />
</Video>
</Transcoding>
<GenericTranscoding>
<Video targetContainer="mkv" targetVCodec="mpeg2video" targetACodec="ac3" aBitrate="192"/>
</GenericTranscoding>
<AutomaticImageRotation>true</AutomaticImageRotation>
<LimitImageResolution>false</LimitImageResolution>
<Subtitles>
<HardSubs>
<BitmapBased supported="true"/>
<TextBased supported="true">
<RequiredFor container="*"/>
</HardSubs>
</Subtitles>
<AllowChunkedTransfer>false</AllowChunkedTransfer>
</Profile>
What I'm trying to do is transcode x265 and 10-bit video into a mkv container. I'm also trying to burn subtitles if present. Before this I've noticed that burning subtitles worked to some degree with different profiles, but there were some issues. If I open the transcoded file on my PC I can see the hardcoded subtitles, but if I try to open the file with my EasyCast device, through BubbleUPnP, I get a "Content length not found" error. So I'm trying to transcode into mkv in case that supplies EasyCast with a content length. I don't really know how those things work, all I know is there's headers (or some such), so what I'm trying to do with the mkv container might just be nonsense. From the error in the log it seems to reguire asf, mpegvideo, mpeg, mpegts, m2ts, flv or applehttp as a container? Is that all I would have to change? Also, are any of those known to better supply content length or should I try all of them one by one?
Any help would be greatly appreciated.
Update:
I've made some changes to the profile and now serviio starts properly and I can select my profile. x265 is now being transcoded and playing properly (Yay!), however, that's all that's being transcoded. 10bit video is passed without a transcode, and there's still the issue of subtitles just refusing to work. Any input on how to get it to transcode 10bit video and hardcode any subtitles if embedded in the file (or external)?