Recherche avancée

Médias (91)

Autres articles (112)

  • Soumettre améliorations et plugins supplémentaires

    10 avril 2011

    Si vous avez développé une nouvelle extension permettant d’ajouter une ou plusieurs fonctionnalités utiles à MediaSPIP, faites le nous savoir et son intégration dans la distribution officielle sera envisagée.
    Vous pouvez utiliser la liste de discussion de développement afin de le faire savoir ou demander de l’aide quant à la réalisation de ce plugin. MediaSPIP étant basé sur SPIP, il est également possible d’utiliser le liste de discussion SPIP-zone de SPIP pour (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Ajouter notes et légendes aux images

    7 février 2011, par

    Pour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
    Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
    Modification lors de l’ajout d’un média
    Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)

Sur d’autres sites (2894)

  • Ffmpeg - Reading header information takes too long

    13 mars 2023, par Md Yeamin

    I am using ffmpeg-kit to encode videos on android devices. For some files ffmpeg takes too long to read the header information. This issue happens very randomly. Sometime the execution completes within 1 or 2 seconds, sometime it takes longer than 10 seconds to complete, for the file linked below.

    


    I have build ffmpeg to log some additional info to figure out the root cause. There is a 10s gap between the log output at 15:17:02.276 and 15:17:12.909 (added a separator for quick find). After completion of the mov_read_ftyp there is a long delay before the mov_read_dref method starts the execution. Is there any other method that executed in between and could take this much long time to complete the execution ? What could be the reason behind the delay ?

    


    Here is detailed log about the issue.

    


    Log :

    


    2023-03-12 15:17:02.096 :: ffmpeg-kit-debug: execute:
2023-03-12 15:17:02.116 :: ffmpeg-kit-debug: LogCallback: setjmp
2023-03-12 15:17:02.120 :: ffmpeg-kit-debug: LogCallback: setjmp done
2023-03-12 15:17:02.124 :: ffmpeg-kit-debug: LogCallback: ffmpeg_var_cleanup
2023-03-12 15:17:02.127 :: ffmpeg-kit-debug: LogCallback: ffmpeg_var_cleanup done
2023-03-12 15:17:02.132 :: ffmpeg-kit-debug: LogCallback: init_dynload
2023-03-12 15:17:02.135 :: ffmpeg-kit-debug: LogCallback: init_dynload done
2023-03-12 15:17:02.137 :: ffmpeg-kit-debug: LogCallback: register_exit
2023-03-12 15:17:02.141 :: ffmpeg-kit-debug: LogCallback: register_exit done
2023-03-12 15:17:02.144 :: ffmpeg-kit-debug: LogCallback: avdevice_register_all
2023-03-12 15:17:02.151 :: ffmpeg-kit-debug: LogCallback: avdevice_register_all done
2023-03-12 15:17:02.155 :: ffmpeg-kit-debug: LogCallback: avformat_network_init
2023-03-12 15:17:02.159 :: ffmpeg-kit-debug: LogCallback: avformat_network_init done
2023-03-12 15:17:02.163 :: ffmpeg-kit-debug: LogCallback: show_banner
2023-03-12 15:17:02.165 :: ffmpeg-kit-debug: LogCallback: show_banner done
2023-03-12 15:17:02.169 :: ffmpeg-kit-debug: LogCallback: ffmpeg_parse_options
2023-03-12 15:17:02.172 :: ffmpeg-kit-debug: LogCallback: allocating memory
2023-03-12 15:17:02.176 :: ffmpeg-kit-debug: LogCallback: split_commandline
2023-03-12 15:17:02.179 :: ffmpeg-kit-debug: LogCallback: Splitting the commandline.

2023-03-12 15:17:02.182 :: ffmpeg-kit-debug: LogCallback: Reading option '-hide_banner' ...
2023-03-12 15:17:02.184 :: ffmpeg-kit-debug: LogCallback:  matched as option 'hide_banner' (do not show program banner) with argument '1'.

2023-03-12 15:17:02.187 :: ffmpeg-kit-debug: LogCallback: Reading option '-y' ...
2023-03-12 15:17:02.189 :: ffmpeg-kit-debug: LogCallback:  matched as option 'y' (overwrite output files) with argument '1'.

2023-03-12 15:17:02.193 :: ffmpeg-kit-debug: LogCallback: Reading option '-i' ...
2023-03-12 15:17:02.197 :: ffmpeg-kit-debug: LogCallback:  matched as input url with argument 'saf:6.MP4'.

2023-03-12 15:17:02.199 :: ffmpeg-kit-debug: LogCallback: Finished splitting the commandline.

2023-03-12 15:17:02.202 :: ffmpeg-kit-debug: LogCallback: split_commandline done
2023-03-12 15:17:02.203 :: ffmpeg-kit-debug: LogCallback: parse_optgroup
2023-03-12 15:17:02.205 :: ffmpeg-kit-debug: LogCallback: Parsing a group of options: global .

2023-03-12 15:17:02.207 :: ffmpeg-kit-debug: LogCallback: Applying option hide_banner (do not show program banner) with argument 1.

2023-03-12 15:17:02.210 :: ffmpeg-kit-debug: LogCallback: Applying option y (overwrite output files) with argument 1.

2023-03-12 15:17:02.212 :: ffmpeg-kit-debug: LogCallback: Successfully parsed a group of options.

2023-03-12 15:17:02.217 :: ffmpeg-kit-debug: LogCallback: parse_optgroup done
2023-03-12 15:17:02.220 :: ffmpeg-kit-debug: LogCallback: term_init
2023-03-12 15:17:02.224 :: ffmpeg-kit-debug: LogCallback: term_init done
2023-03-12 15:17:02.226 :: ffmpeg-kit-debug: LogCallback: open_files INPUT
2023-03-12 15:17:02.228 :: ffmpeg-kit-debug: LogCallback: Parsing a group of options: input url saf:6.MP4.

2023-03-12 15:17:02.232 :: ffmpeg-kit-debug: LogCallback: Successfully parsed a group of options.

2023-03-12 15:17:02.236 :: ffmpeg-kit-debug: LogCallback: Opening an input file: saf:6.MP4.

2023-03-12 15:17:02.239 :: ffmpeg-kit-debug: LogCallback: [NULL @ 0xb40000730dd9dbf0] Opening 'saf:6.MP4' for reading

2023-03-12 15:17:02.243 :: ffmpeg-kit-debug: LogCallback: [saf @ 0xb40000728de0ca10] Setting default whitelist 'saf,crypto,data'

