ffmpeg drawfxt फॉन्टाइल त्रुटि "परिवार के लिए एक वैध फ़ॉन्ट नहीं मिल सकता है"


1

मैं वीडियो में फ्रेम नंबर को जलाने के लिए ffmpeg का उपयोग कर रहा हूं। मुझे संदेह है कि त्रुटि का फ़ाइल पथ के साथ कुछ करना है।

यहाँ मेरी आज्ञा है

ffmpeg -i in.mp4 -vf "drawtext=fontfile='E\:\\ffmpegTool\\bin\\arialbd.ttf':fontsize=30: fontcolor=black:x=(w-text_w)/2:y=(h-text_h)/2:text=%{expr\\\\\:n+1}: box=1" -y out.mp4

मैंने यह , यह और यह कोशिश की है । उन्होंने काम नहीं किया

यहाँ त्रुटि है

ffmpeg version N-85091-g23ae3cc Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 6.3.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --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-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-zlib
  libavutil      55. 57.100 / 55. 57.100
  libavcodec     57. 88.100 / 57. 88.100
  libavformat    57. 70.100 / 57. 70.100
  libavdevice    57.  5.100 / 57.  5.100
  libavfilter     6. 81.100 /  6. 81.100
  libswscale      4.  5.100 /  4.  5.100
  libswresample   2.  6.100 /  2.  6.100
  libpostproc    54.  4.100 / 54.  4.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'E:\ffmpegTool\bin\00872.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41
    creation_time   : 2017-04-01T08:35:15.000000Z
  Duration: 00:00:52.31, start: 0.000000, bitrate: 11442 kb/s
    Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 11130 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
    Metadata:
      creation_time   : 2017-04-01T08:35:15.000000Z
      handler_name    : Alias Data Handler
      encoder         : AVC Coding
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 317 kb/s (default)
    Metadata:
      creation_time   : 2017-04-01T08:35:15.000000Z
      handler_name    : Alias Data Handler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
Fontconfig error: Cannot load default config file
[Parsed_drawtext_0 @ 00000000010ab340] Cannot find a valid font for the family Sans
[AVFilterGraph @ 00000000052c9280] Error initializing filter 'drawtext' with args 'fontfile=E\:\\ffmpegTool\\bin\\arialbd.ttf:fontsize=30: fontcolor=black:x=(w-text_w)/2:y=(h-text_h)/2:text=%{expr\\:n+1}: box=1'
Error reinitializing filters!
Failed to inject frame into filter network: No such file or directory
Error while processing the decoded data for stream #0:0
Conversion failed!

मदद की सराहना करें।

जवाबों:


2

"पूरे फ़िल्टर के आसपास दोहरे उद्धरण ( ) को छोड़ दें , उनका उपयोग केवल फ़ॉन्ट फ़ाइल के पथ के लिए करें और उसके बाद रिक्त स्थान छोड़ें ::

ffmpeg -i in.mp4 -vf drawtext=fontfile="E\:\\ffmpegTool\\bin\\arialbd.ttf":fontsize=30:fontcolor=black:x=(w-text_w)/2:y=(h-text_h)/2:text=%{expr\\\\\:n+1}:box=1 -y out.mp4

इसके अलावा, फ़ॉन्ट फ़ाइल के लिए आपका पथ संदिग्ध है - डिफ़ॉल्ट विंडोज फ़ॉन्ट पथ का उपयोग करने का प्रयास करें

c:\Windows\Fonts\,

तो आपकी आज्ञा होगी

ffmpeg -i in.mp4 -vf drawtext=fontfile="c\:\\Windows\\Fonts\\arialbd.ttf":fontsize=30:fontcolor=black:x=(w-text_w)/2:y=(h-text_h)/2:text=%{expr\\\\\:n+1}:box=1 -y out.mp4

यह काम नहीं किया :( शायद यह है Fontconfig error: Cannot load default config file?
मूर

नहीं, डिफ़ॉल्ट कॉन्फिग फाइल * निक्स स्पेसिफिक है - यह फाइल है fonts.conf(डिफॉल्ट डायरेक्टरी में /etc/fonts/)। आप विंडोज का उपयोग कर रहे हैं - शायद आपने गलत रास्ता लिखा है। मैंने अपना उत्तर संपादित किया, देखें।
मैरियनड

जाहिर है यह है fontcolorकि त्रुटि बना रहता है। मैंने एक-एक करके छोड़ा और यह काम करने वाला कोड है ffmpeg -i in.mp4 -vf drawtext=fontsize=40:x=(w-text_w)/2:y=(h-text_h)/2:fontfile='C\:\\Windows\\Fonts\\Arial.ttf':text=%{n}:box=1 -y out.mp4( ") काम नहीं किया। लेकिन ( ') किया। यह कितना अजीब है fontcolor...
मूर

ऐसा लगता है कि कुछ असंभव है (इसके बावजूद blackडिफ़ॉल्ट है fontcolor)। क्या आपने कुछ अन्य रंगों या संकेतन की कोशिश की fontcolor=0x000000?
मैरियनड

हाँ तुम सही हो। ऐसा लगता है text=%{expr\\\\\:n+1}कि यह वह हिस्सा है जिसने कुछ गलत किया है। मैं भूल गया मैं भी उसी समय उस हिस्से को छोड़ दिया था। fontcolorउम्मीद के मुताबिक काम करता है। धन्यवाद!
मूर

1

2019 विंडोज बिल्ड सिंटैक्स या कुछ फिर से बदल गया है लगता है; आज यहाँ मेरे लिए क्या काम करता है:

-vf "drawtext=fontfile=C\\:/Windows/fonts/consola.ttf:fontsize=72:fontcolor='white':timecode='00\:00\:00\:00':rate=25:text='TCR\:':boxcolor=0x000000AA:box=1:x=860-text_w/2:y=960"

मेरे मामले में, मैं पीडब्ल्यूडी से FFmpeg चला रहा हूं, नहीं C:, इसलिए मुझे C:\फ़ोल्डर / फ़ाइल पथ के लिए बच गए बृहदान्त्र और फ़ॉरवर्ड-स्लैश के साथ फ़ॉन्ट पथ निर्दिष्ट करना होगा ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.