Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Selective transcoding possible?
06-04-2021, 01:44 (This post was last modified: 06-04-2021 01:46 by rt1440.)
Post: #1
Question Selective transcoding possible?
The MinimServer setup I am testing is set up like this:

1) MinimServer on QNAP NAS managing a large collection of ALAC .M4A files

2) Favorite control point: Linn Kazoo on iOS

3) Fixed Renderers: OpenHome Player (MacOS, Windows, RPi, etc.)

4) "Travel" client for iPhones, iPads wanting to download music for trips: fooBar2000 for iOS

I haven't had any success persuading the OpenHome Players to play ALAC .m4a files that are streamed to them (maybe they didn't add that support due to licensing?), but they work fine when MinimStreamer first converts the file to WAV with "alac:wav" in the stream.transcode property of System.

However now when a phone tries to download an album in foobar2000, the album is provided in .WAV format, which consumes more space than ALAC-compressed files.

Is there any ingenious way to configure MinimServer/MinimStreamer to transcode only for OpenHome clients, or perhaps a more general "transcode-but-only-for-these-IP-addresses" type setting?
Find all posts by this user
Quote this message in a reply
06-04-2021, 10:06 (This post was last modified: 06-04-2021 10:44 by simoncn.)
Post: #2
RE: Selective transcoding possible?
There is a UPnP protocol for selective transcoding based on the capabilities of the renderer. MinimStreamer supports this protocol but unfortunately many control points and renderers do not. You can try this in your setup by using the following setting:

alac:-/wav

This causes MinimServer to offer two streams to the control point for ALAC files. This first stream is untranscoded ALAC and the second stream is transcoded WAV. The control point should select the first stream if the renderer can play it (foobar2000 on iOS) and should fall back to the second stream if the renderer cannot play the first stream (OpenHome renderer).

If this doesn't work in your setup, you could create multiple profiles with different transcoding options and manually select the desired profile when changing from one renderer to another.
Find all posts by this user
Quote this message in a reply
Yesterday, 05:47
Post: #3
RE: Selective transcoding possible?
That failover option indeed looks like a very useful feature.

Unfortunately it doesn't seem to be handled correctly at the other end by the OpenHome Soft Player renderer build I am testing (v1.0.6). Whether I use Linn Kazoo (on iOS) or BubbleUPnP (on Android), the transcoded ALAC stream (set up as alac:-/wav) is handed off correctly - it can be seen in the renderer's playlist. But the renderer does nothing with the ALAC stream, and also doesn't fail over to the alternate WAV stream. I do know it at least plays 16-bit 44100 Hz streams encoded in WAV, FLAC, or AAC (haven't tested other types like Ogg, etc).

I really like the OpenHome feature of offloading the playlist from the control point to the renderer, so I am going to try upmpdcli next, which I believe has some OpenHome support built in.

(In case anyone else is interested in the OpenHome Soft Player: the Media Renderer Analyzer tool by whitebear gave me some insight into what the renderer actually supports. Below is an excerpt from that tool's report.)

Code:
...
Manufacturer Name=OpenHome
Model Name=ExampleMediaPlayer
UPnP Device Type=urn:schemas-upnp-org:device:MediaRenderer:1
UPnP Media Renderer version=1
...
AVT:GetDeviceCapabilities action=Supported
AVT:GetMediaInfo action=Supported
AVT:GetPositionInfo action=Supported
AVT:GetTransportInfo action=Supported
AVT:GetTransportSettings action=Supported
AVT:SetNextAVTransportURI (gapless play)=NOT Supported
AVT:SyncPlay (synchronous play)=NOT Supported
RC:GetVolume action=Supported
RC:SetVolume action=Supported
AVT:Event Subscription=Succeeded
RC:Event Subscription=Succeeded
Play test file result=Play success => Start Ok / Stop Ok
...
Evaluated Supported Audio Formats
=================================
Mime-type  DLNA_PN  Origin  Sample-rate  Channels  Bit-depth  Lossless
audio/x-flac    FLAC    Fuzzy    *    *    *    Yes
audio/wav    WAV    Fuzzy    *    *    *    Yes
audio/x-wav    WAV    Fuzzy    *    *    *    Yes
audio/aiff    AIFF    Fuzzy    *    *    *    Yes
audio/x-aiff    AIFF    Fuzzy    *    *    *    Yes
audio/mpeg    MP3    Fuzzy    *    2    *    No
audio/x-mpeg    MP3    Fuzzy    *    2    *    No
audio/x-m4a    AAC_ISO    Fuzzy    *    2    *    No
audio/wave        Undefined                
audio/aifc        Undefined                
audio/x-aifc        Undefined                
audio/mp1        Undefined                
audio/aac        Undefined                
audio/aacp        Undefined                
audio/ogg        Undefined                
audio/x-ogg        Undefined                
audio/x-mpegurl        Undefined                
audio/mpegurl        Undefined                
audio/x-scpls        Undefined                
audio/aiff    ???    Tested    44100    2    16    No
Find all posts by this user
Quote this message in a reply
Yesterday, 10:18 (This post was last modified: Yesterday 11:32 by simoncn.)
Post: #4
RE: Selective transcoding possible?
It is the control point that needs to hand over to the alternative stream, not the renderer.

1) The renderer tell the control point what formats (MIME types) it can support
2) The server tells the control point what formats it can provide, in order of preference
3) The control point chooses the first format in list 2) that matches one of the formats in list 1) and tells the renderer to play this format

MinimServer is doing 2). If either 1) or 3) are not working correctly, you will not get what you want.

A further complication for your situation is that ALAC has the same MIME type as AAC audio in an MP4 container (audio/mp4). This mean the renderer cannot tell the control point that it supports AAC/MP4 but does not support ALAC.
Find all posts by this user
Quote this message in a reply
Yesterday, 11:40
Post: #5
RE: Selective transcoding possible?
(Yesterday 05:47)rt1440 Wrote:  I really like the OpenHome feature of offloading the playlist from the control point to the renderer, so I am going to try upmpdcli next, which I believe has some OpenHome support built in.

Would you be open to trying BubbleUPnP Server?

It also supports OpenHome compatibility to UPnP/DLNA Media Renderers. Potentially, to media renderers that support ALAC, such as Foobar2000.
Find all posts by this user
Quote this message in a reply
Today, 05:06
Post: #6
RE: Selective transcoding possible?
@Alandbush, good suggestion about using BubbleUPnP Server to open up more renderer choices. I'll definitely keep that in mind.
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)