2023-03-12 15:17:02.245 :: ffmpeg-kit-debug: LogCallback: fd_open start
2023-03-12 15:17:02.248 :: ffmpeg-kit-debug: LogCallback: fd_open opening
2023-03-12 15:17:02.252 :: ffmpeg-kit-debug: LogCallback: fd_open opened
2023-03-12 15:17:02.255 :: ffmpeg-kit-debug: LogCallback: mov_probe
2023-03-12 15:17:02.257 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100

2023-03-12 15:17:02.260 :: ffmpeg-kit-debug: LogCallback: mov_read_header
2023-03-12 15:17:02.264 :: ffmpeg-kit-debug: LogCallback: mov_read_header seeking
2023-03-12 15:17:02.268 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] ISO: File Type Major Brand: mp41

2023-03-12 15:17:02.270 :: ffmpeg-kit-debug: LogCallback: mov_read_ftyp dict set
2023-03-12 15:17:02.273 :: ffmpeg-kit-debug: LogCallback: mov_read_ftyp mov_aaxc_crypto before
2023-03-12 15:17:02.276 :: ffmpeg-kit-debug: LogCallback: mov_read_ftyp mov_aaxc_crypto done
-----------------------------------------------------------------------------------------------
2023-03-12 15:17:12.909 :: ffmpeg-kit-debug: LogCallback: mov_read_dref started
2023-03-12 15:17:12.911 :: ffmpeg-kit-debug: LogCallback: mov_read_dref check entries
2023-03-12 15:17:12.915 :: ffmpeg-kit-debug: LogCallback: mov_read_dref drefs_count 0 
2023-03-12 15:17:12.918 :: ffmpeg-kit-debug: LogCallback: mov_read_dref av_free sc->drefs
2023-03-12 15:17:12.920 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] Unknown dref type 0x73696c61 size 12

2023-03-12 15:17:12.923 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] Processing st: 0, edit list 0 - media time: 0, duration: 39436397

2023-03-12 15:17:12.925 :: ffmpeg-kit-debug: LogCallback: mov_read_dref started
2023-03-12 15:17:12.931 :: ffmpeg-kit-debug: LogCallback: mov_read_dref check entries
2023-03-12 15:17:12.935 :: ffmpeg-kit-debug: LogCallback: mov_read_dref drefs_count 0 
2023-03-12 15:17:12.938 :: ffmpeg-kit-debug: LogCallback: mov_read_dref av_free sc->drefs
2023-03-12 15:17:12.945 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] Unknown dref type 0x73696c61 size 12

2023-03-12 15:17:12.951 :: ffmpeg-kit-debug: LogCallback: mov_read_dref started
2023-03-12 15:17:12.958 :: ffmpeg-kit-debug: LogCallback: mov_read_dref check entries
2023-03-12 15:17:12.965 :: ffmpeg-kit-debug: LogCallback: mov_read_dref drefs_count 0 
2023-03-12 15:17:12.971 :: ffmpeg-kit-debug: LogCallback: mov_read_dref av_free sc->drefs
2023-03-12 15:17:12.975 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] Unknown dref type 0x73696c61 size 12

2023-03-12 15:17:12.978 :: ffmpeg-kit-debug: LogCallback: mov_read_dref started
2023-03-12 15:17:12.985 :: ffmpeg-kit-debug: LogCallback: mov_read_dref check entries
2023-03-12 15:17:12.988 :: ffmpeg-kit-debug: LogCallback: mov_read_dref drefs_count 0 
2023-03-12 15:17:12.990 :: ffmpeg-kit-debug: LogCallback: mov_read_dref av_free sc->drefs
2023-03-12 15:17:12.992 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] Unknown dref type 0x73696c61 size 12

2023-03-12 15:17:12.994 :: ffmpeg-kit-debug: LogCallback: mov_read_dref started
2023-03-12 15:17:12.996 :: ffmpeg-kit-debug: LogCallback: mov_read_dref check entries
2023-03-12 15:17:12.997 :: ffmpeg-kit-debug: LogCallback: mov_read_dref drefs_count 0 
2023-03-12 15:17:12.999 :: ffmpeg-kit-debug: LogCallback: mov_read_dref av_free sc->drefs
2023-03-12 15:17:13.002 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] Unknown dref type 0x73696c61 size 12

2023-03-12 15:17:13.003 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] All samples in data stream index:id [4:5] have zero duration, stream set to be discarded by default. Override using AVStream->discard or -discard for ffmpeg command.

2023-03-12 15:17:13.006 :: ffmpeg-kit-debug: LogCallback: mov_read_header seek done
2023-03-12 15:17:13.008 :: ffmpeg-kit-debug: LogCallback: mov_read_header parse done
2023-03-12 15:17:13.010 :: ffmpeg-kit-debug: LogCallback: mov_read_header trex data read done
2023-03-12 15:17:13.011 :: ffmpeg-kit-debug: LogCallback: mov_read_header bitrate calculation code
2023-03-12 15:17:13.013 :: ffmpeg-kit-debug: LogCallback: mov_read_header fps calculation done
2023-03-12 15:17:13.015 :: ffmpeg-kit-debug: LogCallback: mov_read_header read side data done
2023-03-12 15:17:13.017 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] Before avformat_find_stream_info() pos: 3720541874 bytes read:3720541874 seeks:0 nb_streams:5

2023-03-12 15:17:13.019 :: ffmpeg-kit-debug: LogCallback: [h264 @ 0xb40000731df00bc0] nal_unit_type: 7(SPS), nal_ref_idc: 1

2023-03-12 15:17:13.022 :: ffmpeg-kit-debug: LogCallback: [h264 @ 0xb40000731df00bc0] nal_unit_type: 8(PPS), nal_ref_idc: 1

2023-03-12 15:17:13.024 :: ffmpeg-kit-debug: LogCallback: fd_seek start
2023-03-12 15:17:13.028 :: ffmpeg-kit-debug: LogCallback: fd_seek seeking
2023-03-12 15:17:13.030 :: ffmpeg-kit-debug: LogCallback: fd_seek seek done
2023-03-12 15:17:13.033 :: ffmpeg-kit-debug: LogCallback: [h264 @ 0xb40000731df00bc0] nal_unit_type: 7(SPS), nal_ref_idc: 1

2023-03-12 15:17:13.035 :: ffmpeg-kit-debug: LogCallback: [h264 @ 0xb40000731df00bc0] nal_unit_type: 8(PPS), nal_ref_idc: 1

