FFmpeg-Zeichentextlimit für die maximale Anzahl geöffneter Schriftdateien

543
AM25

Mit FFmpeg versuche ich, ein Video aus Bildern zu erstellen, auf denen ich Text kommentiere / schreibe drawtext( filter_complexverwendet).

Wenn die Anzahl der drawtextFilter 500 überschreitet, erhalte ich eine Fehlermeldung:

Kann keine gültige Schriftart für die Familie Sans finden

FFmpeg hat anscheinend eine Begrenzung für die Anzahl der Font-Dateien, die gleichzeitig geöffnet werden können.

  1. Wie funktioniert das drawtext? Warum wird für jeden Filter eine neue Datei geöffnet, auch wenn alle Zeichensatzdateien gleich sind?
  2. Irgendwelche Weise, dieses Problem zu lösen? Durch Erhöhung des Grenzwerts für Dateien, die gleichzeitig geöffnet werden können?
  3. drawtextDokumentation hat eine Option fontconfig- wie benutzt man sie? Ist es in dem obigen Szenario hilfreich?

Komplette command-
ffmpeg -f concat -i input.txt -i input_audio.wav -y -r 10 -filter_complex_script filterCommand.txt -crf 22 -threads 2 -preset ultrafast output_video.mp4

filterCommand.txt - Textdatei enthält ein durch drawtext=enable='between(n,0,0)':fontsize=10:fontfile='C\:/‌​windows/Fonts/calibr‌​ib.ttf':fontcolor='0‌​x000000Komma getrenntes Kommando - 509-mal wiederholt

509-mal Draw-Text funktioniert, 510-mal-Drawtext schlägt fehl.

Konsolenprotokolle-
ffmpeg version N-81989-g7845c13 Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.4.0 (GCC) configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib libavutil 55. 32.100 / 55. 32.100 libavcodec 57. 61.103 / 57. 61.103 libavformat 57. 52.100 / 57. 52.100 libavdevice 57. 0.102 / 57. 0.102 libavfilter 6. 64.100 / 6. 64.100 libswscale 4. 1.100 / 4. 1.100 libswresample 2. 2.100 / 2. 2.100 libpostproc 54. 0.100 / 54. 0.100 Input #0, concat, from 'temp/test4/node-5303540733531691237.txt': Duration: 00:00:01.61, start: 0.000000, bitrate: 0 kb/s Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1920x1080 [SAR 1:1 DAR 16:9], 25 tbr, 25 tbn, 25 tbc Guessed Channel Layout for Input Stream #1.0 : mono Input #1, wav, from 'temp/32_anonymoususer1825804750300631765/part/1_subPart/audio/part_audio.wav': Duration: 00:00:09.50, bitrate: 705 kb/s Stream #1:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, mono, s16, 705 kb/s Fontconfig error: Cannot load default config file [Parsed_drawtext_509 @ 000000000a4ca9a0] Cannot find a valid font for the family Sans [AVFilterGraph @ 0000000000b8cfc0] Error initializing filter 'drawtext' with args 'enable=between(n,21,21):fontsize=10:fontfile=C\:/windows/Fonts/calibrib.ttf:fontcolor=0x000000:text=100\.0:x=398:y=119-th' Error initializing complex filters. No such file or directory

1
Sie sind nicht mit der Funktionsweise des Filters vertraut, aber können Sie uns bitte einen Befehl geben, der das Problem aufzeigt, und die vollständige Befehlszeilenausgabe, die Sie als Ergebnis erhalten? (Wenn es zu lang ist, können Sie auch in PasteBin hochladen.) slhck vor 7 Jahren 0
Beispielbefehl-`ffmpeg -f concat -i input.txt -i input_audio.wav -y -r 10 -vf "drawtext = enable = 'zwischen (n, 0,0)': fontsize = 10: fontfile = 'C \ : /windows/Fonts/calibrib.ttf ': fontcolor =' 0x000000 ': text =' 120 \ .0 ': x = 480: y = 61-te "-crf 22 -threads 2 -preset ultrafast output_video.mp4` - Wiederholen Sie den Befehl drawtext mindestens 550 Mal AM25 vor 7 Jahren 0
Bitte geben Sie alles wie gewünscht an, dh den gesamten Befehl und seine vollständige Ausgabe, nicht nur den einen Fehler. slhck vor 7 Jahren 0
[ffmpeg ticket 5893] (https://trac.ffmpeg.org/ticket/5983#no1) kann verwiesen werden - es werden etwa 512 Drawtext-Filter erwähnt, jedoch keine Lösung / Abhilfe AM25 vor 7 Jahren 0
Ich verstehe, ich wollte gerade ahnen, dass so etwas das Problem sein würde. Ich fürchte, Sie können nur warten, bis jemand den Fehler behoben hat. Nicht sicher, ob es so einfach ist, da jeder Filter seine Schriftarten einzeln lädt. slhck vor 7 Jahren 0

0 Antworten auf die Frage