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:
- change the protocolnfo to WAV (“http-get:*:audio/wav…”) and make sure the http headers are matching, with “ContentType: audio/wav”
- 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.