2023-03-12 15:17:13.038 :: ffmpeg-kit-debug: LogCallback: [h264 @ 0xb40000731df00bc0] nal_unit_type: 9(AUD), nal_ref_idc: 0

2023-03-12 15:17:13.042 :: ffmpeg-kit-debug: LogCallback: [h264 @ 0xb40000731df00bc0] nal_unit_type: 5(IDR), nal_ref_idc: 1

2023-03-12 15:17:13.047 :: ffmpeg-kit-debug: LogCallback: [h264 @ 0xb40000731df00bc0] Format yuvj420p chosen by get_format().

2023-03-12 15:17:13.059 :: ffmpeg-kit-debug: LogCallback: [h264 @ 0xb40000731df00bc0] Reinit context to 1920x1088, pix_fmt: yuvj420p

2023-03-12 15:17:13.066 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] All info found

2023-03-12 15:17:13.071 :: ffmpeg-kit-debug: LogCallback: fd_seek start
2023-03-12 15:17:13.075 :: ffmpeg-kit-debug: LogCallback: fd_seek size check error
2023-03-12 15:17:13.077 :: ffmpeg-kit-debug: LogCallback: fd_seek start
2023-03-12 15:17:13.081 :: ffmpeg-kit-debug: LogCallback: fd_seek size check error
2023-03-12 15:17:13.087 :: ffmpeg-kit-debug: LogCallback: fd_seek start
2023-03-12 15:17:13.090 :: ffmpeg-kit-debug: LogCallback: fd_seek size check error
2023-03-12 15:17:13.093 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] After avformat_find_stream_info() pos: 323745 bytes read:3720930284 seeks:1 frames:3

2023-03-12 15:17:13.096 :: ffmpeg-kit-debug: LogCallback: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'saf:6.MP4':

2023-03-12 15:17:13.099 :: ffmpeg-kit-debug: LogCallback:   Metadata:

2023-03-12 15:17:13.102 :: ffmpeg-kit-debug: LogCallback:     major_brand     : 
2023-03-12 15:17:13.108 :: ffmpeg-kit-debug: LogCallback: mp41
2023-03-12 15:17:13.110 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.113 :: ffmpeg-kit-debug: LogCallback:     minor_version   : 
2023-03-12 15:17:13.115 :: ffmpeg-kit-debug: LogCallback: 538120216
2023-03-12 15:17:13.119 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.121 :: ffmpeg-kit-debug: LogCallback:     compatible_brands: 
2023-03-12 15:17:13.124 :: ffmpeg-kit-debug: LogCallback: mp41
2023-03-12 15:17:13.127 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.129 :: ffmpeg-kit-debug: LogCallback:     creation_time   : 
2023-03-12 15:17:13.132 :: ffmpeg-kit-debug: LogCallback: 2022-02-06T13:53:53.000000Z
2023-03-12 15:17:13.136 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.138 :: ffmpeg-kit-debug: LogCallback:     firmware        : 
2023-03-12 15:17:13.140 :: ffmpeg-kit-debug: LogCallback: HD9.01.01.60.00
2023-03-12 15:17:13.142 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.144 :: ffmpeg-kit-debug: LogCallback:   Duration: 
2023-03-12 15:17:13.146 :: ffmpeg-kit-debug: LogCallback: 00:10:57.27
2023-03-12 15:17:13.149 :: ffmpeg-kit-debug: LogCallback: , start: 
2023-03-12 15:17:13.152 :: ffmpeg-kit-debug: LogCallback: 0.000000
2023-03-12 15:17:13.154 :: ffmpeg-kit-debug: LogCallback: , bitrate: 
2023-03-12 15:17:13.157 :: ffmpeg-kit-debug: LogCallback: 45284 kb/s
2023-03-12 15:17:13.159 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.161 :: ffmpeg-kit-debug: LogCallback:   Chapters:

2023-03-12 15:17:13.164 :: ffmpeg-kit-debug: LogCallback:     Chapter #0:0: 
2023-03-12 15:17:13.166 :: ffmpeg-kit-debug: LogCallback: start 619.735000, 
2023-03-12 15:17:13.169 :: ffmpeg-kit-debug: LogCallback: end 657.273000

2023-03-12 15:17:13.171 :: ffmpeg-kit-debug: LogCallback:   Stream #0:0
2023-03-12 15:17:13.174 :: ffmpeg-kit-debug: LogCallback: [0x1]
2023-03-12 15:17:13.175 :: ffmpeg-kit-debug: LogCallback: (eng)
2023-03-12 15:17:13.177 :: ffmpeg-kit-debug: LogCallback: , 1, 1/60000
2023-03-12 15:17:13.182 :: ffmpeg-kit-debug: LogCallback: : Video: h264, 1 reference frame (avc1 / 0x31637661), yuvj420p(pc, bt709, progressive, left), 1920x1080 (1920x1088) [SAR 1:1 DAR 16:9], 0/1, 45005 kb/s
2023-03-12 15:17:13.185 :: ffmpeg-kit-debug: LogCallback: , 
2023-03-12 15:17:13.189 :: ffmpeg-kit-debug: LogCallback: 59.94 fps, 
2023-03-12 15:17:13.192 :: ffmpeg-kit-debug: LogCallback: 59.94 tbr, 
2023-03-12 15:17:13.194 :: ffmpeg-kit-debug: LogCallback: 60k tbn
2023-03-12 15:17:13.197 :: ffmpeg-kit-debug: LogCallback:  (default)
2023-03-12 15:17:13.199 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.200 :: ffmpeg-kit-debug: LogCallback:     Metadata:

2023-03-12 15:17:13.203 :: ffmpeg-kit-debug: LogCallback:       creation_time   : 
2023-03-12 15:17:13.204 :: ffmpeg-kit-debug: LogCallback: 2022-02-06T13:53:53.000000Z
2023-03-12 15:17:13.206 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.209 :: ffmpeg-kit-debug: LogCallback:       handler_name    : 
2023-03-12 15:17:13.211 :: ffmpeg-kit-debug: LogCallback: GoPro AVC  
2023-03-12 15:17:13.213 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.216 :: ffmpeg-kit-debug: LogCallback:       vendor_id       : 
2023-03-12 15:17:13.219 :: ffmpeg-kit-debug: LogCallback: [0][0][0][0]
2023-03-12 15:17:13.220 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.223 :: ffmpeg-kit-debug: LogCallback:       encoder         : 
2023-03-12 15:17:13.225 :: ffmpeg-kit-debug: LogCallback: GoPro AVC encoder
2023-03-12 15:17:13.227 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.229 :: ffmpeg-kit-debug: LogCallback:   Stream #0:1
2023-03-12 15:17:13.231 :: ffmpeg-kit-debug: LogCallback: [0x2]
2023-03-12 15:17:13.233 :: ffmpeg-kit-debug: LogCallback: (eng)
2023-03-12 15:17:13.236 :: ffmpeg-kit-debug: LogCallback: , 1, 1/48000
2023-03-12 15:17:13.238 :: ffmpeg-kit-debug: LogCallback: : Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 189 kb/s
2023-03-12 15:17:13.240 :: ffmpeg-kit-debug: LogCallback:  (default)
2023-03-12 15:17:13.243 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.244 :: ffmpeg-kit-debug: LogCallback:     Metadata:

