Opened 9 years ago

Closed 7 years ago

#4946 closed defect (fixed)

Buffer queue overflow issue with dynaudnorm filter + overlay filter

Reported by: Alan Owned by:
Priority: normal Component: avfilter
Version: git-master Keywords: dynaudnorm overlay
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Video freezes during playback and we get an error: Buffer queue overflow, dropping. Removing either the overlay filter or the dynaudnorm filter makes the issue go away.

Summary of the bug:
How to reproduce:

% ffmpeg -report -y -i dynaudnormOverlayIssueInput.mp4 -i dynaudnormOverlayIssueImage.png -filter_complex "[0:v] yadif,scale=1920:1080,setsar=1 [deint]; [deint] [1:v] overlay=x=-0:y=0:repeatlast=1,scale=-1:576[video]; [0:a] dynaudnorm=b=1 [audio]" -map "[video]" -map "[audio]" -vcodec libx264 -pix_fmt yuv420p -acodec libfaac -threads 0 dynaudnormOverlayIssueOutput.mp4
ffmpeg version n2.8.1-7-ge0e28da Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.8.3 (GCC) 20140911 (Red Hat 4.8.3-9)

Files:
full log: https://s3.amazonaws.com/ffmpeg.test.files/ffmpeg-20151019-164831.log
input mp4: https://s3.amazonaws.com/ffmpeg.test.files/dynaudnormOverlayIssueInput.mp4
input png for overlay: https://s3.amazonaws.com/ffmpeg.test.files/dynaudnormOverlayIssueImage.png
output mp4 : https://s3.amazonaws.com/ffmpeg.test.files/dynaudnormOverlayIssueOutput.mp4

Change History (6)

comment:1 by Elon Musk, 9 years ago

Reproduced by developer: set
Status: newopen

As workaround try putting fifo filter before overlay one.

comment:2 by Alan, 9 years ago

Tried [deint filter]; fifo; [overlay filter] etc and still got the error.

fifo also messed something up with the stream mapping and added the overlay as a separate video stream in the output

Output #0, mp4, to 'dynaudnormOverlayIssueOutput.mp4':

Metadata:

major_brand : mp42
minor_version : 0
compatible_brands: isom
encoder : Lavf56.40.101
Stream #0:0, 0, 1/12800: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 12800 tbn, 25 tbc
Metadata:

encoder : Lavc56.60.100 libx264

Stream #0:1, 0, 1/15360: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1024x576 [SAR 1:1 DAR 16:9], q=-1--1, 30 fps, 15360 tbn, 30 tbc
Metadata:

encoder : Lavc56.60.100 libx264

Stream #0:2, 0, 1/44100: Audio: aac (libfaac) ([64][0][0][0] / 0x0040), 44100 Hz, stereo, s16, 128 kb/s (default)
Metadata:

encoder : Lavc56.60.100 libfaac

Stream mapping:

Stream #0:0 (h264) -> yadif
Stream #0:1 (aac) -> dynaudnorm
Stream #1:0 (png) -> fifo
Stream #1:0 (png) -> overlay:overlay
fifo -> Stream #0:0 (libx264)
scale -> Stream #0:1 (libx264)
dynaudnorm -> Stream #0:2 (libfaac)

comment:3 by Elon Musk, 9 years ago

Put fifo after setsar: ...setsar, fifo ....

comment:4 by Alan, 9 years ago

Ah, when I saw it took no arguments I though it would work without defining inputs and output... doh

Anyway, that looks like it works as a workaround. Thanks!

Last edited 9 years ago by Alan (previous) (diff)

comment:5 by Carl Eugen Hoyos, 7 years ago

Component: undeterminedavfilter
Keywords: buffer queue overflow removed

comment:6 by Elon Musk, 7 years ago

Resolution: fixed
Status: openclosed

Can not reproduce anymore.

Note: See TracTickets for help on using tickets.