web-dev-qa-db-fra.com

FFMPEG: trop de paquets mis en mémoire tampon pour le flux de sortie 0: 1

Je souhaite ajouter un logo à une vidéo à l'aide de FFMPEG. J'ai rencontré cette erreur: "Trop de paquets mis en mémoire tampon pour le flux de sortie 0: 1.", "Échec de la conversion.". J'ai essayé avec différentes photos et vidéos, toujours la même erreur. Google n'a pas beaucoup aidé non plus. J'ai trouvé un fil

C:\Users\Anwender\OneDrive - IT-Center Engels\_Programmierung & Scripting\delphi\_ITCE\Tempater\Win32\Debug\ffmpeg\bin>ffmpeg ^
Mehr? -i C:\Users\Anwender\Videos\CutErgebnis.mp4 ^
Mehr? -i C:\Users\Anwender\Pictures\pic.png ^
Mehr? -filter_complex "overlay=0:0" ^
Mehr? C:\Users\Anwender\Videos\Logo.mp4
ffmpeg version N-90054-g474194a8d0 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 7.2.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libmfx --enable-amf --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth
  libavutil      56.  7.101 / 56.  7.101
  libavcodec     58. 11.101 / 58. 11.101
  libavformat    58.  9.100 / 58.  9.100
  libavdevice    58.  1.100 / 58.  1.100
  libavfilter     7. 12.100 /  7. 12.100
  libswscale      5.  0.101 /  5.  0.101
  libswresample   3.  0.101 /  3.  0.101
  libpostproc    55.  0.100 / 55.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Users\Anwender\Videos\CutErgebnis.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.9.100
    comment         : Captured with Snagit 13.1.3.7993
                    : Microphone - Mikrofon (Steam Streaming Microphone)
                    :
  Duration: 00:01:51.99, start: 0.015011, bitrate: 148 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1918x718 [SAR 1:1 DAR 959:359], 149 kb/s, 14.79 fps, 15 tbr, 15k tbn, 30 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 1 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Input #1, png_pipe, from 'C:\Users\Anwender\Pictures\pic.png':
  Duration: N/A, bitrate: N/A
    Stream #1:0: Video: png, pal8(pc), 400x400, 25 tbr, 25 tbn, 25 tbc
File 'C:\Users\Anwender\Videos\Logo.mp4' already exists. Overwrite ? [y/N] y
Stream mapping:
  Stream #0:0 (h264) -> overlay:main (graph 0)
  Stream #1:0 (png) -> overlay:overlay (graph 0)
  overlay (graph 0) -> Stream #0:0 (libx264)
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
Too many packets buffered for output stream 0:1.
[aac @ 000001f4c5257a40] Qavg: 65305.387
[aac @ 000001f4c5257a40] 2 frames left in the queue on closing
Conversion failed!

Ma version FFMPEG: ffmpeg-20180322-ed0e0fe-win64-static

Détails sur la vidéo:

    C:\Users\Anwender\OneDrive - IT-Center Engels\_Programmierung & Scripting\delphi\_ITCE\Tempater\Win32\Debug\ffmpeg-20180322-ed0e0fe-win64-static\bin>ffprobe.exe C:\Users\Anwender\Videos\CutErgebnis.mp4
ffprobe version N-90399-ged0e0fe102 Copyright (c) 2007-2018 the FFmpeg developers
  built with gcc 7.3.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth
  libavutil      56. 11.100 / 56. 11.100
  libavcodec     58. 15.100 / 58. 15.100
  libavformat    58. 10.100 / 58. 10.100
  libavdevice    58.  2.100 / 58.  2.100
  libavfilter     7. 13.100 /  7. 13.100
  libswscale      5.  0.102 /  5.  0.102
  libswresample   3.  0.101 /  3.  0.101
  libpostproc    55.  0.100 / 55.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Users\Anwender\Videos\CutErgebnis.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.9.100
    comment         : Captured with Snagit 13.1.3.7993
                    : Microphone - Mikrofon (Steam Streaming Microphone)
                    :
  Duration: 00:01:51.99, start: 0.015011, bitrate: 148 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1918x718 [SAR 1:1 DAR 959:359], 149 kb/s, 14.79 fps, 15 tbr, 15k tbn, 30 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 1 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
12
Der Micha

Essayez d'essayer d'ajouter cette option à la fin de vos options vidéo:

-max_muxing_queue_size 1024

Cela a fonctionné pour moi. J'ai découvert cela ici: https://discussion.mcebuddy2x.com/t/ffmpeg-bug-too-many-packets-buffered-for-output-stream/1148

41
arc

Le même problème s'est produit avec moi quelques instants auparavant. J'ai essayé tant de solutions mais je n'ai pas pu résoudre ce problème. Ensuite, j'ai analysé le sentiment d'erreur. Il indique que trop de paquets mis en mémoire tampon signifie, lorsque l'enregistrement a commencé ou la vidéo a été faite, à la seconde donnée trop de paquets utilisés pour enregistrer ce moment. J'ai donc pensé que si je recadrais la vidéo de la seconde jusqu'à la fin, j'essayais de la convertir pour la faire fonctionner. Et ça a marché. Voici donc la commande pour recadrer le fichier vidéo. Vous pouvez effectuer des ajustements en fonction des besoins. De base, votre fichier vidéo est corrompu. Si vous êtes d'accord pour recadrer une seconde du fichier et l'utiliser, alors cette solution est correcte.

Recadrer -

ffmpeg -i video.mp4 -ss 00:00:05 -t 00:03:14 -async 1 cut.mp4

puis la commande que j'essayais de convertir le fichier et a trouvé ce problème.

Convertir -

ffmpeg -i cut.mp4 -crf 32 output2.mp4

j'espère que cela vous aidera.

1
Mahesh Agrawal

J'ai résolu en ajoutant cette option (ffmpeg version 3.4.6):

-max_muxing_queue_size 9999

Par exemple:

ffmpeg -i input.mp4 -max_muxing_queue_size 9999 out.mp4
1
MVP