2023-03-12 15:17:13.247 :: ffmpeg-kit-debug: LogCallback:       creation_time   : 
2023-03-12 15:17:13.252 :: ffmpeg-kit-debug: LogCallback: 2022-02-06T13:53:53.000000Z
2023-03-12 15:17:13.255 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.257 :: ffmpeg-kit-debug: LogCallback:       handler_name    : 
2023-03-12 15:17:13.259 :: ffmpeg-kit-debug: LogCallback: GoPro AAC  
2023-03-12 15:17:13.262 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.264 :: ffmpeg-kit-debug: LogCallback:       vendor_id       : 
2023-03-12 15:17:13.268 :: ffmpeg-kit-debug: LogCallback: [0][0][0][0]
2023-03-12 15:17:13.271 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.274 :: ffmpeg-kit-debug: LogCallback:   Stream #0:2
2023-03-12 15:17:13.276 :: ffmpeg-kit-debug: LogCallback: [0x3]
2023-03-12 15:17:13.278 :: ffmpeg-kit-debug: LogCallback: (eng)
2023-03-12 15:17:13.280 :: ffmpeg-kit-debug: LogCallback: , 1, 1/60000
2023-03-12 15:17:13.281 :: ffmpeg-kit-debug: LogCallback: : Data: none (tmcd / 0x64636D74), 0/1
2023-03-12 15:17:13.284 :: ffmpeg-kit-debug: LogCallback:  (default)
2023-03-12 15:17:13.288 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.290 :: ffmpeg-kit-debug: LogCallback:     Metadata:

2023-03-12 15:17:13.291 :: ffmpeg-kit-debug: LogCallback:       creation_time   : 
2023-03-12 15:17:13.292 :: ffmpeg-kit-debug: LogCallback: 2022-02-06T13:53:53.000000Z
2023-03-12 15:17:13.294 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.296 :: ffmpeg-kit-debug: LogCallback:       handler_name    : 
2023-03-12 15:17:13.299 :: ffmpeg-kit-debug: LogCallback: GoPro TCD  
2023-03-12 15:17:13.302 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.306 :: ffmpeg-kit-debug: LogCallback:   Stream #0:3
2023-03-12 15:17:13.309 :: ffmpeg-kit-debug: LogCallback: [0x4]
2023-03-12 15:17:13.310 :: ffmpeg-kit-debug: LogCallback: (eng)
2023-03-12 15:17:13.313 :: ffmpeg-kit-debug: LogCallback: , 0, 1/1000
2023-03-12 15:17:13.316 :: ffmpeg-kit-debug: LogCallback: : Data: bin_data (gpmd / 0x646D7067), 0/1, 61 kb/s
2023-03-12 15:17:13.318 :: ffmpeg-kit-debug: LogCallback:  (default)
2023-03-12 15:17:13.320 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.322 :: ffmpeg-kit-debug: LogCallback:     Metadata:

2023-03-12 15:17:13.325 :: ffmpeg-kit-debug: LogCallback:       creation_time   : 
2023-03-12 15:17:13.327 :: ffmpeg-kit-debug: LogCallback: 2022-02-06T13:53:53.000000Z
2023-03-12 15:17:13.329 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.331 :: ffmpeg-kit-debug: LogCallback:       handler_name    : 
2023-03-12 15:17:13.335 :: ffmpeg-kit-debug: LogCallback: GoPro MET  
2023-03-12 15:17:13.337 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.339 :: ffmpeg-kit-debug: LogCallback:   Stream #0:4
2023-03-12 15:17:13.342 :: ffmpeg-kit-debug: LogCallback: [0x5]
2023-03-12 15:17:13.344 :: ffmpeg-kit-debug: LogCallback: (eng)
2023-03-12 15:17:13.345 :: ffmpeg-kit-debug: LogCallback: , 0, 1/60000
2023-03-12 15:17:13.347 :: ffmpeg-kit-debug: LogCallback: : Data: none (fdsc / 0x63736466), 0/1, 13 kb/s
2023-03-12 15:17:13.350 :: ffmpeg-kit-debug: LogCallback:  (default)
2023-03-12 15:17:13.352 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.354 :: ffmpeg-kit-debug: LogCallback:     Metadata:

2023-03-12 15:17:13.356 :: ffmpeg-kit-debug: LogCallback:       creation_time   : 
2023-03-12 15:17:13.359 :: ffmpeg-kit-debug: LogCallback: 2022-02-06T13:53:53.000000Z
2023-03-12 15:17:13.361 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.365 :: ffmpeg-kit-debug: LogCallback:       handler_name    : 
2023-03-12 15:17:13.369 :: ffmpeg-kit-debug: LogCallback: GoPro SOS  
2023-03-12 15:17:13.372 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.374 :: ffmpeg-kit-debug: LogCallback: Successfully opened the file.

2023-03-12 15:17:13.376 :: ffmpeg-kit-debug: LogCallback: open_files INPUT done
2023-03-12 15:17:13.378 :: ffmpeg-kit-debug: LogCallback: apply_sync_offsets
2023-03-12 15:17:13.382 :: ffmpeg-kit-debug: LogCallback: apply_sync_offsets done
2023-03-12 15:17:13.386 :: ffmpeg-kit-debug: LogCallback: init_complex_filters
2023-03-12 15:17:13.389 :: ffmpeg-kit-debug: LogCallback: init_complex_filters done
2023-03-12 15:17:13.391 :: ffmpeg-kit-debug: LogCallback: open_files OUTPUT
2023-03-12 15:17:13.392 :: ffmpeg-kit-debug: LogCallback: open_files OUTPUT done
2023-03-12 15:17:13.395 :: ffmpeg-kit-debug: LogCallback: check_filter_outputs
2023-03-12 15:17:13.397 :: ffmpeg-kit-debug: LogCallback: check_filter_outputs done
2023-03-12 15:17:13.399 :: ffmpeg-kit-debug: LogCallback: ffmpeg_parse_options done
2023-03-12 15:17:13.402 :: ffmpeg-kit-debug: LogCallback: At least one output file must be specified

