Recherche avancée

Médias (91)

Autres articles (51)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • Mise à disposition des fichiers

    14 avril 2011, par

    Par défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
    Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
    Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

Sur d’autres sites (7769)

  • FFMPEG killed - not much information for troubleshooting

    26 juin 2022, par Daniel Shen

    can't find out what might be causing this killed. Any tips ? or what kind of logs might help to troubleshoot ? It just says 'KILLED'.

    


    This FFMPEG is installed in my AWS Linux (centos rhel fedora)
I am quite confident the file is OK as the ffmpeg runs ok on my local macos (but different ffmpeg installation from brew).

    


    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
[libx264 @ 0x927f20] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
[libx264 @ 0x927f20] profile High, level 5.1
[libx264 @ 0x927f20] 264 - core 148 r2795 aaa9aa8 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - 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=3 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 'fail.mp4':=       0kB time=-577014:32:22.77 bitrate=  -0.0kbits/s speed=N/A    
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41
    encoder         : Lavf57.83.100
    Stream #0:0(eng): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p(progressive), 3840x2160, q=-1--1, 30 fps, 15360 tbn, 30 tbc (default)
    Metadata:
      creation_time   : 2022-04-27T17:14:43.000000Z
      handler_name    : Alias Data Handler
      encoder         : Lavc57.107.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      creation_time   : 2022-04-27T17:14:45.000000Z
      handler_name    : Alias Data Handler
      encoder         : Lavc57.107.100 aac
Killed   37 fps= 18 q=0.0 size=       0kB time=00:00:01.00 bitrate=   0.0kbits/s speed=0.484x


    


    Here is my FFMPEG

    


    ffmpeg version N-60236-gffb000fff8-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-6)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
  libavutil      57. 18.100 / 57. 18.100
  libavcodec     59. 20.100 / 59. 20.100
  libavformat    59. 17.100 / 59. 17.100
  libavdevice    59.  5.100 / 59.  5.100
  libavfilter     8. 25.100 /  8. 25.100
  libswscale      6.  5.100 /  6.  5.100
  libswresample   4.  4.100 /  4.  4.100
  libpostproc    56.  4.100 / 56.  4.100
Hyper fast Audio and Video encoder


    


    I just got a debug log

    


    Successfully opened the file.
