Opened 2 years ago

Closed 4 months ago

#4946 closed defect (fixed)

Buffer queue overflow issue with dynaudnorm filter + overlay filter

Reported by: acloutier 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 Changed 2 years ago by richardpl

  • Reproduced by developer set
  • Status changed from new to open

As workaround try putting fifo filter before overlay one.

comment:2 Changed 2 years ago by acloutier

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 Changed 2 years ago by richardpl

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

comment:4 Changed 2 years ago by acloutier

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 2 years ago by acloutier (previous) (diff)

comment:5 Changed 10 months ago by cehoyos

  • Component changed from undetermined to avfilter
  • Keywords buffer queue overflow removed

comment:6 Changed 4 months ago by richardpl

  • Resolution set to fixed
  • Status changed from open to closed

Can not reproduce anymore.

Note: See TracTickets for help on using tickets.