Renderers Samsung QLED 4K 2023 Q68C

Discuss media renderers like Xbox 360, TVs, smartphones, etc.
User avatar
mik_s
Moderator
Posts: 1130
Joined: Wed Aug 23, 2017 11:03 pm
Location: UK

Re: Renderers Samsung QLED 4K 2023 Q68C

Post by mik_s »

I don't exactly know how the speed test is done in UMS but out of curiosity I ran the OpenSpeedTest server on my PC and ran the test on the web browser on my PS4 and I got a much higher download speed than is measured in UMS. But maybe it is not download speed that is important if it uses another protocol, but I know little about networking.
Also I don't know if they are both using the same units as it could be bytes/sec, bits/sec and if it counts 1000 as a kilobyte or the correct value of 1024.

If you manually set it to use 90 then it should be fine if you don't notice any stuttering. Did you check to see if your settings were saving after setting it to 0?

I don't know why your GPU is not being used, FFmpeg should use it if available. Try enabling the GPU option and set "h264_nvenc" for "AVC/H.264 GPU encoding acceleration method" and do new logs with those settings so I can see what happens.

Which graphics card do you have? I tried these settings myself just in case my old GT 520 did support hardware video encoding but it failed to start.
Doing a bit more research I found a site that shows which cards do support this and mine did not which would give an error code from FFmpeg.

Manually setting it to stream MKV videos might work for most videos but then you will have some that use DTS or another format the TV can't play so it will need transcoding first. Getting the conf correct will prevent unnecessary transcoding when its not needed. Its just hard to do when you don't have access to that TV to do the testing so this is something the user has to do themselves.
Logs are important for us to help, Please follow This Link before asking for support. Just a forum cleaner, Will help if I can but no expert.
Fredo1650
Posts: 13
Joined: Fri Mar 01, 2024 2:49 am

Re: Renderers Samsung QLED 4K 2023 Q68C

Post by Fredo1650 »

Hello, the network parameter at 0 is saved and the value corresponds well in UMS.conf
I enabled GPU acceleration and defined h264_nvenc (h264) and hevc_nvenc (h265) in the options
I started the video, the GPU is still not used (0%)
CPU: Core I7-2600
GPU: RTX 2070
Ram: 16Go
ums_dbg_2024-03-11-16-04.zip
(1.52 MiB) Downloaded 24 times
ffmpeg.jpg
ffmpeg.jpg (12.76 KiB) Viewed 1135 times
ffmpeg 2.jpg
ffmpeg 2.jpg (332.2 KiB) Viewed 1135 times
Fredo1650
Posts: 13
Joined: Fri Mar 01, 2024 2:49 am

Re: Renderers Samsung QLED 4K 2023 Q68C

Post by Fredo1650 »

In your previous post you told me that UMS forced transcoding for Avatar because there was TrueHD audio that the television did not support.
The video contains 3 audio tracks:
Stream 1: French E-AC3 (eac3)
Stream 2: English TrueHD
Stream 3: English AC3 (a52)
When I deactivate mkv transcoding the 2 languages are still available and read by the television (Streams 1 and 3)
If several audio streams are available in the same language and the television supports one of them UMS should not transcode, the television supports Stream 1: French E-AC3 (eac3) and Stream 3: English AC3 (a52 )
Avatar codec.jpg
Avatar codec.jpg (154.21 KiB) Viewed 1128 times
User avatar
mik_s
Moderator
Posts: 1130
Joined: Wed Aug 23, 2017 11:03 pm
Location: UK

Re: Renderers Samsung QLED 4K 2023 Q68C

Post by mik_s »

If at least 1 audio stream is supported then I think the video should be chosen to be streamed but not sure if that check is being done here, maybe something has gone wrong with the decision logic and is choosing to transcode as soon as it see an unsupported audio track.
At least it confirms that TrueHD audio is not supported if you cannot select track 2 on the TV.