Parsing a group of options: output url failed.mp4.
Successfully parsed a group of options.
Opening an output file: failed.mp4.
[file @ 0x6c3d340] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
detected 2 logical cores
[h264 @ 0x6c407c0] nal_unit_type: 7(SPS), nal_ref_idc: 1
[h264 @ 0x6c407c0] nal_unit_type: 8(PPS), nal_ref_idc: 1
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
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c407c0] nal_unit_type: 7(SPS), nal_ref_idc: 1
[h264 @ 0x6c407c0] nal_unit_type: 8(PPS), nal_ref_idc: 1
[h264 @ 0x6c407c0] nal_unit_type: 6(SEI), nal_ref_idc: 0
[h264 @ 0x6c407c0] nal_unit_type: 5(IDR), nal_ref_idc: 1
[h264 @ 0x6c407c0] Format yuv420p chosen by get_format().
[h264 @ 0x6c407c0] Reinit context to 3840x2160, pix_fmt: yuv420p
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c407c0] no picture 
[h264 @ 0x6c44900] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x70354c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c407c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
[graph 0 input from stream 0:0 @ 0x6fe9780] Setting 'video_size' to value '3840x2160'
[graph 0 input from stream 0:0 @ 0x6fe9780] Setting 'pix_fmt' to value '0'
[graph 0 input from stream 0:0 @ 0x6fe9780] Setting 'time_base' to value '1/30000'
[graph 0 input from stream 0:0 @ 0x6fe9780] Setting 'pixel_aspect' to value '0/1'
[graph 0 input from stream 0:0 @ 0x6fe9780] Setting 'frame_rate' to value '30/1'
[graph 0 input from stream 0:0 @ 0x6fe9780] w:3840 h:2160 pixfmt:yuv420p tb:1/30000 fr:30/1 sar:0/1
[format @ 0x77af200] Setting 'pix_fmts' to value 'yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16|nv21|yuv420p10le|yuv422p10le|yuv444p10le|nv20le|gray|gray10le'
[AVFilterGraph @ 0x6fe8a00] query_formats: 4 queried, 3 merged, 0 already done, 0 delayed
[libx264 @ 0x70e7800] using mv_range_thread = 360
[libx264 @ 0x70e7800] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512
[libx264 @ 0x70e7800] profile High, level 5.1, 4:2:0, 8-bit
[libx264 @ 0x70e7800] 264 - core 164 r3081 19856cc - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - 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=3 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
Clipping frame in rate conversion by 0.000008
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:1 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c44900] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:1 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x70354c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:1 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c407c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:1 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c44900] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:1 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x70354c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:1 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c407c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:1 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[graph_1_in_0_1 @ 0x6fc91c0] Setting 'time_base' to value '1/48000'
[graph_1_in_0_1 @ 0x6fc91c0] Setting 'sample_rate' to value '48000'
[graph_1_in_0_1 @ 0x6fc91c0] Setting 'sample_fmt' to value 'fltp'
[graph_1_in_0_1 @ 0x6fc91c0] Setting 'channel_layout' to value '0x3'
[graph_1_in_0_1 @ 0x6fc91c0] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x3
[format_out_0_1 @ 0x70e6a80] Setting 'sample_fmts' to value 'fltp'
[format_out_0_1 @ 0x70e6a80] Setting 'sample_rates' to value '96000|88200|64000|48000|44100|32000|24000|22050|16000|12000|11025|8000|7350'
[AVFilterGraph @ 0x70f2400] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed
Output #0, mp4, to 'failed.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41
    encoder         : Lavf59.17.100
  Stream #0:0(eng), 0, 1/15360: Video: h264, 1 reference frame (avc1 / 0x31637661), yuv420p(tv, bt709, progressive, left), 3840x2160 (0x0), 0/1, q=2-31, 30 fps, 15360 tbn (default)
    Metadata:
      creation_time   : 2022-04-27T17:14:43.000000Z
      handler_name    : ?Mainconcept Video Media Handler
      vendor_id       : [0][0][0][0]
      encoder         : Lavc59.20.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
  Stream #0:1(eng), 0, 1/48000: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, delay 1024, 128 kb/s (default)
    Metadata:
      creation_time   : 2022-04-27T17:14:45.000000Z
      handler_name    : #Mainconcept MP4 Sound Media Handler
      vendor_id       : [0][0][0][0]
      encoder         : Lavc59.20.100 aac
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:1 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 14 times
[h264 @ 0x6c44900] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x70354c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c407c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c44900] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x70354c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c407c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c44900] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x70354c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c407c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c44900] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 16 times
[h264 @ 0x70354c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c407c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c44900] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x70354c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c407c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c44900] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x70354c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c407c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c44900] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x70354c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 15 times
[h264 @ 0x6c407c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c44900] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x70354c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c407c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c44900] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x70354c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c407c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c44900] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x70354c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c407c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 16 times
[h264 @ 0x6c44900] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x70354c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264 @ 0x6c407c0] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
Killed


    


  • Google Analytics 4 and GDPR : Everything You Need to Know

    17 mai 2022, par Erin

    Four years have passed since the European General Data Protection Regulation (GDPR, also known as DSGVO in German, and RGPD in French) took effect.

    That’s ample time to get compliant, especially for an organisation as big and innovative as Google. Or is it ? 

    If you are wondering how GDPR affects Google Analytics 4 and what the compliance status is at present, here’s the lowdown. 

    Is Google Analytics 4 GDPR Compliant ?

    No. As of mid-2022, Google Analytics 4 (GA4) isn’t fully GDPR compliant. Despite adding extra privacy-focused features, GA4 still has murky status with the European regulators. After the invalidation of the Privacy Shield framework in 2020, Google is yet to regulate EU-US data protection. At present, the company doesn’t sufficiently protect EU citizens’ and residents’ data against US surveillance laws. This is a direct breach of GDPR.

    Google Analytics and GDPR : a Complex Relationship 

    European regulators have scrutinised Google since GDPR came into effect in 2018.

    While the company took steps to prepare for GDPR provisions, it didn’t fully comply with important regulations around user data storage, transfer and security.

    The relationship between Google and EU regulators got more heated after the Court of Justice of the European Union (CJEU) invalidated the Privacy Shield — a leeway Google used for EU-US data transfers. After 2020, GDPR litigation against Google followed. 

    This post summarises the main milestones in this story and explains the consequences for Google Analytics users. 

    Google Analytics and GDPR Timeline

    2018 : Google Analytics Meets GDPR 

    In 2018, the EU adopted the General Data Protection Regulation (GDPR) — a set of privacy and data security laws, covering all member states. Every business interacting with EU citizens and/or residents had to comply.

    GDPR harmonised data protection laws across member states and put down extra provisions for what constitutes sensitive personal information (or PII). Broadly, PII includes any data about the person’s :

    • Racial or ethnic origin 
    • Employment status 
    • Religious or political beliefs
    • State of health 
    • Genetic or biometric data 
    • Financial records (such as payment method data)
    • Address and phone numbers 

    Businesses were barred from collecting this information without explicit consent (and even with it in some cases). If collected, such sensitive information is also subject to strict requirements on how it should be stored, secured, transferred and used. 

    7 Main GDPR Principles Explained 

    Article 5 of the GDPR lays out seven main GDPR principles for personal data and privacy protection : 

    • Lawfulness, fairness and transparency — data must be obtained legally, collected with consent and in adherence to laws. 
    • Purpose limitation — all personal information must be collected for specified, explicit and legal purposes. 
    • Data minimisation — companies must collect only necessary and adequate data, aligned with the stated purpose. 
    • Accuracy — data accuracy must be ensured at all times. Companies must have mechanisms to erase or correct inaccurate data without delays. 
    • Storage limitation — data must be stored only for as long as the stated purpose suggests. Though there’s no upper time limit on data storage. 
    • Integrity and confidentiality (security) — companies must take measures to ensure secure data storage and prevent unlawful or unauthorised access to it. 
    • Accountability — companies must be able to demonstrate adherence to the above principles. 

    Google claimed to have taken steps to make all of their products GDPR compliant ahead of the deadline. But in practice, this wasn’t always the case.

    In March 2018, a group of publishers admonished Google for not providing them with enough tools for GDPR compliance :

    “[Y]ou refuse to provide publishers with any specific information about how you will collect, share and use the data. Placing the full burden of obtaining new consent on the publisher is untenable without providing the publisher with the specific information needed to provide sufficient transparency or to obtain the requisite specific, granular and informed consent under the GDPR.”

    The proposed Google Analytics GDPR consent form was hard to implement and lacked customisation options. In fact, Google “makes unilateral decisions” on how the collected data is stored and used. 

    Users had no way to learn about or control all intended uses of people’s data — which made compliance with the second clause impossible. 

    Unsurprisingly, Google was among the first companies to face a GDPR lawsuit (together with Facebook). 

    By 2019, French data regulator CNIL, successfully argued that Google wasn’t sufficiently disclosing its data collection across products — and hence in breach of GDPR. After a failed appeal, Google had to pay a €50 million fine and promise to do better. 

    2019 : Google Analytics 4 Announcement 

    Throughout 2019, Google rightfully attempted to resolve some of its GDPR shortcomings across all products, Google Universal Analytics (UA) included. 

    They added a more visible consent mechanism for online tracking and provided extra compliance tips for users to follow. In the background, Google also made tech changes to its data processing mechanism to get on the good side of regulations.

    Though Google addressed some of the issues, they missed others. A 2019 independent investigation found that Google real-time-bidding (RTB) ad auctions still used EU citizens’ and residents’ data without consent, thanks to a loophole called “Push Pages”. But they managed to quickly patch this up before the allegations had made it to court. 

    In November 2019, Google released a beta version of the new product version — Google Analytics 4, due to replace Universal Analytics. 

    GA4 came with a set of new privacy-focused features for ticking GDPR boxes such as :

    • Data deletion mechanism. Users can now request to surgically extract certain data from the Analytics servers via a new interface. 
    • Shorter data retention period. You can now shorten the default retention period to 2 months by default (instead of 14 months) or add a custom limit.  
    • IP Anonymisation. GA4 doesn’t log or store IP addresses by default. 

    Google Analytics also updated its data processing terms and made changes to its privacy policy

    Though Google made some progress, Google Analytics 4 still has many limitations — and isn’t GDPR compliant. 

    2020 : Privacy Shield Invalidation Ruling 

    As part of the 2018 GDPR preparations, Google named its Irish entity (Google Ireland Limited) as the “data controller” legally responsible for EEA and Swiss users’ information. 

    The company announcement says : 

    Google Analytics Statement on Privacy Shield Invalidation Ruling
    Source : Google

    Initially, Google assumed that this legal change would help them ensure GDPR compliance as “legally speaking” a European entity was set in charge of European data. 

    Practically, however, EEA consumers’ data was still primarily transferred and processed in the US — where most Google data centres are located. Until 2020, such cross-border data transfers were considered legal thanks to the Privacy Shield framework

    But in July 2020, The EU Court of Justice ruled that this framework doesn’t provide adequate data protection to digitally transmitted data against US surveillance laws. Hence, companies like Google can no longer use it. The Swiss Federal Data Protection and Information Commissioner (FDPIC) reached the same conclusion in September 2020. 

    The invalidation of the Privacy Shield framework put Google in a tough position.

     Article 14. f of the GDPR explicitly states : 

    “The controller (the company) that intends to carry out a transfer of personal data to a recipient (Analytics solution) in a third country or an international organisation must provide its users with information on the place of processing and storage of its data”.

    Invalidation of the Privacy Shield framework prohibited Google from moving data to the US. At the same time, GDPR provisions mandated that they must disclose proper data location. 

    But Google Analytics (like many other products) had no a mechanism for : 

    • Guaranteeing intra-EU data storage 
    • Selecting a designated regional storage location 
    • Informing users about data storage location or data transfers outside of the EU 

    And these factors made Google Analytics in direct breach of GDPR — a territory, where they remain as of 2022.

    2020-2022 : Google GDPR Breaches and Fines 

    The 2020 ruling opened Google to GDPR lawsuits from country-specific data regulators.

    Google Analytics in particular was under a heavy cease-fire. 

    • Sweden first fined Google for violating GDPR for no not fulfilling its obligations to request data delisting in 2020. 
    • France rejected Google Analytics 4 IP address anonymisation function as a sufficient measure for protecting cross-border data transfers. Even with it, US intelligence services can still access user IPs and other PII. France declared Google Analytics illegal and pressed a €150 million fine. 
    • Austria also found Google Analytics GDPR non-compliant and proclaimed the service as “illegal”. The authority now seeks a fine too. 

    The Dutch Data Protection Authority and  Norwegian Data Protection Authority also found Google Analytics guilty of a GDPR breach and seek to limit Google Analytics usage. 

    New privacy controls in Google Analytics 4 do not resolve the underlying issue — unregulated, non-consensual EU-US data transfer. 

    Google Analytics GDPR non-compliance effectively opens any website tracking or analysing European visitors to legal persecution.

    In fact, this is already happening. noyb, a European privacy-focused NGO, has already filed over 100 lawsuits against European websites using Google Analytics.

    2022 : Privacy Shield 2.0. Negotiations

    Google isn’t the only US company affected by the Privacy Shield framework invalidation. The ruling puts thousands of digital companies at risk of non-compliance.

    To settle the matter, US and EU authorities started “peace talks” in spring 2022.

    European Commission President Ursula von der Leyen said that they are working with the Biden administration on the new agreement that will “enable predictable and trustworthy data flows between the EU and US, safeguarding the privacy and civil liberties.” 

    However, it’s just the beginning of a lengthy negotiation process. The matter is far from being settled and contentious issues remain as we discussed on Twitter (come say hi !).

    For one, the US isn’t eager to modify its surveillance laws and is mostly willing to make them “proportional” to those in place in the EU. These modifications may still not satisfy CJEU — which has the power to block the agreement vetting or invalidate it once again. 

    While these matters are getting hashed out, Google Analytics users, collecting data about EU citizens and/or residents, remain on slippery grounds. As long as they use GA4, they can be subject to GDPR-related lawsuits. 

    To Sum It Up 

    • Google Analytics 4 and Google Universal Analytics are not GDPR compliant because of Privacy Shield invalidation in 2020. 
    • French and Austrian data watchdogs named Google Analytics operations “illegal”. Swedish, Dutch and Norwegian authorities also claim it’s in breach of GDPR. 
    • Any website using GA for collecting data about European citizens and/or residents can be taken to court for GDPR violations (which is already happening). 
    • Privacy Shield 2.0 Framework discussions to regulate EU-US data transfers have only begun and may take years. Even if accepted, the new framework(s) may once again be invalidated by local data regulators as has already happened in the past. 

    Time to Get a GDPR Compliant Google Analytics Alternative 

    Retaining 100% data ownership is the optimal path to GDPR compliance.

    By selecting a transparent web analytics solution that offers 100% data ownership, you can rest assured that no “behind the scenes” data collection, processing or transfers take place. 

    Unlike Google Analytics 4, Matomo offers all of the features you need to be GDPR compliant : 

    • Full data anonymisation 
    • Single-purpose data usage 
    • Easy consent and an opt-out mechanism 
    • First-party cookies usage by default 
    • Simple access to collect data 
    • Fast data removals 
    • EU-based data storage for Matomo Cloud (or storage in the country of your choice with Matomo On-Premise)

    Learn about your audiences in a privacy-centred way and protect your business against unnecessary legal exposure. 

    Start your 21-day free trial (no credit card required) to see how fully GDPR-compliant website analytics works ! 

  • ffmpeg Undefined referance to several swr functions [duplicate]

    21 mai 2022, par user19068953

    I'm trying to staticly link ffmpeg to my project, i downloaded the ffmpeg source files from a github repo because it had pre writen cmake files, which i needed for this exact problem but it changed nothing (https://github.com/Pawday/ffmpeg-cmake). I edited the file a little and posted it below, and added them to lib/ffmpeg in my project directory. I first ran ./configure, then ran make, then make install like the install guide suggested. Then i ran cmake . followed by make. It compiled just fine and i ran a test without any errors :

    


    extern "C"{&#xA;    #include <libavcodec></libavcodec>avcodec.h>&#xA;}&#xA;&#xA;#include <iostream>&#xA;int main(int argc, char* argv[]) {&#xA;    if (argc &lt; 2) {&#xA;        std::cout &lt;&lt; "provide a filename" &lt;&lt; std::endl;&#xA;        return -1;&#xA;        AVPacket *pkt = av_packet_alloc();&#xA;    }&#xA;}&#xA;</iostream>

    &#xA;

    I was following the examples that ffmpeg provides, so i added this :

    &#xA;

    const AVCodec *codec = avcodec_find_decoder(AV_CODEC_ID_MPEG1VIDEO);&#xA;

    &#xA;

    But now i have this huge error :

    &#xA;

    /usr/bin/ld: /usr/local/lib/libavcodec.a(opusdec.o): in function &#xA;&#xA;`opus_decode_subpacket&#x27;:&#xA;/home/t/Desktop/Code/lib/ffmpeg/libavcodec/opusdec.c:346: undefined reference to `swr_is_initialized&#x27;&#xA;/usr/bin/ld: /usr/local/lib/libavcodec.a(opusdec.o): in function `opus_decode_frame&#x27;:&#xA;/home/t/Desktop/Code/lib/ffmpeg/libavcodec/opusdec.c:188: undefined reference to `swr_is_initialized&#x27;&#xA;/usr/bin/ld: /usr/local/lib/libavcodec.a(opusdec.o): in function `opus_init_resample&#x27;:&#xA;/home/t/Desktop/Code/lib/ffmpeg/libavcodec/opusdec.c:136: undefined reference to `swr_init&#x27;&#xA;/usr/bin/ld: /home/t/Desktop/Code/lib/ffmpeg/libavcodec/opusdec.c:142: undefined reference to `swr_convert&#x27;&#xA;/usr/bin/ld: /usr/local/lib/libavcodec.a(opusdec.o): in function `opus_decode_frame&#x27;:&#xA;/home/t/Desktop/Code/lib/ffmpeg/libavcodec/opusdec.c:202: undefined reference to `swr_convert&#x27;&#xA;/usr/bin/ld: /usr/local/lib/libavcodec.a(opusdec.o): in function `opus_flush_resample&#x27;:&#xA;/home/t/Desktop/Code/lib/ffmpeg/libavcodec/opusdec.c:90: undefined reference to `swr_convert&#x27;&#xA;/usr/bin/ld: /usr/local/lib/libavcodec.a(opusdec.o): in function `opus_decode_subpacket&#x27;:&#xA;/home/t/Desktop/Code/lib/ffmpeg/libavcodec/opusdec.c:379: undefined reference to `swr_close&#x27;&#xA;/usr/bin/ld: /home/t/Desktop/Code/lib/ffmpeg/libavcodec/opusdec.c:346: undefined reference to `swr_is_initialized&#x27;&#xA;/usr/bin/ld: /usr/local/lib/libavcodec.a(opusdec.o): in function `opus_decode_flush&#x27;:&#xA;/home/t/Desktop/Code/lib/ffmpeg/libavcodec/opusdec.c:582: undefined reference to `swr_close&#x27;&#xA;/usr/bin/ld: /usr/local/lib/libavcodec.a(opusdec.o): in function `opus_decode_close&#x27;:&#xA;/home/t/Desktop/Code/lib/ffmpeg/libavcodec/opusdec.c:607: undefined reference to `swr_free&#x27;&#xA;/usr/bin/ld: /usr/local/lib/libavcodec.a(opusdec.o): in function `opus_decode_init&#x27;:&#xA;/home/t/Desktop/Code/lib/ffmpeg/libavcodec/opusdec.c:660: undefined reference to `swr_alloc&#x27;&#xA;collect2: error: ld returned 1 exit status&#xA;make[2]: *** [CMakeFiles/Interview.dir/build.make:122: bin/Interview] Error 1&#xA;make[1]: *** [CMakeFiles/Makefile2:420: CMakeFiles/Interview.dir/all] Error 2&#xA;make: *** [Makefile:84: all] Error 2&#xA;

    &#xA;

    I find some questions with similar issues to no avail :

    &#xA;

    FFmpeg seems to be version conflict&#xA;Linking libavcodec and libavformat : Undefined references

    &#xA;

    NOTE : previously i tried downloading ffmpeg with home-brew and pkg-config maybe that is causing an error, but my guess is my cmake file is faulty.

    &#xA;

    project/CMakeLists :

    &#xA;

    cmake_minimum_required(VERSION 3.14)&#xA;&#xA;project(Interview C CXX)&#xA;set(CMAKE_CXX_STANDARD 14)&#xA;&#xA;SET( EXECUTABLE_OUTPUT_PATH ${dir}/bin )&#xA;set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin )&#xA;set( CMAKE_C_FLAGS "-lswresample")&#xA;&#xA;add_subdirectory(lib/ffmpeg)&#xA;&#xA;add_definitions(-DGL_SILENCE_DEPRECATION)&#xA;&#xA;list(APPEND SOURCES&#xA;    src/main.cpp&#xA;    src/vipch.h&#xA;    src/VideoDecoder.cpp&#xA;    src/VideoDecoder.h&#xA;    src/Application.cpp&#xA;    src/Application.h&#xA;    #src/OpenGLRenderer.cpp&#xA;    #src/OpenGLRenderer.h&#xA;    #src/Layer.h&#xA;    #src/Layer.cpp&#xA;)&#xA;&#xA;find_path(AVCODEC_INCLUDE_DIR libavcodec/avcodec.h)&#xA;find_library(AVCODEC_LIBRARY avcodec)&#xA;&#xA;find_path(AVFORMAT_INCLUDE_DIR libavformat/avformat.h)&#xA;find_library(AVFORMAT_LIBRARY avformat)&#xA;&#xA;find_path(AVDEVICE_INCLUDE_DIR libavdevice/avdevice.h)&#xA;find_library(AVDEVICE_LIBRARY avdevice)&#xA;&#xA;find_path(AVCODEC_INCLUDE_DIR libavcodec/avcodec.h)&#xA;find_library(AVCODEC_LIBRARY avcodec)&#xA;&#xA;set(THREADS_PREFER_PTHREAD_FLAG ON)&#xA;find_package(Threads REQUIRED)&#xA;&#xA;add_executable(Interview src/main.cpp src/Application.cpp src/Application.h ${SOURCES})&#xA;&#xA;target_link_libraries(Interview PRIVATE Threads::Threads)&#xA;&#xA;if(APPLE)&#xA;    list(APPEND EXTRA_LIBS&#xA;        "-framework OpenGL"&#xA;    )&#xA;&#xA;    configure_file(&#xA;        ${CMAKE_CURRENT_SOURCE_DIR}/assets/MacOSXBundleInfo.plist.in&#xA;        ${CMAKE_CURRENT_BINARY_DIR}/assets/MacOSXBundleInfo.plist&#xA;    )&#xA;&#xA;    set_target_properties(Interview PROPERTIES&#xA;        MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_BINARY_DIR}/assets/MacOSXBundleInfo.plist&#xA;    )&#xA;&#xA;elseif(WIN32)&#xA;    list(APPEND EXTRA_LIBS&#xA;        "-lglu32 -lopengl32"&#xA;    )&#xA;    set(CMAKE_EXE_LINKER_FLAGS "-std=gnu99 -static -static-libgcc -static-libstdc&#x2B;&#x2B; -mwindows")&#xA;&#xA;endif()&#xA;&#xA;list(APPEND EXTRA_LIBS&#xA;"-lGL -lGLU -lX11 -lz -lva -lswresample"&#xA;)&#xA;&#xA;find_package(OpenGL REQUIRED)&#xA;find_package(GLEW REQUIRED)&#xA;&#xA;#target_link_libraries(Interview ${CORELIBS})&#xA;&#xA;&#xA;target_include_directories(Interview PRIVATE &#xA;    ${AVCODEC_INCLUDE_DIR} &#xA;    ${AVFORMAT_INCLUDE_DIR}&#xA;    ${AVUTIL_INCLUDE_DIR}&#xA;    ${AVDEVICE_INCLUDE_DIR} &#xA;    ${OPENGL_INCLUDE_DIR}&#xA;    ${GLEW_INCLUDE_DIRS}&#xA;)&#xA;&#xA;target_link_libraries(Interview PRIVATE &#xA;    ${AVCODEC_LIBRARY} &#xA;    ${AVFORMAT_LIBRARY} &#xA;    ${AVUTIL_LIBRARY} &#xA;    ${AVDEVICE_LIBRARY} &#xA;    ${OPENGL_LIBRARY}&#xA;    ${GLEW_LIBRARIES}&#xA;)&#xA;

    &#xA;

    NOTE : i previously had a really similar error with pthread but with some fixes to cmake and installing pthread i fixed it.

    &#xA;

    project/lib/ffmpeg/CMakeLists :

    &#xA;

    cmake_minimum_required(VERSION 3.15)&#xA;&#xA;project(FFMPEG C CXX)&#xA;&#xA;add_library(ffmpeg_config INTERFACE)&#xA;&#xA;#TODO:[cmake] COMMON DEFINES (config.h)&#xA;# create list with all that and then pick required from that list in each target&#xA;target_compile_definitions(ffmpeg_config INTERFACE FFMPEG_CONFIGURATION="")&#xA;target_compile_definitions(ffmpeg_config INTERFACE FFMPEG_DATADIR="")&#xA;target_compile_definitions(ffmpeg_config INTERFACE AVCONV_DATADIR="")&#xA;target_compile_definitions(ffmpeg_config INTERFACE FFMPEG_LICENSE="")&#xA;&#xA;target_compile_definitions(ffmpeg_config INTERFACE CC_IDENT="")&#xA;&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_THREADS=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_PTHREADS=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_W32THREADS=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_OS2THREADS=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_ISNAN=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_MMXEXT=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_MMX2=HAVE_MMXEXT)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_MMX2=HAVE_MMXEXT)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_MMX_INLINE=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_MMX=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_AV_CONFIG_H=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_ALTIVEC=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_MMXEXT_INLINE=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_NEON=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_AMD3DNOW_INLINE=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_X86ASM=0)&#xA;if(WIN32)&#xA;    target_compile_definitions(ffmpeg_config INTERFACE HAVE_MKSTEMP=0)&#xA;else()&#xA;    target_compile_definitions(ffmpeg_config INTERFACE HAVE_MKSTEMP=1)&#xA;endif()&#xA;&#xA;&#xA;#TODO:[cmake] detect each function and set to 0 if missing (they are in math.h)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_CBRT=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_CBRTF=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_COPYSIGN=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_ERF=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_HYPOT=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_RINT=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_LRINT=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_LRINTF=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_ROUND=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_ROUNDF=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_TRUNC=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE HAVE_TRUNCF=1)&#xA;&#xA;&#xA;target_link_libraries(ffmpeg_config INTERFACE ffmpeg_compat)&#xA;&#xA;include (TestBigEndian)&#xA;TEST_BIG_ENDIAN(IS_BIG_ENDIAN)&#xA;if(IS_BIG_ENDIAN)&#xA;    target_compile_definitions(ffmpeg_config INTERFACE HAVE_BIGENDIAN=1)&#xA;else()&#xA;    target_compile_definitions(ffmpeg_config INTERFACE HAVE_BIGENDIAN=0)&#xA;endif()&#xA;&#xA;target_compile_definitions(ffmpeg_config INTERFACE av_restrict=)&#xA;&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_THIS_YEAR=2021)&#xA;&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_MEMORY_POISONING=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_FRAME_THREAD_ENCODER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_MEMORY_POISONING=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_GRAY=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_ERROR_RESILIENCE=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_MPEGVIDEODEC=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_SMALL=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_H264_D3D11VA_HWACCEL=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_H264_DXVA2_HWACCEL=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_H264_NVDEC_HWACCEL=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_H264_VAAPI_HWACCEL=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_H264_VIDEOTOOLBOX_HWACCEL=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_H264_VDPAU_HWACCEL=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_NETWORK=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_XVMC=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_FORMAT_FILTER=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_PNG_DECODER=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_APNG_DECODER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_INFLATE_WRAPPER=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_DEFLATE_WRAPPER=1)&#xA;&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_AVUTIL=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_AVCODEC=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_AVFORMAT=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_AVDEVICE=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_SWSCALE=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_SWRESAMPLE=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_POSTPROC=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_AVFILTER=1)&#xA;&#xA;&#xA;&#xA;#CONFIG MUXERS&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_H264_MUXER=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE2_MUXER=1)&#xA;&#xA;#CONFIG DEMUXERS&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE2_DEMUXER=1)&#xA;&#xA;# look at the end of libavformat/img2dec.c file&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_BMP_PIPE_DEMUXER=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_CRI_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_DDS_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_DPX_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_EXR_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_GEM_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_GIF_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_J2K_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_JPEG_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_JPEGLS_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_PAM_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_PBM_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_PCX_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_PGM_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_PGX_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_PHOTOCD_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_PICTOR_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_PNG_PIPE_DEMUXER=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_PPM_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_PSD_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_QDRAW_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_SGI_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_SVG_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_TIFF_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_WEBP_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_XBM_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_XPM_PIPE_DEMUXER=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_IMAGE_XWD_PIPE_DEMUXER=0)&#xA;&#xA;&#xA;#CONFIG PROTOCOLS&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_FILE_PROTOCOL=1)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_PIPE_PROTOCOL=1)&#xA;&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_ZLIB=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE CONFIG_SWSCALE_ALPHA=0)&#xA;&#xA;target_compile_definitions(ffmpeg_config INTERFACE ARCH_X86_32=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE ARCH_X86_64=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE ARCH_AARCH64=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE ARCH_ARM=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE ARCH_PPC=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE ARCH_X86=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE ARCH_MIPS=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE ARCH_ALPHA=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE ARCH_LOONGARCH=0)&#xA;target_compile_definitions(ffmpeg_config INTERFACE ARCH_LOONGARCH64=0)&#xA;&#xA;target_compile_definitions(ffmpeg_config INTERFACE SWS_MAX_FILTER_SIZE=256)&#xA;&#xA;#_________________________WARNINGS__________________________________________&#xA;#TODO[cmake]: set it for all targets individually or remove for WARNING HELL&#xA;if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")&#xA;    add_compile_options("-w")&#xA;endif()&#xA;&#xA;if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")&#xA;    add_compile_options("-w")&#xA;endif()&#xA;&#xA;if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")&#xA;    cmake_policy(SET CMP0092 NEW) #cmake disable std MSVC warnings in CMAKE_C_FLAGS&#xA;    #CMAKE_DEPFILE_FLAGS_C var in windows contains only /showIncludes and produce include tree&#xA;    set(CMAKE_DEPFILE_FLAGS_C "") #erase it&#xA;    add_compile_options("/w")&#xA;endif()&#xA;&#xA;file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/include/config.h "//cmake config will define all that")&#xA;target_include_directories(ffmpeg_config INTERFACE ${CMAKE_CURRENT_BINARY_DIR}/include)&#xA;&#xA;#TODO[cmake]: resolve config_components.h&#xA;file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/include/config_components.h "//")&#xA;target_include_directories(ffmpeg_config INTERFACE ${CMAKE_CURRENT_BINARY_DIR}/include)&#xA;&#xA;add_subdirectory(compat)&#xA;add_subdirectory(libavutil)&#xA;add_subdirectory(libavcodec)&#xA;add_subdirectory(libavformat)&#xA;add_subdirectory(libavdevice)&#xA;add_subdirectory(libavfilter)&#xA;add_subdirectory(libswresample)&#xA;add_subdirectory(libswscale)&#xA;add_subdirectory(libpostproc)&#xA;&#xA;add_subdirectory(fftools)&#xA;&#xA;add_subdirectory(doc/examples)&#xA;&#xA;&#xA;find_path(AVCODEC_INCLUDE_DIR libavcodec/avcodec.h)&#xA;find_library(AVCODEC_LIBRARY avcodec)&#xA;&#xA;find_path(AVFORMAT_INCLUDE_DIR libavformat/avformat.h)&#xA;find_library(AVFORMAT_LIBRARY avformat)&#xA;&#xA;find_path(AVDEVICE_INCLUDE_DIR libavdevice/avdevice.h)&#xA;find_library(AVDEVICE_LIBRARY avdevice)&#xA;&#xA;find_path(AVCODEC_INCLUDE_DIR libavcodec/avcodec.h)&#xA;find_library(AVCODEC_LIBRARY avcodec)&#xA;&#xA;if(APPLE)&#xA;    list(APPEND EXTRA_LIBS&#xA;        "-framework OpenGL"&#xA;    )&#xA;&#xA;    configure_file(&#xA;        ${CMAKE_CURRENT_SOURCE_DIR}/assets/MacOSXBundleInfo.plist.in&#xA;        ${CMAKE_CURRENT_BINARY_DIR}/assets/MacOSXBundleInfo.plist&#xA;    )&#xA;&#xA;    set_target_properties(FFMPEG PROPERTIES&#xA;        MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_BINARY_DIR}/assets/MacOSXBundleInfo.plist&#xA;    )&#xA;&#xA;elseif(WIN32)&#xA;    list(APPEND EXTRA_LIBS&#xA;        "-lglu32 -lopengl32"&#xA;    )&#xA;    set(CMAKE_EXE_LINKER_FLAGS "-std=gnu99 -static -static-libgcc -static-libstdc&#x2B;&#x2B; -mwindows")&#xA;else()&#xA;    list(APPEND EXTRA_LIBS&#xA;        "-lGL -lGLU -lX11"&#xA;    )&#xA;endif()&#xA;&#xA;&#xA;#target_link_libraries(Interview ${CORELIBS})&#xA;&#xA;set( CMAKE_C_FLAGS "-lswresample")&#xA;&#xA;list(APPEND EXTRA_LIBS&#xA;"-lGL -lGLU -lX11 -lz -lva -lswresample"&#xA;)&#xA;&#xA;target_include_directories(ffmpeg_config INTERFACE&#xA;    ${AVCODEC_INCLUDE_DIR} &#xA;    ${AVFORMAT_INCLUDE_DIR}&#xA;    ${AVUTIL_INCLUDE_DIR}&#xA;    ${AVDEVICE_INCLUDE_DIR} &#xA;    ${OPENGL_INCLUDE_DIR}&#xA;    ${GLEW_INCLUDE_DIRS}&#xA;)&#xA;&#xA;target_link_libraries(ffmpeg_config INTERFACE&#xA;    ${AVCODEC_LIBRARY} &#xA;    ${AVFORMAT_LIBRARY} &#xA;    ${AVUTIL_LIBRARY} &#xA;    ${AVDEVICE_LIBRARY} &#xA;    ${OPENGL_LIBRARY}&#xA;    ${GLEW_LIBRARIES}&#xA;)&#xA;

    &#xA;

    Ubuntu 22.04, cmake 3.16.3, ffmpeg version git-2022-05-20-cb47f66

    &#xA;