[Bug report, DLNA] WAV files are incorrectly identified as L16 (LPCM) when using DLNA, resulting in failure to play

Server Version#: 1.19.3.2831

Using a DLNA browsing client to browse WAV files managed by Plex, they are identified as audio/L16 in the DIDL-Lite returned by PLex:

<res protocolInfo="http-get:*:audio/L16:DLNA.ORG_PN=LPCM;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01500000000000000000000000000000" bitrate="176375" sampleFrequency="48000" nrAudioChannels="2" duration="0:07:03.000">http://10.0.0.26:32469/object/835337f337894a351ed2/file.wav</res>

Notice the mime-type audio/L16 in the protocolInfo, while the stream URL http://10.0.0.26:32469/object/835337f337894a351ed2/file.wav has a .wav file extension.

Looking at http headers of that stream, Content-Type is audio/L16, matching the protocolInfo:

bobbie@p72:~> wget -S --spider http://10.0.0.26:32469/object/835337f337894a351ed2/file.wav
Spider mode enabled. Check if remote file exists.
--2020-05-20 15:20:28--  http://10.0.0.26:32469/object/835337f337894a351ed2/file.wav
Connecting to 10.0.0.26:32469... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Content-Length: 74661460
  Content-Type: audio/L16
  Date: Wed, 20 May 2020 13:20:28 GMT
  Accept-Ranges: bytes
  Server: UPnP/1.0 DLNADOC/1.50 Platinum/1.0.5.13
Length: 74661460 (71M) [audio/L16]
Remote file exists.

This would be fine, if the body of the request was actually an L16 stream but instead it is a WAV stream (field “format_name”):


bobbie@p72:~> ffprobe -show_format http://10.0.0.26:32469/object/835337f337894a351ed2/file.wav
Input #0, wav, from 'http://10.0.0.26:32469/object/835337f337894a351ed2/file.wav':
  Duration: 00:07:03.25, bitrate: 1411 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
[FORMAT]
filename=http://10.0.0.26:32469/object/835337f337894a351ed2/file.wav
nb_streams=1
nb_programs=0
format_name=wav
format_long_name=WAV / WAVE (Waveform Audio)
start_time=N/A
duration=423.250658
size=74661460
bit_rate=1411200
probe_score=99
[/FORMAT]

This mismatch is confusing DLNA Controller apps and DLNA Renderers, resulting in a failure to play WAV files.

To fix this issue Plex should instead either:

  1. change the protocolnfo to WAV (“http-get:*:audio/wav…”) and make sure the http headers are matching, with “ContentType: audio/wav”
  2. keep the protocolnfo as audio/L16 but make sure the http request body is actually audio/L16 instead of WAV

First solution is probably the best as WAV files can be streamed as WAV most of the time.

3 Likes

May I ask which device Type are you streaming to, Is that device compatiable with Wav?

It’s not a particular device type, as the DLNA browsing client a an UPnP/DLNA Control Point app for which I am the developer.
Regardless of device type, there is a mismatch between the DIDL metadata (protocolInfo) sent by Plex and http headers (audio/L16), and the actual stream nature (wav) in the request body. So clearly a bug there.

Bump.

Is there a better place to submit bug reports, for having the immense chance to possibly have the right person to look into it ?

most of my music is in my own created wav files… Plex plays them just fine with the plex client, but can’t pay them on my Yamaha adv receivers with DLNA. I have no problem with other DLNA servers i used to use before QNAP, twonky, etc.
if their is a fix I can try? would like to go all in with Plex… (this is a big issue to break the deal with plex).

Same issue here, i’m using Onkyo receiver, when playing wav files in the web server mode, through Plex DLNA, it gives static sound, not a music. The same Wav files play well in other DLNA server using the same equipment. Hope Plex team will fix it soon.

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.

This problem still not fixed by Plex until now! It’s very terrible!!