I know next to nothing about GPU encoding so I guessing here, but from what I can find it it should work on that graphics card and the settings are correct to enable it.

I think this section may be significant

Code: Select all

net.pms.encoders.FFMpegVideo Switching from FFmpeg to Hls FFmpeg to transcode.
net.pms.platform.windows.WindowsUtils Using short path name of "F:\Films et Séries 4K\Avatar - la voie de l'eau\Avatar - la voie de l'eau.mkv": "F:\FILMSE~2\AVATAR~1\AVATAR~1.MKV"
net.pms.configuration.ConfigurationReader Reading gpu_acceleration: true (default: false)
net.pms.encoders.FFMpegVideo Something wrong, falling back to h264
net.pms.platform.windows.WindowsNamedPipe Creating pipe \\.\pipe\ffmpeghlsvideo_100_1710168890735
net.pms.platform.windows.WindowsNamedPipe Waiting for Windows names pipe connection "\\.\pipe\ffmpeghlsvideo_100_1710168890735"
net.pms.io.ProcessWrapperImpl Starting "C:\Program Files (x86)\Universal Media Server\bin\ffmpeg.exe" -y -loglevel info -t 6.0 -sn -i F:\FILMSE~2\AVATAR~1\AVATAR~1.MKV -sn -map 0:V -map 0:a:0 -dn -copyts -c:v libx264 -keyint_min 25 -preset superfast -profile:v high -level 30 -pix_fmt yuv420p -c:a aac -ac 2 -ab 160000 -f mpegts -skip_estimate_duration_from_pts 1 -use_wallclock_as_timestamps 1 -movflags frag_keyframe \\.\pipe\ffmpeghlsvideo_100_1710168890735
It says "something wrong" and switching to back to h264 and in the transcoding command it is still using libx264 for software encoding.
Unfortunately it does not give any other details into what went wrong.

It may be a problem with HLS transcoding. To rule this out try using this conf where I have changed the profile to "MPEGTS-H264-AC3" which is the old way of doing it.
This will not allow you to seek, or change audio/subtitles as they have to be burnt into the video for it to work, but this should be using the GPU.
Attachments
Samsung-TV-2023.conf
set to use MPEGTS-H264-AC3, backup original conf.
(12.83 KiB) Downloaded 25 times
Logs are important for us to help, Please follow This Link before asking for support. Just a forum cleaner, Will help if I can but no expert.
Fredo1650
Posts: 13
Joined: Fri Mar 01, 2024 2:49 am

Re: Renderers Samsung QLED 4K 2023 Q68C

Post by Fredo1650 »

Hello I tried with the new profile
“MPEGTS-H264-AC3” no more video is played, the television simply displays an Error
ums_dbg_2024-03-13-23-15.zip
(714.13 KiB) Downloaded 25 times
User avatar
mik_s
Moderator
Posts: 1130
Joined: Wed Aug 23, 2017 11:03 pm
Location: UK

Re: Renderers Samsung QLED 4K 2023 Q68C

Post by mik_s »

I forgot to check some other settings like SeekByTime as Samsung does not use that for this type of stream.

I do see that the right option is used in the transcoding command to use the GPU though.

Give this one a go and it should play while using the GPU but we still need to figure out why it is not working for HLS transcoding. Maybe this is something the Devs will have to look into as I am out of ideas.
Attachments
Samsung-TV-2023.conf
No HLS, No SeekByTime
(13 KiB) Downloaded 28 times
Logs are important for us to help, Please follow This Link before asking for support. Just a forum cleaner, Will help if I can but no expert.
Fredo1650
Posts: 13
Joined: Fri Mar 01, 2024 2:49 am

Re: Renderers Samsung QLED 4K 2023 Q68C

Post by Fredo1650 »

