Comments (9)
That error is usually caused by a corrupt aac stream or bug in the encoder that was used to create it. This is the first time I've received a report of this.
Are you using one of my builds? If so, which exact one?
from squeezelite.
Yes, I thought is was something to do with aac, so I've started trying to build squeezelite with my own build of the aac so I can debug further (I would not be surprised if the stream provider injected a non-standard bit or two).
I have observed this problem with these versions:
an old statically linked version that I find handy: Squeezelite v1.8-589, Copyright 2012-2015 Adrian Smith.
the version included in the latest pycoreplayer: Squeezelite v1.8.7-1052, Copyright 2012-2015 Adrian Smith, 2015-2017 Ralph Irving.
I will chip away at building my own aac for debug.
from squeezelite.
The current pcp squeezelite uses the original unpatched 2.7 source.
I've rebuilt the libfaad and squeezelite tcz packages for pcp 3.5 using my patched faad2 repository for you to try.
Login to pcp and run these commands to update.
cd /mnt/mmcblk0p2/tce/optional
wget -O newaac.tar.gz https://www.dropbox.com/s/chjshtesudfwu59/newaac.tar.gz?dl=1
tar -xvzf newaac.tar.gz
rm newaac.tar.gz
pcp bu
pcp rb
from squeezelite.
Ah! Many thanks - I will try and give this a trial when I get home this evening - or tomorrow at the latest.
from squeezelite.
I installed the build you made, by following your instructions. I did not do a reboot afterwards, but I still had the same experience with the mix stopping ~20 minutes in.
My investigation so far points to the stream triggering 'return 15; /* should not be possible */', line 15 here:
https://github.com/gypified/libfaad/blob/master/libfaad/pulse.c
If this is accurate, this is certainly consistent with your thought this is a bug in the steam.
An example of a stream that triggers this bug is: http://stream3.mixcloud.com/secure/c/m4a/64/9/3/1/0/ab7e-a4db-48db-8483-2540cbfa1bd2.m4a?sig=77r6Dh4MPO4sbD-KUUFveQ
NOTE: This stream stopped playing after ~14 minutes on my squeeze player today, but playing it in my browser didn't stop. Of course, this could be something that the mixcloud plugin is doing as well.... I'll continue to investigate.
from squeezelite.
If you didn't reboot then the old squeezelite would still be using the old libfaad. picoreplayer only loads the updated tcz files when you reboot.
If you're using the updated builds you should have these details for each file.
$ ls -l /tmp/tcloop/pcp-libfaad2/usr/local/lib/libfaad.so.2.0.0
-rwxr-xr-x 1 root root 412964 Apr 19 13:56 /tmp/tcloop/pcp-libfaad2/usr/local/lib/libfaad.so.2.0.0
ls -l /tmp/tcloop/pcp-squeezelite/usr/local/bin/squeezelite
-rwxr-xr-x 1 root root 142072 Apr 19 12:16 /tmp/tcloop/pcp-squeezelite/usr/local/bin/squeezelite
if you are going to build libfaad to investigate further, please use the faad2 repository from my github. It has security and bug fixes not in the original faad2-2.7 source.
Thanks for the test stream, I'm downloading it in case the url becomes stale.
from squeezelite.
The m4a file I downloaded from the URL plays the entire 1.5hr mix on a stock pcp 3.5 without interruption. So it does appear to be related to the plugin and not libfaad.
From ffmpeg -i
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'mixcloud.m4a':
Metadata:
major_brand : M4A
minor_version : 1
compatible_brands: M4A mp42isom
creation_time : 2017-10-19T11:14:01.000000Z
iTunSMPB : 00000000 00000920 00000221 00000000073250BF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
encoder : Nero AAC codec / 1.5.4.0
Duration: 01:31:15.78, start: 0.052971, bitrate: 69 kb/s
Chapter #0:0: start 0.105941, end 5475.829115
Metadata:
title :
Stream #0:0(und): Audio: aac (HE-AAC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 69 kb/s (default)
Metadata:
creation_time : 2017-10-19T11:14:01.000000Z
handler_name : Sound Media Handler
faad decodes the file without error.
HE AAC 5473.103 secs, 2 ch, 44100 Hz
cdec: ndaudio 1.5.4.0 / -q 0.25
iTunSMPB: 00000000 00000920 00000221 00000000073250BF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
tool: Nero AAC codec / 1.5.4.0
Decoding mixcloud.m4a took: 62.21 sec. 87.98x real-time.
from squeezelite.
I have been considering the issue as it still exists for me. Watching a download with wget, it looks like Mixcloud provides the first ~20minutes or so as fast as possible, and then trickles in the remainder of the track after that. This coincides with the problem I have where squeezelite stops playing after a duration of about 20minutes (recorded above).
Can you think of a quick way that I could put a proxy in front of squeezelite on my RPi to see if that resolves my issue?
from squeezelite.
Have you tried changing the streaming method to proxied in the player settings of LMS?
from squeezelite.
Related Issues (20)
- MPRIS support HOT 3
- Compiling with SSL on a 32 bits system fails HOT 3
- Decoding m4a files over-runs music data atom HOT 11
- squeezelite on MacOS keeps coreaudiod pinned at 11-12% CPU HOT 5
- Compiling squeezelite on raspberry pi 4 with Debian bullseye HOT 6
- squeezelite Kills PulseAudio Daemon on Pause
- Cannot play PGGB (WAV) files of 705 and 768kHz HOT 4
- Squeezelite uses too much cpu at the beginning of tracks HOT 1
- Use of STMf HOT 4
- Squeezer for Android HOT 3
- [win10] squeezelite ignores output assigned through windows settigns and uses system default instead
- vorbis noise on large output buffer HOT 1
- Build error in gpio.c with latest PR HOT 2
- codec min space in OggFlac can cause dead lock HOT 1
- flac and ogf streams HOT 3
- output threshold is incorrect HOT 2
- Power controls (gpio/script) tied to output device being open rather than soft power button state
- Build fails on 1466 (commit c89faf3) HOT 15
- Build error in flac.c on revision 1466 HOT 2
- Whole-album flacs with embedded cuesheet playback broken by commit c89faf3 Ogg metadata (and a bit more) HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from squeezelite.