2023-03-12 15:17:13.405 :: ffmpeg-kit-debug: LogCallback: [AVIOContext @ 0xb4000072dddd6510] Statistics: 3720930284 bytes read, 1 seeks

2023-03-12 15:17:13.407 :: ffmpeg-kit-debug: LogCallback: fd_close start
2023-03-12 15:17:13.410 :: ffmpeg-kit-debug: LogCallback: fd_close done
2023-03-12 15:17:13.412 :: ffmpeg-kit-debug: LogCallback: setjmp done


    


    Note : I have built ffmpeg-kit with the following script :

    


    #!/bin/bash

export ENCODERS="libvorbis,libvpx_vp8,libvpx_vp9,libx264,libx265,mpeg1video,mpeg2video,mpeg4,flv,wmv1,wmv2,msmpeg4v3,libaom_av1,\
h261,h263,theora,libtheora,png,aac,ac3,alac,libopencore_amrnb,libvo_amrwbenc,eac3,flac,mp2,libtwolame,libmp3lame,libopus,libspeex,wavpack,wmav1,wmav2,pcm_s16le,\
ssa,ass,dvbsub,dvdsub,movtext,srt,subrip,text,ttml,webvtt,xsub"

export SETTINGS="--disable-indevs \
  --enable-pthreads \
  --enable-indev=lavfi \
  --disable-outdevs \
  --disable-protocols \
  --enable-protocol=file,fd,saf,async \
  --disable-encoders \
  --enable-encoder=${ENCODERS}"

export CUSTOM_CONFIG=${SETTINGS}