Hello, with this setting the GPU is well used by ffmpeg however the video is of very poor quality (Video from Avatar 4K), with HLS the video was in 4k of very good quality but without GPU decoding which caused some image stoppage
On the second video Mencoder is launched instead of ffmpeg, Mencoder does not use the GPU.
I deactivated the option "Switch to MEncoder during problematic transcoding of subtitles" as well as the subtitles, I restarted the ffmpeg video started, the GPU was well used but still the image was very poor quality .
In the Samsung-TV-2023.conf file, TranscodeVideo = MPEGTS-H264-AC3 I changed the H264 parameter to H265, this improved the quality a little but the image is still bad
Can we just transcode the audio tracks and not transcode the video for nothing, because the only format not supported is DTS audio and True HD?
ums_dbg_2024-03-15-20-17.zip
(996.25 KiB) Downloaded 21 times
ffmpeg.exe
ffmpeg.exe
1.jpg (10.49 KiB) Viewed 1012 times
mencoder.exe
mencoder.exe
2.jpg (11.84 KiB) Viewed 1012 times
User avatar
mik_s
Moderator
Posts: 1130
Joined: Wed Aug 23, 2017 11:03 pm
Location: UK

Re: Renderers Samsung QLED 4K 2023 Q68C

Post by mik_s »

These may be transcoding to 1080p so there will be a big drop in quality, but at least I can see the GPU is being used.

Also the quality is being limited by the speedtest as "automatic_maximum_bitrate" is set to true, so this is also lowering the quality.
If you turned of auto max bitrate again it should improve the quality.

There are no options for GPU encoding for Mencoder so I don't think it supports that. Best to use FFmepg.

Changing to h265 will be better if your GPU can encode this as the TV has no problems with this format and it uses less bandwidth so that is why the quality is better.

I think this shows there might be a bug in UMS choosing not to use HLS transcoding on GPU. I'll post an issue on Github for the devs to look, or get an answer if this will not work.

As for only transcoding the audio in theory it should just be copying the video stream but this may be a bit hit or miss whether it works well so it does the whole thing, but I know little of the actual process.
Logs are important for us to help, Please follow This Link before asking for support. Just a forum cleaner, Will help if I can but no expert.
Fredo1650
Posts: 13
Joined: Fri Mar 01, 2024 2:49 am

Re: Renderers Samsung QLED 4K 2023 Q68C

Post by Fredo1650 »

