PromyLOPh / pianobar

Console-based pandora.com player
http://6xq.net/pianobar/
Other
1.74k stars 325 forks source link

Input buffer exhausted before END element found #479

Closed cburmeister closed 9 years ago

cburmeister commented 10 years ago

Not sure if this is a pianobar specific issue or something up with ffmpeg.

|>  Station Gabriel Le Mar Radio
(i) Receiving new playlist... Ok.
|>  Ghosts In The Tree by Saafi Brothers on Live On The Roadblog
|>  Sol by Solar Fields on Movements
|>  Thomas Edison Invents The Lazy Dance by Quenum, Lee Van Dowski on As Told On The Eve Of...
|>  Inertia by Spire on Inertia
[aac @ 0x7fa489812200] TYPE_FIL: Input buffer exhausted before END element found
/!\ decode_audio4 (Undefined error: 0)
(i) Receiving new playlist... Ok.
|>  Avisa by Andre Castano on San Francisco Under A Groove, Vol. 1
|>  You Can't Have Your Cake by 2 Block Radius on Om Lounge 8 <3
#   -00:38/07:48
PromyLOPh commented 10 years ago

[aac @ 0x7fa489812200] TYPE_FIL: Input buffer exhausted before END element found /!\ decode_audio4 (Undefined error: 0) That’s an ffmpeg error message. Commit d16d6eb5 skips the frame instead of printing an error message and aborting playback. Not sure what is considered “correct” behavior though.

jwoertink commented 9 years ago

I get this error anytime I pause my music for an extended amount of time, then resume. I use ffmpeg for dev normally, so I have version 2.4.2. Is there a specific version needed for this?

[aac @ 0x7fdc2280e000] Input buffer exhausted before END element found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fdc2280c000] stream 0, offset 0x9c5e6: partial file
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fdc23006e00] stream 0, offset 0x240e5: partial file
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fdc23006e00] stream 0, offset 0x242b5: partial file
[aac @ 0x7fdc2280c000] Input buffer exhausted before END element found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fdc26807200] stream 0, offset 0xa1db4: partial file
[aac @ 0x7fdc23006e00] decode_band_types: Input buffer exhausted before END element found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fdc25001000] stream 0, offset 0xa7361: partial file
[aac @ 0x7fdc2482a400] TYPE_FIL: Input buffer exhausted before END element found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fdc23807000] stream 0, offset 0xac652: partial file
[aac @ 0x7fdc23006e00] decode_band_types: Input buffer exhausted before END element found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fdc2280c000] stream 0, offset 0xb1f3a: partial file
[aac @ 0x7fdc23006e00] TYPE_FIL: Input buffer exhausted before END element found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fdc25000000] stream 0, offset 0xb77ca: partial file
[aac @ 0x7fdc23801000] decode_band_types: Input buffer exhausted before END element found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fdc23807000] stream 0, offset 0xbc593: partial file
[aac @ 0x7fdc23807000] decode_band_types: Input buffer exhausted before END element found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fdc23006e00] stream 0, offset 0xc1909: partial file
[aac @ 0x7fdc24815e00] TYPE_FIL: Input buffer exhausted before END element found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fdc24813e00] stream 0, offset 0xc70a9: partial file
[aac @ 0x7fdc2300ae00] decode_band_types: Input buffer exhausted before END element found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fdc23006e00] stream 0, offset 0xccc2c: partial file
[aac @ 0x7fdc2480a000] TYPE_FIL: Input buffer exhausted before END element found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fdc26807c00] stream 0, offset 0xd198c: partial file
PromyLOPh commented 9 years ago

I get this error anytime I pause my music for an extended amount of time, then resume. Is pianobar stuck at that point or does the playback continue? Usually the audio URL becomes unavailable after a few minutes and pianobar should skip the song in that case.

I use ffmpeg for dev normally, so I have version 2.4.2. Is there a specific version needed for this? If it compiles then 2.4.2 should be fine.

jwoertink commented 9 years ago

The playback will continue the play the same song, it just skips like a scratched up CD. Once it gets to the next song, then it seems to be fine until pandora needs to play an Ad. Then it stops working at the end of a song.

