Home of the Squeezebox™ & Transporter® network music players.
Page 2 of 5 FirstFirst 1234 ... LastLast
Results 11 to 20 of 44
  1. #11
    Senior Member
    Join Date
    May 2008
    Location
    Canada
    Posts
    6,144
    Quote Originally Posted by mherger View Post
    > Iâ€m late to the discussion (and slow) but why do you want to transcode?

    Because the ip3k based players (SB3/Receiver/Boom/Transporter) don't
    support AAC.

    No problem for the Transporter user, of course, because he'll certainly
    pay the premium to stream TIDAL in FLAC :-).

    --

    Michael
    Understood now but maybe a simple decoder like faad or helix piped to lame with a rule in convert.conf can do the job no?
    Otherwise I’m happy to write a dedicated converter that takes aac and makes it to mp3 or flac or the format you want. I can do that in C and have it cross-platforms if it helps you.
    LMS 7.9 on Pi 3B+ & Odroid-C2 - SqueezeAMP!, 5xRadio, 3xBoom, 4xDuet, 1xTouch, 1 SB3. Sonos PLAY:3, PLAY:5, Marantz NR1603, Foobar2000, ShairPortW, JRiver 21, 2xChromecast Audio, Chromecast v1 and v2, Squeezelite on Pi, Yamaha WX-010, AppleTV 4, Airport Express, GGMM E5, Riva 1 & 3

  2. #12
    Senior Member
    Join Date
    Oct 2005
    Location
    Ireland
    Posts
    19,318
    Quote Originally Posted by mherger View Post
    > However, I think using ffmpeg to handle protocol and not codec issues
    > ends up with unnecessary transcoding of AAC to Flac and sending Flac to
    > a player which is capable of playing AAC - so more CPU & Network usage.


    But do you believe there could be a Perl solution to the transcoding of
    online AAC to something else? It's a part of LMS you know much better
    than I do :-).
    I'm not sure if we have different understanding of transcode AAC.

    An AAC to PCM decoder will not be written in Perl.

    Currently BBCiPlayer handle AAC in MPEG4A streams by unwrapping the AAC and converting into a ADTS stream (AAC with ADTS headrs like MP3 frames). LMS can then choose to sen this ADTS stream unchanged to player such as Touch or use faad to convert to PCM, FLAC, MP3 etc.

    If ffmpeg is used then MPEG4-AAC will be trasncoding in the same way for all players - this means it will always transcode into FLAC or MP3 even for player capable of playing the AAC usch as Touch.

    The benefit of a Perl based unwrapping of MPEG4 means LMS can have full access to the index (i.e. skip to specific time in a file) , chapters (e.g. like embedded cue file) and metadata which can either be for the file as a whole and/or synced with timepoints in the audio stream.

    While faad can handlke file sbased MPEG4 because it can seek up / down the file, faad cannot handle streaming MPEG4 where input comes from stdin. An ffmpeg based solution "solves" this problem but then loses some other faciltiies.

    BBCiPlayer with DASH/ HLS and PlayHLS play MPEG4 AAC streams and "files" by unwrapping MPEG4 and sending ADTS (aka aac content type) streams into LMS. I think Philippe plugins may do something similar for Youtube

  3. #13
    Senior Member
    Join Date
    Oct 2005
    Location
    Ireland
    Posts
    19,318
    Quote Originally Posted by mherger View Post
    > I’m late to the discussion (and slow) but why do you want to transcode?

    Because the ip3k based players (SB3/Receiver/Boom/Transporter) don't
    support AAC.

    No problem for the Transporter user, of course, because he'll certainly
    pay the premium to stream TIDAL in FLAC :-).
    Post are crossing.

    Can you clarify is this in a mysqueezebox,com context ?

  4. #14
    Senior Member
    Join Date
    May 2008
    Location
    Canada
    Posts
    6,144
    BBCiPlayer with DASH/ HLS and PlayHLS play MPEG4 AAC streams and "files" by unwrapping MPEG4 and sending ADTS (aka aac content type) streams into LMS. I think Philippe plugins may do something similar for Youtube
    Exactly for aac. I also do similar for opus/vorbis extraction in from webm
    LMS 7.9 on Pi 3B+ & Odroid-C2 - SqueezeAMP!, 5xRadio, 3xBoom, 4xDuet, 1xTouch, 1 SB3. Sonos PLAY:3, PLAY:5, Marantz NR1603, Foobar2000, ShairPortW, JRiver 21, 2xChromecast Audio, Chromecast v1 and v2, Squeezelite on Pi, Yamaha WX-010, AppleTV 4, Airport Express, GGMM E5, Riva 1 & 3

  5. #15
    Babelfish's Best Boy mherger's Avatar
    Join Date
    Apr 2005
    Location
    Switzerland
    Posts
    20,460

    AAC in M4A container: can it be transcoded fromremote source (http)?

    > Can you clarify is this in a mysqueezebox,com context ?

    No, we'll never do transcoding on mysb.com. LMS only.

    --

    Michael

  6. #16
    Babelfish's Best Boy mherger's Avatar
    Join Date
    Apr 2005
    Location
    Switzerland
    Posts
    20,460

    AAC in M4A container: can it be transcoded fromremote source (http)?

    > Understood now but maybe a simple decoder like faad or helix piped to
    > lame with a rule in convert.conf can do the job no?


    We do have a transcoding pipeline using faad, but it doesn't support
    streaming from http.
    --

    Michael

  7. #17
    Senior Member
    Join Date
    Oct 2005
    Location
    Ireland
    Posts
    19,318
    Quote Originally Posted by mherger View Post
    > Can you clarify is this in a mysqueezebox,com context ?

    No, we'll never do transcoding on mysb.com. LMS only.
    OK then for Tidal I think the short term answer may use ffmpeg - it's available and readily installable for most platforms.

    I expect the Tidal M4A to be in streamable MPEG4 - some m4a podcasts are not (i.e they are intended to be downloaded and played as a file - not streamed)

    The issues is what is the transport protocol used by Tidal - simple HTTP with single GET, HLS, DASH or something custom/encrypted. If it is standard ffmpeg may be do everything and play from the http URL otherwise a plugin is needed to "unwrap" the MPEG-4 AAC

    ffmpeg based solution may not allow jump to a specific time point - not sure if this is important but for a quick solution may be acceptable. It may be possible to read metadata using LMS scan remote header routines.

  8. #18
    Babelfish's Best Boy mherger's Avatar
    Join Date
    Apr 2005
    Location
    Switzerland
    Posts
    20,460

    AAC in M4A container: can it be transcoded fromremote source (http)?

    > OK then for Tidal I think the short term answer may use ffmpeg - it's
    > available and readily installable for most platforms.


    Would you believe there could be another convert rule to do this,
    without disabling the old ones? Eg. there's some "R" key to define
    whether a conversion rule can deal with remote streams. Could there be
    to sets of rules, one with "R" for the remote streams, one without?

    > The issues is what is the transport protocol used by Tidal - simple HTTP
    > with single GET, HLS, DASH or something custom/encrypted. If it is
    > standard ffmpeg may be do everything and play from the http URL
    > otherwise a plugin is needed to "unwrap" the MPEG-4 AAC


    It's pure and simple http URLs (not even https yet).

    --

    Michael

  9. #19
    Senior Member
    Join Date
    Oct 2005
    Location
    Ireland
    Posts
    19,318
    Quote Originally Posted by mherger View Post
    > OK then for Tidal I think the short term answer may use ffmpeg - it's
    > available and readily installable for most platforms.


    Would you believe there could be another convert rule to do this,
    without disabling the old ones? Eg. there's some "R" key to define
    whether a conversion rule can deal with remote streams. Could there be
    to sets of rules, one with "R" for the remote streams, one without?
    I don't think so - I think I explored that idea when considering how to deal with streaming M4A podcast. - there can't be one rule for Remote and another for stdin. With a plugin (I.e. remote data stream feed to transcoder through stdin and plugin deal with jump to time point) the single rule can deal with stdin like files and so can be the same.

    The simplest implementation may be to give remote streaming M4A a new type and so it can have its own rules.

    Alternative, if there is an ambiguous type the plugin could pre-check.
    For example in PlayHLS, the plugin takes over the ambiguous types m3u and m3u8 as well as MIME audio/mpegurl, audio/x-mpegurl and after examination of the M3U8 file - decide its a HLS stream with Extended M3U HLS tream or a old m3u with HTTP/GET stream.

    > The issues is what is the transport protocol used by Tidal - simple HTTP
    > with single GET, HLS, DASH or something custom/encrypted. If it is
    > standard ffmpeg may be do everything and play from the http URL
    > otherwise a plugin is needed to "unwrap" the MPEG-4 AAC


    It's pure and simple http URLs (not even https yet).
    OK - so it won't need any new transport stuff.

  10. #20
    Senior Member
    Join Date
    May 2008
    Location
    Canada
    Posts
    6,144
    Quote Originally Posted by mherger View Post
    > Understood now but maybe a simple decoder like faad or helix piped to
    > lame with a rule in convert.conf can do the job no?


    We do have a transcoding pipeline using faad, but it doesn't support
    streaming from http.
    --

    Michael
    Doesn’t the transcoder helper build a pipeline rule then to do the http reception and then send to the decoder’ stdin?
    LMS 7.9 on Pi 3B+ & Odroid-C2 - SqueezeAMP!, 5xRadio, 3xBoom, 4xDuet, 1xTouch, 1 SB3. Sonos PLAY:3, PLAY:5, Marantz NR1603, Foobar2000, ShairPortW, JRiver 21, 2xChromecast Audio, Chromecast v1 and v2, Squeezelite on Pi, Yamaha WX-010, AppleTV 4, Airport Express, GGMM E5, Riva 1 & 3

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •