slavd 4 Posted September 9, 2019 Share Posted September 9, 2019 (edited) Hello, I have an old LG TV (47LM670S-ZA) which I keep in order to watch 3D movies on it. However the "Generic Device" DLNA profile does not fit well with it. I would like to create a custom one, that will: 1. Downmix all audio to stereo (otherwise the TV does not, and some of the channels are not played, which results in loss of audio for background music, special effects or speech) 2. Allow me to control the TV from the app, right now any attempt for control leads to an exception in the logs. For example: 2019-09-09 12:12:23.335 Error HttpServer: Error processing request *** Error Report *** Version: 4.2.1.0 Command line: /volume1/@appstore/EmbyServer/releases/4.2.1.0/EmbyServer.dll -package synology -programdata /var/packages/EmbyServer/target/var -ffmpeg /var/packages/EmbyServer/target/ffmpeg/bin/ffmpeg -ffprobe /var/packages/EmbyServer/target/ffmpeg/bin/ffprobe -ffdetect /var/packages/EmbyServer/target/ffmpeg/bin/ffdetect -restartexitcode 121 -ignore_vaapi_enabled_flag Operating system: Unix 3.10.105.0 64-Bit OS: True 64-Bit Process: True User Interactive: True Runtime: file:///volume1/@appstore/EmbyServer/3rdparty/netcore/2.2.1/runtime/System.Private.CoreLib.dll Processor count: 2 Program data path: /var/packages/EmbyServer/target/var Application directory: /volume1/@appstore/EmbyServer/releases/4.2.1.0 MediaBrowser.Model.Net.HttpException: MediaBrowser.Model.Net.HttpException: Connection to http://192.168.10.120:37904/upnp/control/AVTransport1 timed out ---> System.Threading.Tasks.TaskCanceledException: The operation was canceled. ---> System.IO.IOException: Unable to read data from the transport connection: Operation canceled. ---> System.Net.Sockets.SocketException: Operation canceled --- End of inner exception stack trace --- at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error) in /source/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.Tasks.cs:line 1088 at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 token) in /source/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.Tasks.cs:line 1062 at System.Net.Http.HttpConnection.FillAsync() in /source/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnection.cs:line 1326 at System.Net.Http.HttpConnection.ReadNextResponseHeaderLineAsync(Boolean foldedHeadersAllowed) in /source/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnection.cs:line 1278 at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken) in /source/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnection.cs:line 530 --- End of inner exception stack trace --- at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken) in /source/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnection.cs:line 710 at System.Net.Http.HttpConnectionPool.SendWithNtConnectionAuthAsync(HttpConnection connection, HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken) in /source/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:line 316 at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken) in /source/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:line 296 at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /source/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/RedirectHandler.cs:line 32 at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /source/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/DecompressionHandler.cs:line 48 at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts) in /source/corefx/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 511 at Emby.Server.Implementations.HttpClientManager.CoreHttpClientManager.SendAsyncInternal(HttpRequestOptions options, String httpMethod) --- End of inner exception stack trace --- at Emby.Server.Implementations.HttpClientManager.CoreHttpClientManager.SendAsyncInternal(HttpRequestOptions options, String httpMethod) at Emby.Server.Implementations.HttpClientManager.CoreHttpClientManager.SendAsync(HttpRequestOptions options, String httpMethod) at Emby.Dlna.PlayTo.SsdpHttpClient.SendCommandAsync(String baseUrl, DeviceService service, String command, ReadOnlyMemory`1 postData, CancellationToken cancellationToken, Boolean logRequest, String header) at Emby.Dlna.PlayTo.Device.SetAvTransport(String url, String header, String metaData, CancellationToken cancellationToken) at Emby.Dlna.PlayTo.PlayToController.SetPlaylistIndex(Int32 index, CancellationToken cancellationToken) at Emby.Server.Implementations.Session.SessionManager.SendMessageToSession[T](SessionInfo session, ReadOnlyMemory`1 name, T data, CancellationToken cancellationToken) at Emby.Server.Implementations.Session.SessionManager.SendPlayCommand(String controllingSessionId, String sessionId, PlayRequest command, CancellationToken cancellationToken) at Emby.Server.Implementations.Services.ServiceController.GetTaskResult(Task task) at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost appHost, IRequest httpReq, IResponse httpRes, RestPath restPath, String responseContentType, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IRequest httpReq, ReadOnlyMemory`1 urlString, ReadOnlyMemory`1 host, ReadOnlyMemory`1 localPath, CancellationToken cancellationToken) Source: Emby.Server.Implementations TargetSite: Void MoveNext() InnerException: System.Threading.Tasks.TaskCanceledException: The operation was canceled. Source: System.Net.Http TargetSite: Void MoveNext() at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken) in /source/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnection.cs:line 710 at System.Net.Http.HttpConnectionPool.SendWithNtConnectionAuthAsync(HttpConnection connection, HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken) in /source/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:line 316 at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken) in /source/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs:line 296 at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /source/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/RedirectHandler.cs:line 32 at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /source/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/DecompressionHandler.cs:line 48 at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts) in /source/corefx/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 511 at Emby.Server.Implementations.HttpClientManager.CoreHttpClientManager.SendAsyncInternal(HttpRequestOptions options, String httpMethod) InnerException: System.IO.IOException: Unable to read data from the transport connection: Operation canceled. Source: System.Net.Sockets TargetSite: Void ThrowException(System.Net.Sockets.SocketError) at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error) in /source/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.Tasks.cs:line 1088 at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 token) in /source/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.Tasks.cs:line 1062 at System.Net.Http.HttpConnection.FillAsync() in /source/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnection.cs:line 1326 at System.Net.Http.HttpConnection.ReadNextResponseHeaderLineAsync(Boolean foldedHeadersAllowed) in /source/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnection.cs:line 1278 at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken) in /source/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnection.cs:line 530 InnerException: System.Net.Sockets.SocketException: Operation canceled Source: TargetSite: 3. Allow me to play subtitles I do not mind setting the profile as default, since I only use DLNA for this device. Here is my profile so far: <?xml version="1.0"?> <Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Name>Generic</Name> <Identification> <FriendlyName /> <ModelNumber /> <SerialNumber /> <ModelName /> <DeviceDescription /> <ModelUrl /> <Manufacturer /> <ManufacturerUrl /> <Headers /> </Identification> <FriendlyName /> <Manufacturer>Emby</Manufacturer> <ManufacturerUrl>https://emby.media</ManufacturerUrl> <ModelName>Emby Server</ModelName> <ModelNumber>01</ModelNumber> <ModelUrl>https://emby.media</ModelUrl> <SerialNumber /> <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl> <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit> <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit> <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes> <UserId /> <AlbumArtPn>JPEG_SM</AlbumArtPn> <MaxAlbumArtWidth>480</MaxAlbumArtWidth> <MaxAlbumArtHeight>480</MaxAlbumArtHeight> <MaxIconWidth>48</MaxIconWidth> <MaxIconHeight>48</MaxIconHeight> <MaxStreamingBitrate>140000000</MaxStreamingBitrate> <MaxStaticBitrate>140000000</MaxStaticBitrate> <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate> <MaxStaticMusicBitrate xsi:nil="true" /> <SonyAggregationFlags /> <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo> <TimelineOffsetSeconds>0</TimelineOffsetSeconds> <RequiresPlainVideoItems>false</RequiresPlainVideoItems> <RequiresPlainFolders>false</RequiresPlainFolders> <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests> <XmlRootAttributes /> <DirectPlayProfiles> <DirectPlayProfile container="" type="Video" /> <DirectPlayProfile container="" type="Audio" /> </DirectPlayProfiles> <TranscodingProfiles> <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" /> <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" /> <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" /> </TranscodingProfiles> <ContainerProfiles /> <CodecProfiles> <CodecProfile type="VideoAudio" codec=""> <Conditions> <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" /> </Conditions> <ApplyConditions /> </CodecProfile> </CodecProfiles> <ResponseProfiles> <ResponseProfile container="m4v" type="Video" mimeType="video/mp4"> <Conditions /> </ResponseProfile> </ResponseProfiles> <SubtitleProfiles> <SubtitleProfile format="srt" method="External" /> <SubtitleProfile format="sub" method="External" /> <SubtitleProfile format="srt" method="Embed" /> <SubtitleProfile format="ass" method="Embed" /> <SubtitleProfile format="ssa" method="Embed" /> <SubtitleProfile format="smi" method="Embed" /> <SubtitleProfile format="dvdsub" method="Embed" /> <SubtitleProfile format="pgs" method="Embed" /> <SubtitleProfile format="pgssub" method="Embed" /> <SubtitleProfile format="sub" method="Embed" /> <SubtitleProfile format="subrip" method="Embed" /> <SubtitleProfile format="vtt" method="Embed" /> </SubtitleProfiles> </Profile> I tried using this topic to set the downmix for the audio, but it is either old and not relevant anymore, or I misunderstood how to setup the profile. Thank you for your time! Edited September 9, 2019 by slavd Link to comment Share on other sites More sharing options...
Luke 37060 Posted October 8, 2019 Share Posted October 8, 2019 Hi @@slavd, that looks like a good start. have you tried playing directly from the LG? Link to comment Share on other sites More sharing options...
slavd 4 Posted October 8, 2019 Author Share Posted October 8, 2019 Hi @@slavd, that looks like a good start. have you tried playing directly from the LG? Yes, playing directly from a USB down mixes the channels to stereo, however this does not happen over DLNA. I tried to look for a setting on the TV player, but did not find a nything Link to comment Share on other sites More sharing options...
Luke 37060 Posted October 12, 2019 Share Posted October 12, 2019 @@psxlover don't you have an LG from 2012/2013 ? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now