MusicPlayerDaemon / MPD

Music Player Daemon
https://www.musicpd.org/
GNU General Public License v2.0
2.18k stars 352 forks source link

Apparent issue seeking with ffmpeg + curl #66

Closed elan closed 7 years ago

elan commented 7 years ago

(Love your work!)

I'm seeing an issue where attempted to seek can lead to the track starting over again. In the log snippet below, I attempt to seek to different offsets in the file. In this example, seeking to 200 seconds seems to work, but seeing to 100 and 50 end up restarting playback from the start of the file. This is on macOS, if it matters.

This is very reproducible, please let me know if you need more information.

$ ❯ mpd --version
Music Player Daemon 0.20.9

Copyright (C) 2003-2007 Warren Dukes <warren.dukes@gmail.com>
Copyright 2008-2017 Max Kellermann <max.kellermann@gmail.com>
This is free software; see the source for copying conditions.  There is NO
warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Database plugins:
 simple proxy

Storage plugins:
 local

Decoders plugins:
 [dsdiff] dff
 [dsf] dsf
 [faad] aac
 [fluidsynth] mid
 [ffmpeg] 16sv 3g2 3gp 4xm 8svx aa3 aac ac3 adx afc aif aifc aiff al alaw amr anim apc ape asf atrac au aud avi avm2 avs bap bfi c93 cak cin cmv cpk daud dct divx dts dv dvd dxa eac3 film flac flc fli fll flx flv g726 gsm gxf iss m1v m2v m2t m2ts m4a m4b m4v mad mj2 mjpeg mjpg mka mkv mlp mm mmf mov mp+ mp1 mp2 mp3 mp4 mpc mpeg mpg mpga mpp mpu mve mvi mxf nc nsv nut nuv oga ogm ogv ogx oma ogg omg opus psp pva qcp qt r3d ra ram rl2 rm rmvb roq rpl rvc shn smk snd sol son spx str swf tak tgi tgq tgv thp ts tsp tta xa xvid uv uv2 vb vid vob voc vp6 vmd wav webm wma wmv wsaud wsvga wv wve
 [pcm]

Filters:
 libsamplerate

Tag plugins:
 id3tag

Output plugins:
 null fifo openal osx httpd recorder

Encoder plugins:
 null wave

Archive plugins:
 [bz2] bz2

Input plugins:
 file archive curl ffmpeg

Playlist plugins:
 extm3u m3u pls cue embcue

Protocols:
 file:// http:// https:// gopher:// rtp:// rtsp:// rtmp:// rtmpt:// rtmps://

Other features:
 icu ipv6 tcp un

Configuration:

music_directory         "~/Music"
db_file                 "~/.mpd/mpd.db"
log_file                "~/.mpd/mpd.log"
pid_file                "~/.mpd/mpd.pid"
state_file              "~/.mpd/mpdstate"

log_level "verbose"

audio_output {
    type "ao"
    name "Output"
    mixer_type "software"
}

decoder {
    plugin              "mp4ff"
    enabled             "no"
}

bind_to_address         "127.0.0.1"
port                    "6600"

Log snippet:

Jun 21 22:39 : client: [6] process command "seekid 19 100"
Jun 21 22:39 : ffmpeg/mp3: Header missing
Jun 21 22:39 : playlist: queue song 1:"https://10-0-0-105.436fb910c8634392bc3dc7970e2f7c8e.plex.direct:32400/library/parts/3035692/1495681174/file.mp3"
Jun 21 22:39 : ffmpeg: avcodec_send_packet() failed: Invalid data found when processing input
Jun 21 22:39 : client: [6] command returned 0
Jun 21 22:39 : client: [6] process command "status"
Jun 21 22:39 : client: [6] command returned 0
Jun 21 22:39 : state_file: Saving state file /Users/elan/.mpd/mpdstate
Jun 21 22:39 : client: [6] process command "seekid 19 200"
Jun 21 22:39 : playlist: queue song 1:"https://10-0-0-105.436fb910c8634392bc3dc7970e2f7c8e.plex.direct:32400/library/parts/3035692/1495681174/file.mp3"
Jun 21 22:39 : client: [6] command returned 0
Jun 21 22:39 : state_file: Saving state file /Users/elan/.mpd/mpdstate
Jun 21 22:39 : ffmpeg/mp3: demuxer injecting skip 0 / discard 983
Jun 21 22:39 : ffmpeg/mp3: skip 0 / discard 983 samples due to side data
Jun 21 22:39 : ffmpeg/mp3: Could not update timestamps for discarded samples.
Jun 21 22:39 : ffmpeg/mp3: discard 983/1152 samples
Jun 21 22:39 : client: [6] process command "seekid 19 100"
Jun 21 22:39 : playlist: queue song 1:"https://10-0-0-105.436fb910c8634392bc3dc7970e2f7c8e.plex.direct:32400/library/parts/3035692/1495681174/file.mp"
Jun 21 22:39 : client: [6] command returned 0
Jun 21 22:39 : client: [6] process command "seekid 19 50"
Jun 21 22:39 : playlist: queue song 1:"https://10-0-0-105.436fb910c8634392bc3dc7970e2f7c8e.plex.direct:32400/library/parts/3035692/1495681174/file.mp3"
Jun 21 22:39 : client: [6] command returned 0
Jun 21 22:39 : state_file: Saving state file /Users/elan/.mpd/mpdstate
Jun 21 22:39 : client: [6] closed
elan commented 7 years ago

@MaxKellermann ~ any thoughts on this issue? I'm willing to dive in myself, but I figured at least you might have some idea 😄

MaxKellermann commented 7 years ago

FFmpeg problem, probably a broken file or a bug in FFmpeg.

elan commented 7 years ago

(It reproduces with all files, so it's definitely not a broken file.)