Recherche avancée

Médias (1)

Mot : - Tags -/censure

Autres articles (65)

Sur d’autres sites (13936)

  • FFMPEG 'Fontconfig error : Cannot load default config file' error Windows

    30 décembre 2024, par Merel

    I am trying to make a short video in FFMPEG, where a word stays on screen for the duration of the video (0.5s). My FFMPEG code looks like this :

    



    ffmpeg -f lavfi -i color=c=white:s=320x240:d=0.5 -vf "drawtext=fontfile= ‘c\:\Windows\fonts\calibri.ttf':fontsize=18:  fontcolor=black:x=(w-text_w)/2:y=(h-text_h)/2:text='word'" output.mp4

    



    However, I keep getting the following error (see below for full output) :

    



    Fontconfig error: Cannot load default config file 
[Parsed_drawtext_0 @ 000001c2918cef00] Using "C:/Windows/fonts/mingliub.ttc"


    



    I figured it had something to do with the path to the font file. I also tried copying the font file to my FFMPEG map and map the font path to the FFMPEG directory :

    



    ffmpeg -f lavfi -i color=c=white:s=320x240:d=0.5 -vf
"drawtext=fontfile=‘C:\FFMPEG\bin\calibri.ttf':fontsize=18: 
fontcolor=black:x=(w-text_w)/2:y=(h-text_h)/2:text='word'" output.mp4'


    



    This doesn't work either. I do get an output video.mp4 video, but the font is wrong. Here is the full output I get. It is the same for both code examples above :

    



     c:\FFMPEG\bin>ffmpeg -f lavfi -i color=c=white:s=320x240:d=0.5 -vf "drawtext=fontfile= ‘c\\:\\\Windows\\\fonts\\\calibri.ttf':fontsize=18:  fontcolor=black:x=(w-text_w)/2:y=(h-text_h)/2:text='word'" output.mp4
ffmpeg version N-93234-g2e67f751b5 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8.2.1 (GCC) 20190212
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --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-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
  libavutil      56. 26.100 / 56. 26.100
  libavcodec     58. 47.102 / 58. 47.102
  libavformat    58. 26.101 / 58. 26.101
  libavdevice    58.  6.101 / 58.  6.101
  libavfilter     7. 48.100 /  7. 48.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, lavfi, from 'color=c=white:s=320x240:d=0.5':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Press [q] to stop, [?] for help
Fontconfig error: Cannot load default config file
[Parsed_drawtext_0 @ 00000291ad7def00] Using "C:/Windows/fonts/mingliub.ttc"
[libx264 @ 00000291af0ef180] using SAR=1/1
[libx264 @ 00000291af0ef180] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 00000291af0ef180] profile High, level 1.3, 4:2:0, 8-bit
[libx264 @ 00000291af0ef180] 264 - core 157 r2935 545de2f - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output.mp4':
  Metadata:
    encoder         : Lavf58.26.101
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 320x240 [SAR 1:1 DAR 4:3], q=-1--1, 25 fps, 12800 tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.47.102 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
[Parsed_color_0 @ 00000291af0aa840] EOF timestamp not reliable
frame=   13 fps=0.0 q=-1.0 Lsize=       2kB time=00:00:00.40 bitrate=  43.9kbits/s speed=4.27x
video:1kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 84.991570%
[libx264 @ 00000291af0ef180] frame I:1     Avg QP: 9.22  size:   306
[libx264 @ 00000291af0ef180] frame P:3     Avg QP:11.33  size:    20
[libx264 @ 00000291af0ef180] frame B:9     Avg QP:12.67  size:    14
[libx264 @ 00000291af0ef180] consecutive B-frames:  7.7%  0.0%  0.0% 92.3%
[libx264 @ 00000291af0ef180] mb I  I16..4: 98.7%  0.0%  1.3%
[libx264 @ 00000291af0ef180] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.0%  0.0%  0.0%  0.0%  0.0%    skip:100.0%
[libx264 @ 00000291af0ef180] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.0%  0.0%  0.0%  direct: 0.0%  skip:100.0%
[libx264 @ 00000291af0ef180] 8x8 transform intra:0.0%
[libx264 @ 00000291af0ef180] coded y,uvDC,uvAC intra: 1.0% 0.0% 0.0% inter: 0.0% 0.0% 0.0%
[libx264 @ 00000291af0ef180] i16 v,h,dc,p: 92%  1%  7%  0%
[libx264 @ 00000291af0ef180] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 39%  3% 42%  2%  5%  5%  2%  2%  2%
[libx264 @ 00000291af0ef180] i8c dc,h,v,p: 100%  0%  0%  0%
[libx264 @ 00000291af0ef180] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 00000291af0ef180] kb/s:7.65


    


  • How to create a video out of frames without saving it to disk using python ?

    6 septembre 2022, par brenodacosta

    I have a function that returns a frame as result. I wanted to know how to make a video out of a for-loop with this function without saving every frame and then creating the video.

    


    What I have from now is something similar to :

    


    import cv2
out = cv2.VideoWriter('video.mp4',cv2.VideoWriter_fourcc(*'DIVX'), 14.25,(500,258))
for frame in frames:
    img_result = MyImageTreatmentFunction(frame) # returns a numpy array image
    out.write(img_result)
out.release()


    


    Then the video will be created as video.mp4 and I can access it on memory. I'm asking myself if there's a way to have this video in a variable that I can easily convert to bytes later. My purpose for that is to send the video via HTTP post.

    


    I've looked on ffmpeg-python and opencv but I didn't find anything that applies to my case.

    


  • ffmpeg How to get PCM floats from AVFrame with AV_SAMPLE_FMT_FLT

    26 novembre 2020, par cs guy

    I have an AVFrame obtained through a decoder that has a format of AVSampleFormat::AV_SAMPLE_FMT_FLT. My issue is I want to convert the data stored inside

    


    avFrame->data; // returns uint8_t *


    


    to Array of floats that are between [-1, +1]. I see that avFrame->data; returns uint8_t * how may I use this to obtain the float pcm data for each channel of the audio ?

    


    I tried the following :

    


    auto *floatArrPtr = (float *)(avResampledDecFrame->data[0]);

    for (int i = 0; i < avResampledDecFrame->nb_samples; i++) {
        // TODO: store interleaved floats somewhere
        floatArrPtr++;
    }


    


    but I am not sure if this is the right way to get data