I carried out several tests with the network parameters adjustment (Use the maximum bandwidth, 90 and 0 I realized that in certain cases the video no longer starts, an error is displayed in the UMS logs, when the video manages to play with the settings at 90 or 0, the video was always of poor quality, no change I would say 720p quality or even lower for a 4k video at the input

I carried out another test with the LAN network, it didn't change anything.

Standard error:
ffmpeg.exe has a return code of -22!
'maximum_bitrate
ums_dbg_2024-03-16-15-14.zip
(614.97 KiB) Downloaded 19 times
ums_dbg_2024-03-16-15-24.zip
(581.32 KiB) Downloaded 18 times
UMS 1.jpg
UMS 1.jpg (595.04 KiB) Viewed 975 times
User avatar
mik_s
Moderator
Posts: 1130
Joined: Wed Aug 23, 2017 11:03 pm
Location: UK

Re: Renderers Samsung QLED 4K 2023 Q68C

Post by mik_s »

I just realised one thing to why Avatar is transcoding. Your language settings could be making UMS chose to do this.

Code: Select all

# Audio/subtitle language priority
# --------------------------------
# Determine the string of audio language and subtitles language pairs ordered
# by priority for MEncoder to try to match. Audio language and subtitles
# language should be comma separated as a pair; individual pairs should be
# semicolon separated. "*" can be used to match any language. Subtitles
# language can be defined as "off" (e.g. "jpn,off;*,*").
# Default: a localized list (e.g. "eng,off;*,eng;*,und").
# audio_subtitles_languages =
Clipboard Image (7).jpg
Clipboard Image (7).jpg (3.95 KiB) Viewed 275 times
Clipboard Image (6).jpg
Clipboard Image (6).jpg (44.37 KiB) Viewed 275 times
This is set by default depending on the language used on your computer so I can't see what is actually being used.
As the French subtitles use the PGS format that is not supported on the TV then UMS has to burn then into the video by transcoding.

This setting is not very user friendly so I hope it is something that the devs will improve. They did say they would do it when they moved over to web settings but its probably not a high priority.
I'm guessing if you change it to "fre,off;eng,off;*,fre;*,eng;*,und" it might ignore those subtitles.
If you are not bothered with subtitles you can just disable them.

Another reason may be because the subtitles are forced, usually for dialogue that are in another language. And it may be using the PGS format to put special effects on the them.

Code: Select all

[Embedded, id: 0, type: PGS, subtitles track title from metadata: French (forced), lang: fre, default: true, forced: true]
Maybe if you downloaded external subtitles in a supported format and have them in the same folder and same name as the video then those will be sent to the TV to be used instead.



I do see some errors in the logs now and I don't know why it is happening

Code: Select all

net.pms.network.mediaserver.nettyserver.RequestV2 error while generating answer
org.apache.commons.configuration.ConversionException: 'maximum_bitrate' doesn't map to a String object
	at org.apache.commons.configuration.AbstractConfiguration.getString(AbstractConfiguration.java:1050)
	at org.apache.commons.configuration.AbstractConfiguration.getString(AbstractConfiguration.java:1021)
	at net.pms.configuration.ConfigurationReader.getNonBlankConfigurationString(ConfigurationReader.java:247)
	at net.pms.configuration.BaseConfiguration.getString(BaseConfiguration.java:68)
	at net.pms.configuration.UmsConfiguration.getMaximumBitrateDisplay(UmsConfiguration.java:2452)
	at net.pms.configuration.UmsConfiguration.getMaximumBitrate(UmsConfiguration.java:2436)
	at net.pms.encoders.FFMpegVideo.getVideoBitrateOptions(FFMpegVideo.java:503)
	at net.pms.encoders.FFMpegVideo.launchTranscode(FFMpegVideo.java:1074)
	at net.pms.dlna.DLNAResource.getInputStream(DLNAResource.java:3328)
	at net.pms.dlna.DLNAResource.getInputStream(DLNAResource.java:3189)
	at net.pms.network.mediaserver.nettyserver.RequestV2.answer(RequestV2.java:578)
	at net.pms.network.mediaserver.nettyserver.RequestHandlerV2.writeResponse(RequestHandlerV2.java:424)
	at net.pms.network.mediaserver.nettyserver.RequestHandlerV2.messageReceived(RequestHandlerV2.java:281)
	at net.pms.network.mediaserver.jupnp.transport.impl.NettyStreamServer$RequestUpstreamHandler.messageReceived(NettyStreamServer.java:196)
	at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
	at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
	at org.jboss.netty.handler.stream.ChunkedWriteHandler.handleUpstream(ChunkedWriteHandler.java:142)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
	at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
	at org.jboss.netty.handler.codec.http.HttpChunkAggregator.messageReceived(HttpChunkAggregator.java:145)
	at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
	at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
	at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:459)
	at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536)
	at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435)
	at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
	at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
	at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
	at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
	at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)
	at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)
	at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
	at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
	at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
	at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
I tried to replicate on my computer as I had a hunch a what it might be but did not get it to happen. It may have been that bug I mentioned that is fixed in the V14 beta I am using though. Try deleting the value in the "Maximum bandwidth in Mb/s (0 means 1 Gb/s):" and UMS will use the default value of 90 when this is blank.
You can also check the UMS.conf to make sure it shows

Code: Select all

maximum_bitrate =
It could also be what is causing the error code from FFmpeg
Logs are important for us to help, Please follow This Link before asking for support. Just a forum cleaner, Will help if I can but no expert.
Post Reply