./android.sh --disable-arm-v7a --disable-arm-v7a-neon --disable-x86 --disable-x86-64 --enable-android-media-codec --enable-android-zlib --enable-chromaprint --enable-dav1d --enable-fontconfig --enable-freetype --enable-fribidi --enable-gmp --enable-gnutls --enable-kvazaar --enable-lame --enable-libaom --enable-libass --enable-libiconv --enable-libilbc --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-opencore-amr --enable-openh264 --enable-opus --enable-sdl --enable-shine --enable-snappy --enable-soxr --enable-speex --enable-tesseract --enable-twolame --enable-vo-amrwbenc --enable-zimg --enable-x264 --enable-x265 --enable-gpl -l


    


    Sample file : https://drive.google.com/file/d/1lvCiOBQqBEnUECn_HJi8qUoaCPCBnkgO/view?usp=share_link

    


    Ffmpeg version : 5.1.

    


  • How to Check Website Traffic As Accurately As Possible

    18 août 2023, par Erin — Analytics Tips

    If you want to learn about the health of your website and the success of your digital marketing initiatives, there are few better ways than checking your website traffic. 

    It’s a great way to get a quick dopamine hit when things are up, but you can also use traffic levels to identify issues, learn more about your users or benchmark your performance. That means you need a reliable and easy way to check your website traffic over time — as well as a way to check out your competitors’ traffic levels, too. 

    In this article, we’ll show you how to do just that. You’ll learn how to check website traffic for both your and your competitor’s sites and discover why some methods of checking website traffic are better than others. 

    Why check website traffic ? 

    Dopamine hits aside, it’s important to constantly monitor your website’s traffic for several reasons.

    There are five reasons to check website traffic

    Benchmark site performance

    Keeping regular tabs on your traffic levels is a great way to track your website’s performance over time. It can help you plan for the future or identify problems. 

    For instance, growing traffic levels may mean expanding your business’s offering or investing in more inventory. On the flip side, decreasing traffic levels may suggest it’s time to revamp your marketing strategies or look into issues impacting your SEO. 

    Analyse user behaviour

    Checking website traffic and user behaviour lets marketing managers understand how users interact with your website. Which pages are they visiting ? Which CTAs do they click on ? What can you do to encourage users to take the actions you want ? You can also identify issues that lead to high bounce rates and other problems. 

    The better you understand user behaviour, the easier it will be to give them what they want. For example, you may find that users spend more time on your landing pages than they do your blog pages. You could use that information to revise how you create blog posts or focus on creating more landing pages. 

    Improve the user experience

    Once you understand how users behave on your website, you can use that information to fix errors, update your content and improve the user experience for the site. 

    You can even personalise the experience for customers, leading to significant growth. Research shows companies that grow faster derive 40% more of their revenue from personalisation. 

    That could come in the form of sweeping personalisations — like rearranging your website’s navigation bar based on user behaviour — or individual personalisation that uses analytics to transform sections or entire pages of your site based on user behaviour. 

    Optimise marketing strategies

    You can use website traffic reports to understand where users are coming from and optimise your marketing plan accordingly. You may want to double down on organic traffic, for instance, or invest more in PPC advertising. Knowing current traffic estimates and how these traffic levels have trended over time can help you benchmark your campaigns and prioritise your efforts. 

    Increasing traffic levels from other countries can also help you identify new marketing opportunities. If you start seeing significant traffic levels from a neighbouring country or a large market, it could be time to take your business international and launch a cross-border campaign. 

    Filter unwanted traffic

    A not-insignificant portion of your site’s traffic may be coming from bots and other unwanted sources. These can compromise the quality of your analytics and make it harder to draw insights. You may not be able to get rid of this traffic, but you can use analytics tools to remove it from your stats. 

    How to check website traffic on Matomo

    If you want to check your website’s traffic, you’d be forgiven for heading to Google Analytics first. It’s the most popular analytics tool on the market, after all. But if you want a more reliable assessment of your website’s traffic, then we recommend using Matomo alongside Google Analytics. 

    The Matomo web analytics platform is an open-source solution that helps you collect accurate data about your website’s traffic and make more informed decisions as a result — all while enhancing the customer experience and ensuring GDPR compliance and user privacy. 

    Matomo also offers multiple ways to check website traffic :

    Let’s look at all of them one by one. 

    The visits log report is a unique rundown of all of the individual visitors to your site. This offers a much more granular view than other tools that just show the total number of visitors for a given period. 

    The Visits log report is a unique rundown of your site's visitors

    You can access the visits log report by clicking on the reporting menu, then clicking Visitor and Visits Log. From there, you’ll be able to scroll through every user session and see the following information :

    • The location of the user
    • The total number of actions they took
    • The length of time on site
    • How they arrived at your site
    • And the device they used to access your site 

    This may be overwhelming if your site receives thousands of visitors at a time. But it’s a great way to understand users at an individual level and appreciate the lifetime activity of specific users. 

    The Real-time visitor map is a visual display of users’ location for a given timeframe. If you have an international website, it’s a fantastic way to see exactly where in the world your traffic comes from.

    Use the Real-time Map to see the location of users over a given timeframe

    You can access the Real-time Visitor Map by clicking Visitor in the main navigation menu and then Real-time Map. The map itself is colour-coded. Larger orange bubbles represent recent visits, and smaller dark orange and grey bubbles represent older visits. The map will refresh every five seconds, and new users appear with a flashing effect. 

    If you run TV or radio adverts, Matomo’s Real-time Map provides an immediate read on the effectiveness of your campaign. If your map lights up in the minutes following your ad, you know it’s been effective. It can also help you identify the source of bot attacks, too. 

    Finally, the Visits in Real-time report provides a snapshot of who is browsing your website. You can access this report under Visitors > Real-time and add it to your custom dashboards as a widget. 

    Open the report, and you’ll see the real-time flow of your site’s users and counters for visits and pageviews over the last 30 minutes and 24 hours. The report refreshes every five seconds with new users added to the top of the report with a fade-in effect.

    Use the Visits in Real-Time report to get a snapshot of your site's most recent visitors

    The report provides a snapshot of each visitor, including :

    • Whether they are new or a returning 
    • Their country
    • Their browser
    • Their operating system
    • The number of actions they took
    • The time they spent on the site
    • The channel they came in from
    • Whether the visitor converted a goal

    3 other ways to check website traffic

    You don’t need to use Matomo to check your website traffic. Here are three other tools you can use instead. 

    How to check website traffic on Google Analytics

    Google Analytics is usually the first starting point for anyone looking to check their website traffic. It’s free to use, incredibly popular and offers a wide range of traffic reports. 

    Google Analytics lets you break down historical traffic data almost any way you wish. You can split traffic by acquisition channel (organic, social media, direct, etc.) by country, device or demographic.

    Google Analytics can split website traffic by channel

    It also provides real-time traffic reports that give you a snapshot of users on your site right now and over the last 30 minutes. 

    Google Analytics 4 shows the number of users over the last 30 minutes

    Google Analytics may be one of the most popular ways to check website traffic, but it could be better. Google Analytics 4 is difficult to use compared to its predecessor, and it also limits the amount of data you can track in accordance with privacy laws. If users refuse your cookie consent, Google Analytics won’t record these visits. In other words, you aren’t getting a complete view of your traffic by using Google Analytics alone. 

    That’s why it’s important to use Google Analytics alongside other web analytics tools (like Matomo) that don’t suffer from the same privacy issues. That way, you can make sure you track every single user who visits your site. 

    How to check website traffic on Google Search Console

    Google Search Console is a free tool from Google that lets you analyse the search traffic that your site gets from Google. 

    The top-line report shows you how many times your website has appeared in Google Search, how many clicks it has received, the average clickthrough rate and the average position of your website in the search results. 

    Google Search Console is a great way to understand what you rank for and how much traffic your organic rankings generate. It will also show you which pages are indexed in Google and whether there are any crawling errors. 

    Unfortunately, Google Search Console is limited if you want to get a complete view of your traffic. While you can analyse search traffic in a huge amount of detail, it will not tell you how users who access your website directly or via social media behave. 

    How to check website traffic on Similarweb

    Similarweb is a website analysis tool that estimates the total traffic of any site on the internet. It is one of the best tools for estimating how much traffic your competitors receive. 

    What’s great about Similarweb is that it estimates total traffic, not just traffic from search engines like many SEO tools. It even breaks down traffic by different channels, allowing you to see how your website compares against your competitors. 

    As you can see from the image above, Similarweb provides an estimate of total visits, bounce rate, the average number of pages users view per visit and the average duration on the site. The company also has a free browser extension that lets you check website traffic estimates as you browse the web. 

    You can use Similarweb for free to a point. But to really get the most out of this tool, you’ll need to upgrade to a premium plan which starts at $125 per user per month. 

    The price isn’t the only downside of using Similarweb to check the traffic of your own and your competitor’s websites. Ultimately, Similarweb is only an estimate — even if it’s a reasonably accurate one — and it’s no match for a comprehensive analytics tool. 

    7 website traffic metrics to track

    Now that you know how to check your website’s traffic, you can start to analyse it. You can use plenty of metrics to assess the quality of your website traffic, but here are some of the most important metrics to track. 

    • New visitors : These are users who have never visited your website before. They are a great sign that your marketing efforts are working and your site is reaching more people. But it’s also important to track how they behave on the website to ensure your site caters effectively to new visitors. 
    • Returning visitors : Returning visitors are coming back to your site for a reason : either they like the content you’re creating or they want to make a purchase. Both instances are great. The more returning visitors, the better. 
    • Bounce rate : This is a measure of how many users leave your website without taking action. Different analytics tools measure this metric differently.
    • Session duration : This is the length of time users spend on your website, and it can be a great gauge of whether they find your site engaging. Especially when combined with the metric below. 
    • Pages per session : This measures how many different pages users visit on average. The more pages they visit and the longer users spend on your website, the more engaging it is. 
    • Traffic source : Traffic can come from a variety of sources (organic, direct, social media, referral, etc.) Tracking which sources generate the most traffic can help you analyse and prioritise your marketing efforts. 
    • User demographics : This broad metric tells you more about who the users are that visit your website, what device they use, what country they come from, etc. While the bulk of your website traffic will come from the countries you target, an influx of new users from other countries can open the door to new opportunities.

    Why do my traffic reports differ ?

    If you use more than one of the methods above to check your website traffic, you’ll quickly realise that every traffic report differs. In some cases, the reasons are obvious. Any tool that estimates your traffic without adding code to your website is just that : an estimate. Tools like Similarweb will never offer the accuracy of analytics platforms like Matomo and Google Analytics. 

    But what about the differences between these analytics platforms themselves ? While each platform has a different way of recording user behaviour, significant differences in website traffic reports between analytics platforms are usually a result of how each platform handles user privacy. 

    A platform like Google Analytics requires users to accept a cookie consent banner to track them. If they accept, great. Google collects all of the data that any other analytics platform does. It may even collect more. If users reject cookie consent banners, however, then Google Analytics can’t track these visitors at all. They simply won’t show up in your traffic reports. 

    That doesn’t happen with all analytics platforms, however. A privacy-focused alternative like Matomo doesn’t require cookie consent banners (apart from in the United Kingdom and Germany) and can therefore continue to track visitors even after they have rejected a cookie consent screen from Google Analytics. This means that virtually all of your website traffic will be tracked regardless of whether users accept a cookie consent banner or not. And it’s why traffic reports in Matomo are often much higher than they are in Google Analytics.

    Matomo doesn't need cookie consent, so you see a complete view of your traffic

    Given that around half (47.32%) of adults in the European Union refuse to allow the use of personal data tracking for advertising purposes and that 95% of people will reject additional cookies when it is easy to do so, this means you could have vastly different traffic reports — and be missing out on a significant amount of user data. 

    If you’re serious about using web analytics to improve your website and optimise your marketing campaigns, then it is essential to use another analytics platform alongside Google Analytics. 

    Get more accurate traffic reports with Matomo

    There are several methods to check website traffic. Some, like Similarweb, can provide estimates on your competitors’ traffic levels. Others, like Google Analytics, are free. But data doesn’t lie. Only privacy-focused analytics solutions like Matomo can provide accurate reports that account for every visitor. 

    Join over one million organisations using Matomo to accurately check their website traffic. Try it for free alongside GA today. No credit card required. 

  • Benefits and Shortcomings of Multi-Touch Attribution

    13 mars 2023, par Erin — Analytics Tips

    Few sales happen instantly. Consumers take their time to discover, evaluate and become convinced to go with your offer. 

    Multi-channel attribution (also known as multi-touch attribution or MTA) helps businesses better understand which marketing tactics impact consumers’ decisions at different stages of their buying journey. Then double down on what’s working to secure more sales. 

    Unlike standard analytics, multi-channel modelling combines data from various channels to determine their cumulative and independent impact on your conversion rates. 

    The main benefit of multi-touch attribution is obvious : See top-performing channels, as well as those involved in assisted conversions. The drawback of multi-touch attribution : It comes with a more complex setup process. 

    If you’re on the fence about getting started with multi-touch attribution, here’s a summary of the main arguments for and against it. 

    What Are the Benefits of Multi-Touch Attribution ?

    Remember an old parable of blind men and an elephant ?

    Each one touched the elephant and drew conclusions about how it might look. The group ended up with different perceptions of the animal and thought the others were lying…until they decided to work together on establishing the truth.

    Multi-channel analytics works in a similar way : It reconciles data from various channels and campaign types into one complete picture. So that you can get aligned on the efficacy of different campaign types and gain some other benefits too. 

    Better Understanding of Customer Journeys 

    On average, it takes 8 interactions with a prospect to generate a conversion. These interactions happen in three stages : 

    • Awareness : You need to introduce your company to the target buyers and pique their interest in your solution (top-of-the-funnel). 
    • Consideration : The next step is to channel this casual interest into deliberate research and evaluation of your offer (middle-of-the-funnel). 
    • Decision : Finally, you need to get the buyer to commit to your offer and close the deal (bottom-of-the-funnel). 

    You can analyse funnels using various attribution models — last-click, fist-click, position-based attribution, etc. Each model, however, will spotlight the different element(s) of your sales funnel. 

    For example, a single-touch attribution model like last-click zooms in on the bottom-of-the-funnel stage. You can evaluate which channels (or on-site elements) sealed the deal for the prospect. For example, a site visitor arrived from an affiliate link and started a free trial. In this case, the affiliate (referral traffic) gets 100% credit for the conversion. 

    This measurement tactic, however, doesn’t show which channels brought the customer to the very bottom of your funnel. For instance, they may have interacted with a social media post, your landing pages or a banner ad before that. 

    Multi-touch attribution modelling takes funnel analysis a notch further. In this case, you map more steps in the customer journey — actions, events, and pages that triggered a visitor’s decision to convert — in your website analytics tool.

    Funnels Report Matomo

    Then, select a multi-touch attribution model, which provides more backward visibility aka allows you to track more than one channel, preceding the conversion. 

    For example, a Position Based attribution model reports back on all interactions a site visitor had between their first visit and conversion. 

    A prospect first lands at your website via search results (Search traffic), which gets a 40% credit in this model. Two days later, the same person discovers a mention of your website on another blog and visits again (Referral traffic). This time, they save the page as a bookmark and revisit it again in two more days (Direct traffic). Each of these channels will get a 10% credit. A week later, the prospect lands again on your site via Twitter (Social) and makes a request for a demo. Social would then receive a 40% credit for this conversion. Last-click would have only credited social media and first-click — search engines. 

    The bottom line : Multi-channel attribution models show how different channels (and marketing tactics) contribute to conversions at different stages of the customer journey. Without it, you get an incomplete picture.

    Improved Budget Allocation 

    Understanding causal relationships between marketing activities and conversion rates can help you optimise your budgets.

    First-click/last-click attribution models emphasise the role of one channel. This can prompt you toward the wrong conclusions. 

    For instance, your Facebook ads campaigns do great according to a first-touch model. So you decide to increase the budget. What you might be missing though is that you could have an even higher conversion rate and revenue if you fix “funnel leaks” — address high drop-off rates during checkout, improve page layout and address other possible reasons for exiting the page.

    Matomo Customisable Goal Funnels
    Funnel reports at Matomo allow you to see how many people proceed to the next conversion stage and investigate why they drop off.

    By knowing when and why people abandon their purchase journey, you can improve your marketing velocity (aka the speed of seeing the campaign results) and your marketing costs (aka the budgets you allocate toward different assets, touchpoints and campaign types). 

    Or as one of the godfathers of marketing technology, Dan McGaw, explained in a webinar :

    “Once you have a multi-touch attribution model, you [can] actually know the return on ad spend on a per-campaign basis. Sometimes, you can get it down to keywords. Sometimes, you can get down to all kinds of other information, but you start to realise, “Oh, this campaign sucks. I should shut this off.” And then really, that’s what it’s about. It’s seeing those campaigns that suck and turning them off and then taking that budget and putting it into the campaigns that are working”.

    More Accurate Measurements 

    The big boon of multi-channel marketing attribution is that you can zoom in on various elements of your funnel and gain granular data on the asset’s performance. 

    In other words : You get more accurate insights into the different elements involved in customer journeys. But for accurate analytics measurements, you must configure accurate tracking. 

    Define your objectives first : How do you want a multi-touch attribution tool to help you ? Multi-channel attribution analysis helps you answer important questions such as :

    • How many touchpoints are involved in the conversions ? 
    • How long does it take for a lead to convert on average ? 
    • When and where do different audience groups convert ? 
    • What is your average win rate for different types of campaigns ?

    Your objectives will dictate which multi-channel modelling approach will work best for your business — as well as the data you’ll need to collect. 

    At the highest level, you need to collect two data points :

    • Conversions : Desired actions from your prospects — a sale, a newsletter subscription, a form submission, etc. Record them as tracked Goals
    • Touchpoints : Specific interactions between your brand and targets — specific page visits, referral traffic from a particular marketing channel, etc. Record them as tracked Events

    Your attribution modelling software will then establish correlation patterns between actions (conversions) and assets (touchpoints), which triggered them. 

    The accuracy of these measurements, however, will depend on the quality of data and the type of attribution modelling used. 

    Data quality stands for your ability to procure accurate, complete and comprehensive information from various touchpoints. For instance, some data won’t be available if the user rejected a cookie consent banner (unless you’re using a privacy-focused web analytics tool like Matomo). 

    Different attribution modelling techniques come with inherent shortcomings too as they don’t accurately represent the average sales cycle length or track visitor-level data, which allows you to understand which customer segments convert best.

    Learn more about selecting the optimal multi-channel attribution model for your business.

    What Are the Limitations of Multi-Touch Attribution ?

    Overall, multi-touch attribution offers a more comprehensive view of the conversion paths. However, each attribution model (except for custom ones) comes with inherent assumptions about the contribution of different channels (e.g,. 25%-25%-25%-25% in linear attribution or 40%-10%-10%-40% in position-based attribution). These conversion credit allocations may not accurately represent the realities of your industry. 

    Also, most attribution models don’t reflect incremental revenue you gain from existing customers, which aren’t converting through analysed channels. For example, account upgrades to a higher tier, triggered via an in-app offer. Or warranty upsell, made via a marketing email. 

    In addition, you should keep in mind several other limitations of multi-touch attribution software.

    Limited Marketing Mix Analysis 

    Multi-touch attribution tools work in conjunction with your website analytics app (as they draw most data from it). Because of that, such models inherit the same visibility into your marketing mix — a combo of tactics you use to influence consumer decisions.

    Multi-touch attribution tools cannot evaluate the impact of :

    • Dark social channels 
    • Word-of-mouth 
    • Offline promotional events
    • TV or out-of-home ad campaigns 

    If you want to incorporate this data into your multi-attribution reporting, you’ll have to procure extra data from other systems — CRM, ad measurement partners, etc, — and create complex custom analytics models for its evaluation.

    Time-Based Constraints 

    Most analytics apps provide a maximum 90-day lookback window for attribution. This can be short for companies with longer sales cycles. 

    Source : Marketing Charts

    Marketing channels can be overlooked or underappreciated when your attribution window is too short. Because of that, you may curtail spending on brand awareness campaigns, which, in turn, will reduce the number of people entering the later stages of your funnel. 

    At the same time, many businesses would also want to track a look-forward window — the revenue you’ll get from one customer over their lifetime. In this case, not all tools may allow you to capture accurate information on repeat conversions — through re-purchases, account tier updates, add-ons, upsells, etc. 

    Again, to get an accurate picture you’ll need to understand how far into the future you should track conversions. Will you only record your first sales as a revenue number or monitor customer lifetime value (CLV) over 3, 6 or 12 months ? 

    The latter is more challenging to do. But CLV data can add another depth of dimension to your modelling accuracy. With Matomo, you set up this type of tracking by using our visitors’ tracking feature. We can help you track select visitors with known identifiers (e.g. name or email address) to discover their visiting patterns over time. 

    Visitor User IDs in Matomo

    Limited Access to Raw Data 

    In web analytics, raw data stands for unprocessed website visitor information, stripped from any filters, segmentation or sampling applied. 

    Data sampling is a practice of analysing data subsets (instead of complete records) to extrapolate findings towards the entire data set. Google Analytics 4 applies data sampling once you hit over 500k sessions at the property level. So instead of accurate, real-life reporting, you receive approximations, generated by machine learning models. Data sampling is one of the main reasons behind Google Analytics’ accuracy issues

    In multi-channel attribution modelling, usage of sampled data creates further inconsistencies between the reports and the actual state of affairs. For instance, if your website generates 5 million page views, GA multi-touch analytical reports are based on the 500K sample size aka only 90% of the collected information. This hardly represents the real effect of all marketing channels and can lead to subpar decision-making. 

    With Matomo, the above is never an issue. We don’t apply data sampling to any websites (no matter the volume of traffic) and generate all the reports, including multi-channel attribution ones, based on 100% real user data. 

    AI Application 

    On the other hand, websites with smaller traffic volumes often have limited sampling datasets for building attribution models. Some tracking data may also be not available because the visitor rejected a cookie banner, for instance. On average, less than 50% of users in Australia, France, Germany, Denmark and the US among other countries always consent to all cookies. 

    To compensate for such scenarios, some multi-touch attribution solutions apply AI algorithms to “fill in the blanks”, which impacts the reporting accuracy. Once again, you get approximate data of what probably happened. However, Matomo is legally exempt from showing a cookie consent banner in most EU markets. Meaning you can collect 100% accurate data to make data-driven decisions.

    Difficult Technical Implementation 

    Ever since attribution modelling got traction in digital marketing, more and more tools started to emerge.

    Most web analytics apps include multi-touch attribution reports. Then there are standalone multi-channel attribution platforms, offering extra features for conversion rate optimization, offline channel tracking, data-driven custom modelling, etc. 

    Most advanced solutions aren’t available out of the box. Instead, you have to install several applications, configure integrations with requested data sources, and then use the provided interfaces to code together custom data models. Such solutions are great if you have a technical marketer or a data science team. But a steep learning curve and high setup costs make them less attractive for smaller teams. 

    Conclusion 

    Multi-touch attribution modelling lifts the curtain in more steps, involved in various customer journeys. By understanding which touchpoints contribute to conversions, you can better plan your campaign types and budget allocations. 

    That said, to benefit from multi-touch attribution modelling, marketers also need to do the preliminary work : Determine the key goals, set up event and conversion tracking, and then — select the optimal attribution model type and tool. 

    Matomo combines simplicity with sophistication. We provide marketers with familiar, intuitive interfaces for setting up conversion tracking across the funnel. Then generate attribution reports, based on 100% accurate data (without any sampling or “guesstimation” applied). You can also get access to raw analytics data to create custom attribution models or plug it into another tool ! 

    Start using accurate, easy-to-use multi-channel attribution with Matomo. Start your free 21-day trial now. No credit card requried.