PromyLOPh commented 9 years ago

Afaik Pandora limits your download speed to 50kbps-ish if your account is flagged (i.e. you get ads with pianobar). The reason for “skips like a scratched up CD” could be that ffmpeg can’t download the song fast enough, but keeps decoding the chunks it receives. But that’s just guessing on my side…

Then it stops working at the end of a song. Any error message?

jwoertink commented 9 years ago

No error messages. The playback time usually stops at 00:00:01. I just close out pianobar, then start up a new session. Interesting thing though is that when this happens, after restarting pianobar, the very first "song" is always an ad. I'm not too worried about it. It still works well enough for my enjoyment. I just wanted to make sure it was reported just in case it was an issue that might need a fix or something.

PromyLOPh commented 9 years ago

No error messages. The playback time usually stops at 00:00:01. […] I just wanted to make sure it was reported just in case it was an issue that might need a fix or something. Well, if that happens with the latest git revision and you’re interested in getting it fixed and you’re able to produce a backtrace[1] from the point at which pianobar is stuck then I can see what I can do about that. Don’t post the backtrace here though, since it contains sensitive information (user/password) -> lars@6xq.net

[1] https://wiki.ubuntu.com/Backtrace for example

FallingSnow commented 9 years ago
[aac @ 0x7ff544014e40] decode_band_types: Input buffer exhausted before END element found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7ff54401bd20] stream 0, offset 0x16ab48: partial file

Happens after I pause and resume after having it paused for like 30 minutes.

ZevEisenberg commented 9 years ago

Afaik Pandora limits your download speed to 50kbps-ish if your account is flagged (i.e. you get ads with pianobar).

Is there any way to tell if my account is flagged? I pay for Pandora, so I don’t get ads, but I occasionally see this audio skipping issue.

PromyLOPh commented 9 years ago

Is there any way to tell if my account is flagged? I pay for Pandora, so I don’t get ads, but I occasionally see this audio skipping issue. Pandora seems to serve audio files to flagged accounts through different servers. Their name is usually mediaserver-XXX.pandora.com. You can see the URL by pressing ‘$’.

ZevEisenberg commented 9 years ago

I don't appear to be flagged, at least judging by the track I'm currently playing. I'll try again if I get this error again. Here's the output of $, with the URLs redacted (let me know if the full URLs would be useful, and I can send them privately):

album:1:Brand New Frame
artist: Natalia Zukerman
audioFormat:    1
audioUrl:   http://t3-1.p-cdn.com/access/5872649283875956878.mp4?version=4&lid=[redacted]&token=[redacted]
coverArt:   http://cont-ch1-2.pandora.com/images/public/amz/3/2/9/7/700261237923_500W_458H.jpg
detailUrl:  http://www.pandora.com/natalia-zukerman/brand-new-frame/early-bird?dc=232&ad=0:26:1:02601::0:pandorap1hq:0:1:506:530:MA:25001:2:0:0:0:0:1
fileGain:   -3.370000
musicId:    (null)
rating: 1
stationId:  250615477862786721
title:  Early Bird
trackToken: [redacted]
ZevEisenberg commented 9 years ago

Update: I just got the “skips like a CD” glitch on that same track after having been paused while I wrote the previous comment.

PromyLOPh commented 9 years ago

I suppose you could download the audio file and check whether your download speed is restricted or not. But I guess we’re in the need of a buffer…

ZevEisenberg commented 9 years ago

@PromyLOPh I just downloaded a 1.8 MB track in 1.053 seconds (and curl reported an average speed of 1644k/s), so it doesn’t look like I’m being throttled.

ZevEisenberg commented 9 years ago

One more thing I've noticed: when I get the skip, the audio seems to be much lower quality for a fraction of a second when it comes back. I could be imagining it, but it seems like maybe it momentarily switched to a lower bitrate stream, and then bounces right back. Is that possible?

PromyLOPh commented 9 years ago

Indeed, you’re not throttled. As for your second question: No, pianobar does not do adaptive streaming, i.e. it does not switch quality mid-song.

PromyLOPh commented 9 years ago

I think we should use #500 to track the status of this buffering issues.