Home of the Squeezebox™ & Transporter® network music players.
Page 3 of 5 FirstFirst 12345 LastLast
Results 21 to 30 of 44
  1. #21
    Senior Member
    Join Date
    Oct 2005
    Location
    Ireland
    Posts
    19,281
    Quote Originally Posted by philippe_44 View Post
    Doesn’t the transcoder helper build a pipeline rule then to do the http reception and then send to the decoder’ stdin?
    With the ffmpeg conversion, the input comes from the URL direct (i.e. ffmpeg directly opens the URL) and LMS doesn't send data via stdin.

  2. #22
    Senior Member
    Join Date
    May 2008
    Location
    Canada
    Posts
    6,125

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

    Quote Originally Posted by bpa View Post
    With the ffmpeg conversion, the input comes from the URL direct (i.e. ffmpeg directly opens the URL) and LMS doesn't send data via stdin.
    Understood but you seem to not really like ffmpeg as it is not very lightweight, so I was wondering if the transcoder helper does not fallback on a I rule then and build the pipe? (I would have to look the code, I don’t know this part as well as you do). Is this not an acceptable solution?
    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

  3. #23
    Senior Member
    Join Date
    Oct 2005
    Location
    Ireland
    Posts
    19,281
    Quote Originally Posted by philippe_44 View Post
    Understood but you seem to not really like ffmpeg as it is not very lightweight, so I was wondering if the transcoder helper does not fallback on a I rule then and build the pipe? (I would have to look the code, I don’t know this part as well as you do). Is this not an acceptable solution?
    ffmpeg provides a quick solution which loses out on metadata & time skips but it forces AAC transcoding to Flac for players than can play AAC natively - that is one my main dislikes to using ffmpeg and have a preference for a solution that "unwraps" the AAC.

  4. #24
    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)?

    > Doesn’t the transcoder helper build a pipeline rule then to do the http
    > reception and then send to the decoder’ stdin?


    That might be a solution. But bpa mentioned we can't have two different
    transcoding rules depending on whether a file type is local or remote.
    How would you solve this issue?


    --

    Michael

  5. #25
    Senior Member
    Join Date
    Oct 2005
    Location
    Ireland
    Posts
    19,281
    Quote Originally Posted by mherger View Post
    > Doesn’t the transcoder helper build a pipeline rule then to do the http
    > reception and then send to the decoder’ stdin?


    That might be a solution. But bpa mentioned we can't have two different
    transcoding rules depending on whether a file type is local or remote.
    It sounds like I think between us we have chunks of have code that'll do the job.
    Since it is going to happen might as well start doing something.

    Is this AAC service available now ? Can a free-trial Tidal access it ?
    Do you have some saved m4a files so they can be checked for "unusual" features ?
    Does you current plugin play m4a content if you add the convert conf rules that uses ffmpeg to play streaming M4a podcasts ?

  6. #26
    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)?

    > Is this AAC service available now ? Can a free-trial Tidal access it ?

    I sent you a mail with infos about my test environment.

    > Do you have some saved m4a files so they can be checked for "unusual"
    > features ?


    I do have a few random files if you need some. Don't know what unusual
    features you're looking for?

    > Does you current plugin play m4a content if you add the convert conf
    > rules that uses ffmpeg to play streaming M4a podcasts ?


    I haven't played with ffmpeg yet.

    --

    Michael

  7. #27
    Senior Member
    Join Date
    May 2008
    Location
    Canada
    Posts
    6,125
    My suggestion of transcode was stupid (deleted the post) but back to that rule
    Code:
    mp4 flc * *
    	# FT:{START=-j %s}U:{END=-e %u}
    	[faad] -q -w -f 1 $START$ $END$ $FILE$ | [flac] -cs --totally-silent --compression-level-0 --ignore-chunk-sizes -
    Why doesn't it work for what you want to do if we add an "I"? That would make the rule work for remote streams but LMS would have to use a pipeline and it would still work for files. Why do we need a R rule? It's nice(r) if the decoder can directly handle the URL, but otherwise LMS does a good job with the pipeline. When mp4/aac is supported directly by the player, the "mp4 aac" applies.

    Is it because faad does seem to crash when receiving an mp4 on stdin? if it is, shouldn't we try to fix it? Is this because faad expects to seek on input file when it is an mp4?

    Sorry for being thick on this one ... I'm just trying to better understand the conversion rules
    Last edited by philippe_44; 2020-06-01 at 20:59.
    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

  8. #28
    Senior Member
    Join Date
    May 2008
    Location
    Canada
    Posts
    6,125
    Quote Originally Posted by philippe_44 View Post
    My suggestion of transcode was stupid (deleted the post) but back to that rule
    Code:
    mp4 flc * *
    	# FT:{START=-j %s}U:{END=-e %u}
    	[faad] -q -w -f 1 $START$ $END$ $FILE$ | [flac] -cs --totally-silent --compression-level-0 --ignore-chunk-sizes -
    Why doesn't it work for what you want to do if we add an "I"? That would make the rule work for remote streams but LMS would have to use a pipeline and it would still work for files. Why do we need a R rule? It's nice(r) if the decoder can directly handle the URL, but otherwise LMS does a good job with the pipeline. When mp4/aac is supported directly by the player, the "mp4 aac" applies.

    Is it because faad does seem to crash when receiving an mp4 on stdin? if it is, shouldn't we try to fix it? Is this because faad expects to seek on input file when it is an mp4?

    Sorry for being thick on this one ... I'm just trying to better understand the conversion rules
    ok ... had a quick look at faad code and it seems that the mp4ff part requires to be able to seek across file (which makes sense to deal with files where tables are all over the place, I remember @bpa mentioning that problem) so it is not compatible with a stdin filetype.

    I guess that if you want to reposition in tidal files and if these are mp4-aac, then as you said you'll have to add a protocol handler to parse mp4, build the right range request and extract ADTS frames. Very largely inspired from you @bpa, I did the YT extension to do DASH-mp4 but I did not have to build seeking as the DASH-MPD container pointed me to the right offset (I can't even remeber all this now, but that was a lot )

    Anyway, you both seem to be set, so I'll go silent now unless I can help
    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

  9. #29
    Senior Member
    Join Date
    Oct 2005
    Location
    Ireland
    Posts
    19,281
    Quote Originally Posted by mherger View Post
    > Is this AAC service available now ? Can a free-trial Tidal access it ?

    I sent you a mail with infos about my test environment.
    OK Got test environment working and can play Flac formats track but when I set for MP3 only - the MP4 track don't play as they are being "typed" as mp3

    See below the full URL is an mp3 but the short wimp URL has a mp3 extension. The Wimp plugin getstreamparams routine expects a wimp URL to have an extension mp4 for mp4 tracks but from the log the SN is returning a wimp URL with mp3 extension.

    Code:
    [20-06-03 23:36:36.0607] Slim::Player::Song::new (107) index 0 -> wimp://139346887.mp3
    [20-06-03 23:36:36.0609] Slim::Player::StreamingController::_setStreamingState (2386) new streaming state TRACKWAIT
    [20-06-03 23:36:36.0612] Slim::Plugin::WiMP::ProtocolHandler::getMetadataFor (401) Need to fetch metadata for: 139346887
    [20-06-03 23:36:36.0624] Slim::Player::StreamingController::_playersMessage (796) Getting stream info...: wimp://139346887.mp3
    [20-06-03 23:36:36.0630] Slim::Player::Song::getNextSong (228) wimp://139346887.mp3
    [20-06-03 23:36:36.0632] Slim::Player::Song::getNextSong (250) scanning URL wimp://139346887.mp3
    [20-06-03 23:36:36.0634] Slim::Player::Song::getNextSong (228) wimp://139346887.mp3
    [20-06-03 23:36:36.0636] Slim::Plugin::WiMP::ProtocolHandler::_getTrack (198) Getting next track playback info from SN for wimp://139346887.mp3
    [20-06-03 23:36:36.0671] Slim::Formats::Playlists::M3U::write (251) Writing out: /mnt/hddrive/home/xxxx/latest/trunk/prefs/clientplaylist_000420078a23.m3u
    [20-06-03 23:36:36.0687] Slim::Formats::Playlists::M3U::write (251) Writing out: /mnt/hddrive/home/xxxx/latest/trunk/prefs/clientplaylist_000420078a23.m3u
    [20-06-03 23:36:36.2069] Slim::Plugin::WiMP::ProtocolHandler::_gotBulkMetadata (453) Caching metadata for 1 tracks
    [20-06-03 23:36:36.5379] Slim::Plugin::WiMP::ProtocolHandler::__ANON__ (177) getTrack ok: {
      album    => "Be Kind",
      artist   => "Marshmello",
      bitrate  => 256,
      cover    => "http://resources.tidal.com/images/464a30d6/ef9a/4b1b/93fc/0228d0b72af4/1280x1280.jpg",
      duration => 173,
      id       => 139_346_887,
      title    => "Be Kind",
      url      => "http://ab-pr-fa.audio.tidal.com/3d49e1ea2c90bb09ae28002af91642d4_37.mp4?token=1591227396~ODg0ZDNmOGVjZjlkYTAzNzRhMjhmZjk1NDg5OWI4MzE3YzIzNmJjOA==",
    }
    [20-06-03 23:36:36.5389] Slim::Player::StreamingController::_nextTrackReady (744) 00:04:20:07:8a:23: nextTrack will be index 0
    [20-06-03 23:36:36.5395] Slim::Player::StreamingController::_Stream (1210) Song queue is now 0
    [20-06-03 23:36:36.5398] Slim::Player::StreamingController::_Stream (1213) 00:04:20:07:8a:23: preparing to stream song index 0
    [20-06-03 23:36:36.5402] Slim::Player::Song::open (363) wimp://139346887.mp3
    [20-06-03 23:36:36.5407] Slim::Player::Song::open (387) seek=false time=0 canSeek=1
    [20-06-03 23:36:36.5417] Slim::Player::TranscodingHelper::getConvertCommand2 (445) Matched: mp3->mp3 via: -
    [20-06-03 23:36:36.5420] Slim::Player::Song::open (408) Transcoder: streamMode=I, streamformat=mp3
    [20-06-03 23:36:36.5425] Slim::Player::Song::open (452) URL supports direct streaming [wimp://139346887.mp3->http://ab-pr-fa.audio.tidal.com/3d49e1ea2c90bb09ae28002af91642d4_37.mp4?token=1591227396~ODg0ZDNmOGVjZjlkYTAzNzRhMjhmZjk1NDg5OWI4MzE3YzIzNmJjOA==]
    [20-06-03 23:36:36.5437] Slim::Player::StreamingController::_Stream (1282) 00:04:20:07:8a:23: stream
    [20-06-03 23:36:36.5910] Slim::Player::StreamingController::_Stream (1319) Song queue is now 0
    [20-06-03 23:36:36.5913] Slim::Player::StreamingController::_setPlayingState (2377) new playing state BUFFERING
    [20-06-03 23:36:36.5915] Slim::Player::StreamingController::_setStreamingState (2386) new streaming state STREAMING
    [20-06-03 23:36:36.6674] Slim::Player::Client::streamingProgressBar (1125) url=http://ab-pr-fa.audio.tidal.com/3d49e1ea2c90bb09ae28002af91642d4_37.mp4?token=1591227396~ODg0ZDNmOGVjZjlkYTAzNzRhMjhmZjk1NDg5OWI4MzE3YzIzNmJjOA==, duration=undef, bitrate=320000, contentLength=6943669
    [20-06-03 23:36:36.6679] Slim::Player::Client::streamingProgressBar (1166) Duration of stream set to 173.591725 seconds based on length of 6943669 and bitrate of 320000
    [20-06-03 23:36:36.6682] Slim::Player::StreamingController::playerStreamingFailed (2248) 00:04:20:07:8a:23
    [20-06-03 23:36:36.6684] Slim::Player::StreamingController::_playersMessage (796) Problem: Can't connect to server for:: wimp://139346887.mp3
    [20-06-03 23:36:36.6694] Slim::Player::StreamingController::_Stop (610) Song queue is now 0
    [20-06-03 23:36:36.6696] Slim::Player::StreamingController::_setPlayingState (2377) new playing state STOPPED
    [20-06-03 23:36:36.6697] Slim::Player::StreamingController::_setStreamingState (2386) new streaming state IDLE
    [20-06-03 23:36:36.6700] Slim::Player::StreamingController::_willRetry (1408) no retry data
    [20-06-03 23:36:36.6702] Slim::Player::StreamingController::nextsong (889) The next song is number 0, was 0
    [20-06-03 23:36:53.7180] Slim::Player::StreamingController::stop (2117) 00:04:20:07:8a:23

  10. #30
    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 Got test environment working and can play Flac formats track but when
    > I set for MP3 only - the MP4 track don't play as they are being "typed"
    > as mp3


    How did you get that track URL?

    --

    Michael

Posting Permissions

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