Recherche avancée

Médias (91)

Autres articles (65)

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

  • Dépôt de média et thèmes par FTP

    31 mai 2013, par

    L’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
    Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...)

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

Sur d’autres sites (6079)

  • Decode MP4 h264 RTP Video Stream C++

    26 juin 2022, par laurrrr

    I want to send a mp4 video which is h264 encoded to another C++ Application and get raw video data.

    


    I'm sending rtp packets using ffmpeg using following command :

    


    ffmpeg -re -i video.mp4  -pix_fmt rgb24  -vcodec libx264 -b:v 10506k -bufsize 64000k -r 30.0 -f mp4 -f rtp rtp://192.168.1.101:4500?pkt_size=1316 


    


    and this is ffmpeg output after video has been played :

    


    Output #0, rtp, to 'rtp://192.168.1.101:4500?pkt_size=1316':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.29.100
    Stream #0:0(und): Video: h264 (libx264), yuv444p, 1280x720, q=-1--1, 10506 kb/s, 30 fps, 90k tbn, 30 tbc (default)
    Metadata:
      handler_name    : VideoHandler
      encoder         : Lavc58.54.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/10506000 buffer size: 64000000 vbv_delay: -1
SDP:
v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 192.168.1.101
t=0 0
a=tool:libavformat 58.29.100
m=video 4500 RTP/AVP 96
b=AS:10506
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1

frame= 1802 fps= 24 q=-1.0 Lsize=   78043kB time=00:00:59.96 bitrate=10661.4kbits/s speed=0.793x     
video:77209kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.080008%
[libx264 @ 0x55c75bcc0f00] frame I:8     Avg QP:20.85  size:175353
[libx264 @ 0x55c75bcc0f00] frame P:654   Avg QP:24.51  size: 68884
[libx264 @ 0x55c75bcc0f00] frame B:1140  Avg QP:30.52  size: 28604
[libx264 @ 0x55c75bcc0f00] consecutive B-frames: 12.9%  6.1%  6.7% 74.4%
[libx264 @ 0x55c75bcc0f00] mb I  I16..4: 20.2%  0.0% 79.8%
[libx264 @ 0x55c75bcc0f00] mb P  I16..4:  8.5%  0.0% 16.2%  P16..4: 31.2% 22.3% 11.2%  0.0%  0.0%    skip:10.7%
[libx264 @ 0x55c75bcc0f00] mb B  I16..4:  2.3%  0.0%  3.6%  B16..8: 42.1% 21.3%  6.3%  direct: 5.8%  skip:18.5%  L0:53.9% L1:27.7% BI:18.4%
[libx264 @ 0x55c75bcc0f00] coded y,u,v intra: 63.6% 18.5% 5.0% inter: 36.9% 3.5% 1.3%
[libx264 @ 0x55c75bcc0f00] i16 v,h,dc,p: 23% 30% 25% 22%
[libx264 @ 0x55c75bcc0f00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 23% 23%  6%  6%  5%  7%  4%  7%
[libx264 @ 0x55c75bcc0f00] Weighted P-Frames: Y:26.3% UV:10.4%
[libx264 @ 0x55c75bcc0f00] ref P L0: 67.4% 18.1% 10.9%  2.9%  0.7%
[libx264 @ 0x55c75bcc0f00] ref B L0: 97.4%  2.1%  0.5%
[libx264 @ 0x55c75bcc0f00] ref B L1: 98.8%  1.2%
[libx264 @ 0x55c75bcc0f00] kb/s:10529.89


    


    On my C++ Application I'm using a 3rd party rtp library for capturing rtp frames and this is what I get during video stream :

    


    TS = 4178129015 | RTP Payload = 96 | SeqNr = 618 | Len = 25
Payload Data : 
67 f4 0 20 91 9b 28 a 0 b7 42 0 0 3 0 2 0 0 3 0 
78 1e 30 63 2c 
TS = 4178129015 | RTP Payload = 96 | SeqNr = 618 | Len = 5
Payload Data : 
68 eb ec 44 80 
TS = 4178129015 | RTP Payload = 96 | SeqNr = 618 | Len = 760
Payload Data : 
6 5 ff ff f4 dc 45 e9 bd e6 d9 48 b7 96 2c d8 20 d9 23 ee 
ef 78 32 36 34 20 2d 20 63 6f 72 65 20 31 35 35 20 72 32 39 
31 37 20 30 61 38 34 64 39 38 20 2d 20 48 2e 32 36 34 2f 4d 
50 45 47 2d 34 20 41 56 43 20 63 6f 64 65 63 20 2d 20 43 6f 
70 79 6c 65 66 74 20 32 30 30 33 2d 32 30 31 38 20 2d 20 68 
74 74 70 3a 2f 2f 77 77 77 2e 76 69 64 65 6f 6c 61 6e 2e 6f 
72 67 2f 78 32 36 34 2e 68 74 6d 6c 20 2d 20 6f 70 74 69 6f 
6e 73 3a 20 63 61 62 61 63 3d 31 20 72 65 66 3d 33 20 64 65 
62 6c 6f 63 6b 3d 31 3a 30 3a 30 20 61 6e 61 6c 79 73 65 3d 
30 78 31 3a 30 78 31 31 31 20 6d 65 3d 68 65 78 20 73 75 62 
6d 65 3d 37 20 70 73 79 3d 31 20 70 73 79 5f 72 64 3d 31 2e 
30 30 3a 30 2e 30 30 20 6d 69 78 65 64 5f 72 65 66 3d 31 20 
6d 65 5f 72 61 6e 67 65 3d 31 36 20 63 68 72 6f 6d 61 5f 6d 
65 3d 31 20 74 72 65 6c 6c 69 73 3d 31 20 38 78 38 64 63 74 
3d 30 20 63 71 6d 3d 30 20 64 65 61 64 7a 6f 6e 65 3d 32 31 
2c 31 31 20 66 61 73 74 5f 70 73 6b 69 70 3d 31 20 63 68 72 
6f 6d 61 5f 71 70 5f 6f 66 66 73 65 74 3d 34 20 74 68 72 65 
61 64 73 3d 36 20 6c 6f 6f 6b 61 68 65 61 64 5f 74 68 72 65 
61 64 73 3d 31 20 73 6c 69 63 65 64 5f 74 68 72 65 61 64 73 
3d 30 20 6e 72 3d 30 20 64 65 63 69 6d 61 74 65 3d 31 20 69 
6e 74 65 72 6c 61 63 65 64 3d 30 20 62 6c 75 72 61 79 5f 63 
6f 6d 70 61 74 3d 30 20 63 6f 6e 73 74 72 61 69 6e 65 64 5f 
69 6e 74 72 61 3d 30 20 62 66 72 61 6d 65 73 3d 33 20 62 5f 
70 79 72 61 6d 69 64 3d 32 20 62 5f 61 64 61 70 74 3d 31 20 
62 5f 62 69 61 73 3d 30 20 64 69 72 65 63 74 3d 31 20 77 65 
69 67 68 74 62 3d 31 20 6f 70 65 6e 5f 67 6f 70 3d 30 20 77 
65 69 67 68 74 70 3d 32 20 6b 65 79 69 6e 74 3d 32 35 30 20 
6b 65 79 69 6e 74 5f 6d 69 6e 3d 32 35 20 73 63 65 6e 65 63 
75 74 3d 34 30 20 69 6e 74 72 61 5f 72 65 66 72 65 73 68 3d 
30 20 72 63 5f 6c 6f 6f 6b 61 68 65 61 64 3d 34 30 20 72 63 
3d 63 62 72 20 6d 62 74 72 65 65 3d 31 20 62 69 74 72 61 74 
65 3d 31 30 35 30 36 20 72 61 74 65 74 6f 6c 3d 31 2e 30 20 
71 63 6f 6d 70 3d 30 2e 36 30 20 71 70 6d 69 6e 3d 30 20 71 
70 6d 61 78 3d 36 39 20 71 70 73 74 65 70 3d 34 20 76 62 76 
5f 6d 61 78 72 61 74 65 3d 31 30 35 30 36 20 76 62 76 5f 62 
75 66 73 69 7a 65 3d 36 34 30 30 30 20 6e 61 6c 5f 68 72 64 
3d 6e 6f 6e 65 20 66 69 6c 6c 65 72 3d 30 20 69 70 5f 72 61 
74 69 6f 3d 31 2e 34 30 20 61 71 3d 31 3a 31 2e 30 30 0 80 
[rtplib][rtpPkt_Handler]Found a key frame at ts 4178129015

TS = 4178129015 | RTP Payload = 96 | SeqNr = 775 | Len = 203612
TS = 4178141015 | RTP Payload = 96 | SeqNr = 930 | Len = 201080
TS = 4178135015 | RTP Payload = 96 | SeqNr = 1021 | Len = 118373
TS = 4178132015 | RTP Payload = 96 | SeqNr = 1055 | Len = 44227
TS = 4178138015 | RTP Payload = 96 | SeqNr = 1102 | Len = 60864
TS = 4178153015 | RTP Payload = 96 | SeqNr = 1255 | Len = 198229
TS = 4178147015 | RTP Payload = 96 | SeqNr = 1350 | Len = 123610
TS = 4178144015 | RTP Payload = 96 | SeqNr = 1396 | Len = 59191
TS = 4178150015 | RTP Payload = 96 | SeqNr = 1442 | Len = 58868
TS = 4178165015 | RTP Payload = 96 | SeqNr = 1551 | Len = 141741
TS = 4178159015 | RTP Payload = 96 | SeqNr = 1614 | Len = 81817
TS = 4178156015 | RTP Payload = 96 | SeqNr = 1648 | Len = 43884
TS = 4178162015 | RTP Payload = 96 | SeqNr = 1681 | Len = 42230
TS = 4178177015 | RTP Payload = 96 | SeqNr = 1755 | Len = 95284
TS = 4178171015 | RTP Payload = 96 | SeqNr = 1792 | Len = 47881
TS = 4178168015 | RTP Payload = 96 | SeqNr = 1814 | Len = 28005
TS = 4178174015 | RTP Payload = 96 | SeqNr = 1834 | Len = 25660
TS = 4178189015 | RTP Payload = 96 | SeqNr = 1904 | Len = 90654
TS = 4178183015 | RTP Payload = 96 | SeqNr = 1939 | Len = 45065
TS = 4178180015 | RTP Payload = 96 | SeqNr = 1959 | Len = 25709
TS = 4178186015 | RTP Payload = 96 | SeqNr = 1978 | Len = 23450
TS = 4178201015 | RTP Payload = 96 | SeqNr = 2049 | Len = 91892
TS = 4178195015 | RTP Payload = 96 | SeqNr = 2084 | Len = 45078
TS = 4178192015 | RTP Payload = 96 | SeqNr = 2105 | Len = 26696
TS = 4178198015 | RTP Payload = 96 | SeqNr = 2124 | Len = 23850
TS = 4178213015 | RTP Payload = 96 | SeqNr = 2190 | Len = 85902
TS = 4178207015 | RTP Payload = 96 | SeqNr = 2224 | Len = 43719
TS = 4178204015 | RTP Payload = 96 | SeqNr = 2243 | Len = 24694
TS = 4178210015 | RTP Payload = 96 | SeqNr = 2262 | Len = 23765
TS = 4178225015 | RTP Payload = 96 | SeqNr = 2343 | Len = 104406
TS = 4178219015 | RTP Payload = 96 | SeqNr = 2392 | Len = 63009
TS = 4178216015 | RTP Payload = 96 | SeqNr = 2416 | Len = 31117
TS = 4178222015 | RTP Payload = 96 | SeqNr = 2434 | Len = 22376
TS = 4178237015 | RTP Payload = 96 | SeqNr = 2504 | Len = 90636
TS = 4178231015 | RTP Payload = 96 | SeqNr = 2538 | Len = 43938
TS = 4178228015 | RTP Payload = 96 | SeqNr = 2558 | Len = 25073
TS = 4178234015 | RTP Payload = 96 | SeqNr = 2577 | Len = 24516
TS = 4178249015 | RTP Payload = 96 | SeqNr = 2646 | Len = 88641
TS = 4178243015 | RTP Payload = 96 | SeqNr = 2681 | Len = 45242
TS = 4178240015 | RTP Payload = 96 | SeqNr = 2702 | Len = 26106
TS = 4178246015 | RTP Payload = 96 | SeqNr = 2721 | Len = 24228
TS = 4178261015 | RTP Payload = 96 | SeqNr = 2790 | Len = 89584
TS = 4178255015 | RTP Payload = 96 | SeqNr = 2826 | Len = 45774
TS = 4178252015 | RTP Payload = 96 | SeqNr = 2846 | Len = 25992
TS = 4178258015 | RTP Payload = 96 | SeqNr = 2865 | Len = 24716
TS = 4178273015 | RTP Payload = 96 | SeqNr = 2934 | Len = 89608
TS = 4178267015 | RTP Payload = 96 | SeqNr = 2971 | Len = 46979
TS = 4178264015 | RTP Payload = 96 | SeqNr = 2992 | Len = 27101
TS = 4178270015 | RTP Payload = 96 | SeqNr = 3012 | Len = 25055
TS = 4178285015 | RTP Payload = 96 | SeqNr = 3080 | Len = 87833
TS = 4178279015 | RTP Payload = 96 | SeqNr = 3116 | Len = 45751
TS = 4178276015 | RTP Payload = 96 | SeqNr = 3137 | Len = 26313
TS = 4178282015 | RTP Payload = 96 | SeqNr = 3156 | Len = 24665
TS = 4178291015 | RTP Payload = 96 | SeqNr = 3208 | Len = 66681
TS = 4178288015 | RTP Payload = 96 | SeqNr = 3229 | Len = 26074
TS = 4178303015 | RTP Payload = 96 | SeqNr = 3299 | Len = 90940
TS = 4178297015 | RTP Payload = 96 | SeqNr = 3337 | Len = 48731
TS = 4178294015 | RTP Payload = 96 | SeqNr = 3369 | Len = 41596
TS = 4178300015 | RTP Payload = 96 | SeqNr = 3390 | Len = 26159
TS = 4178315015 | RTP Payload = 96 | SeqNr = 3465 | Len = 96905
TS = 4178309015 | RTP Payload = 96 | SeqNr = 3511 | Len = 58885
TS = 4178306015 | RTP Payload = 96 | SeqNr = 3532 | Len = 26598
TS = 4178312015 | RTP Payload = 96 | SeqNr = 3550 | Len = 22520
TS = 4178327015 | RTP Payload = 96 | SeqNr = 3614 | Len = 82414
TS = 4178321015 | RTP Payload = 96 | SeqNr = 3648 | Len = 43939
TS = 4178318015 | RTP Payload = 96 | SeqNr = 3668 | Len = 25528
TS = 4178324015 | RTP Payload = 96 | SeqNr = 3686 | Len = 23091
TS = 4178339015 | RTP Payload = 96 | SeqNr = 3751 | Len = 84627
TS = 4178333015 | RTP Payload = 96 | SeqNr = 3785 | Len = 43869
TS = 4178330015 | RTP Payload = 96 | SeqNr = 3806 | Len = 26256
TS = 4178336015 | RTP Payload = 96 | SeqNr = 3825 | Len = 24184
TS = 4178351015 | RTP Payload = 96 | SeqNr = 3890 | Len = 83748
TS = 4178345015 | RTP Payload = 96 | SeqNr = 3924 | Len = 43836
TS = 4178342015 | RTP Payload = 96 | SeqNr = 3945 | Len = 26086
TS = 4178348015 | RTP Payload = 96 | SeqNr = 3963 | Len = 23001
TS = 4178363015 | RTP Payload = 96 | SeqNr = 4028 | Len = 84626
TS = 4178357015 | RTP Payload = 96 | SeqNr = 4063 | Len = 44595
TS = 4178354015 | RTP Payload = 96 | SeqNr = 4083 | Len = 25859
TS = 4178360015 | RTP Payload = 96 | SeqNr = 4101 | Len = 22622
TS = 4178375015 | RTP Payload = 96 | SeqNr = 4161 | Len = 78088
TS = 4178369015 | RTP Payload = 96 | SeqNr = 4195 | Len = 44047
TS = 4178366015 | RTP Payload = 96 | SeqNr = 4214 | Len = 24542
TS = 4178372015 | RTP Payload = 96 | SeqNr = 4232 | Len = 22894
TS = 4178381015 | RTP Payload = 96 | SeqNr = 4276 | Len = 56471
TS = 4178378015 | RTP Payload = 96 | SeqNr = 4295 | Len = 24404
TS = 4178384015 | RTP Payload = 96 | SeqNr = 4353 | Len = 75515
TS = 4178396015 | RTP Payload = 96 | SeqNr = 4415 | Len = 79455
TS = 4178390015 | RTP Payload = 96 | SeqNr = 4452 | Len = 47364
TS = 4178387015 | RTP Payload = 96 | SeqNr = 4474 | Len = 27695
TS = 4178393015 | RTP Payload = 96 | SeqNr = 4495 | Len = 27081
TS = 4178408015 | RTP Payload = 96 | SeqNr = 4569 | Len = 95325
TS = 4178402015 | RTP Payload = 96 | SeqNr = 4615 | Len = 59411
TS = 4178399015 | RTP Payload = 96 | SeqNr = 4647 | Len = 41437
TS = 4178405015 | RTP Payload = 96 | SeqNr = 4669 | Len = 28354
TS = 4178414015 | RTP Payload = 96 | SeqNr = 4720 | Len = 65840
TS = 4178411015 | RTP Payload = 96 | SeqNr = 4747 | Len = 34226
TS = 4178420015 | RTP Payload = 96 | SeqNr = 4802 | Len = 71528
TS = 4178417015 | RTP Payload = 96 | SeqNr = 4823 | Len = 26761
TS = 4178432015 | RTP Payload = 96 | SeqNr = 4888 | Len = 83339
TS = 4178426015 | RTP Payload = 96 | SeqNr = 4920 | Len = 40835
TS = 4178423015 | RTP Payload = 96 | SeqNr = 4939 | Len = 23688
TS = 4178429015 | RTP Payload = 96 | SeqNr = 4956 | Len = 21807
TS = 4178444015 | RTP Payload = 96 | SeqNr = 5022 | Len = 85391
TS = 4178438015 | RTP Payload = 96 | SeqNr = 5054 | Len = 41269
TS = 4178435015 | RTP Payload = 96 | SeqNr = 5073 | Len = 24672
TS = 4178441015 | RTP Payload = 96 | SeqNr = 5090 | Len = 21854
TS = 4178456015 | RTP Payload = 96 | SeqNr = 5154 | Len = 83320
TS = 4178450015 | RTP Payload = 96 | SeqNr = 5187 | Len = 42363
TS = 4178447015 | RTP Payload = 96 | SeqNr = 5206 | Len = 24737
TS = 4178453015 | RTP Payload = 96 | SeqNr = 5223 | Len = 22089
TS = 4178468015 | RTP Payload = 96 | SeqNr = 5282 | Len = 76070
TS = 4178462015 | RTP Payload = 96 | SeqNr = 5315 | Len = 42528
TS = 4178459015 | RTP Payload = 96 | SeqNr = 5334 | Len = 24044
TS = 4178465015 | RTP Payload = 96 | SeqNr = 5352 | Len = 23265
TS = 4178471015 | RTP Payload = 96 | SeqNr = 5412 | Len = 77301
TS = 4178483015 | RTP Payload = 96 | SeqNr = 5478 | Len = 85933
TS = 4178477015 | RTP Payload = 96 | SeqNr = 5515 | Len = 47230
TS = 4178474015 | RTP Payload = 96 | SeqNr = 5535 | Len = 25610
TS = 4178480015 | RTP Payload = 96 | SeqNr = 5552 | Len = 22000
TS = 4178495015 | RTP Payload = 96 | SeqNr = 5625 | Len = 94404
TS = 4178489015 | RTP Payload = 96 | SeqNr = 5675 | Len = 64617
TS = 4178486015 | RTP Payload = 96 | SeqNr = 5696 | Len = 26179
TS = 4178492015 | RTP Payload = 96 | SeqNr = 5714 | Len = 22167
TS = 4178507015 | RTP Payload = 96 | SeqNr = 5777 | Len = 80743
TS = 4178501015 | RTP Payload = 96 | SeqNr = 5812 | Len = 45236
TS = 4178498015 | RTP Payload = 96 | SeqNr = 5835 | Len = 28904
TS = 4178504015 | RTP Payload = 96 | SeqNr = 5854 | Len = 24198
TS = 4178513015 | RTP Payload = 96 | SeqNr = 5899 | Len = 57574
TS = 4178510015 | RTP Payload = 96 | SeqNr = 5919 | Len = 25511
TS = 4178516015 | RTP Payload = 96 | SeqNr = 5964 | Len = 58529
TS = 4178528015 | RTP Payload = 96 | SeqNr = 6019 | Len = 70689
TS = 4178522015 | RTP Payload = 96 | SeqNr = 6045 | Len = 33240
TS = 4178519015 | RTP Payload = 96 | SeqNr = 6060 | Len = 19501
TS = 4178525015 | RTP Payload = 96 | SeqNr = 6075 | Len = 19503
TS = 4178540015 | RTP Payload = 96 | SeqNr = 6135 | Len = 77926
TS = 4178534015 | RTP Payload = 96 | SeqNr = 6163 | Len = 35622
TS = 4178531015 | RTP Payload = 96 | SeqNr = 6181 | Len = 22316
TS = 4178537015 | RTP Payload = 96 | SeqNr = 6196 | Len = 19279
TS = 4178552015 | RTP Payload = 96 | SeqNr = 6257 | Len = 78483
TS = 4178546015 | RTP Payload = 96 | SeqNr = 6286 | Len = 37405
TS = 4178543015 | RTP Payload = 96 | SeqNr = 6303 | Len = 22036
TS = 4178549015 | RTP Payload = 96 | SeqNr = 6319 | Len = 19656
TS = 4178564015 | RTP Payload = 96 | SeqNr = 6379 | Len = 78060
TS = 4178558015 | RTP Payload = 96 | SeqNr = 6408 | Len = 37508
TS = 4178555015 | RTP Payload = 96 | SeqNr = 6426 | Len = 22218
TS = 4178561015 | RTP Payload = 96 | SeqNr = 6441 | Len = 18979
TS = 4178576015 | RTP Payload = 96 | SeqNr = 6500 | Len = 75989
TS = 4178570015 | RTP Payload = 96 | SeqNr = 6530 | Len = 38004
TS = 4178567015 | RTP Payload = 96 | SeqNr = 6547 | Len = 21787
TS = 4178573015 | RTP Payload = 96 | SeqNr = 6562 | Len = 18969
TS = 4178588015 | RTP Payload = 96 | SeqNr = 6627 | Len = 83366
TS = 4178582015 | RTP Payload = 96 | SeqNr = 6663 | Len = 46304
TS = 4178579015 | RTP Payload = 96 | SeqNr = 6684 | Len = 26835
TS = 4178585015 | RTP Payload = 96 | SeqNr = 6699 | Len = 19021
TS = 4178594015 | RTP Payload = 96 | SeqNr = 6752 | Len = 68186
TS = 4178591015 | RTP Payload = 96 | SeqNr = 6771 | Len = 24380
TS = 4178600015 | RTP Payload = 96 | SeqNr = 6831 | Len = 77136
TS = 4178597015 | RTP Payload = 96 | SeqNr = 6850 | Len = 24150
TS = 4178612015 | RTP Payload = 96 | SeqNr = 6922 | Len = 93448
TS = 4178606015 | RTP Payload = 96 | SeqNr = 6957 | Len = 44424
TS = 4178603015 | RTP Payload = 96 | SeqNr = 6978 | Len = 26159
TS = 4178609015 | RTP Payload = 96 | SeqNr = 6996 | Len = 22294
TS = 4178624015 | RTP Payload = 96 | SeqNr = 7068 | Len = 92843
TS = 4178618015 | RTP Payload = 96 | SeqNr = 7103 | Len = 44945
TS = 4178615015 | RTP Payload = 96 | SeqNr = 7123 | Len = 25716
TS = 4178621015 | RTP Payload = 96 | SeqNr = 7141 | Len = 23051
TS = 4178633015 | RTP Payload = 96 | SeqNr = 7202 | Len = 79105
TS = 4178627015 | RTP Payload = 96 | SeqNr = 7226 | Len = 31208
TS = 4178630015 | RTP Payload = 96 | SeqNr = 7245 | Len = 24539
TS = 4178645015 | RTP Payload = 96 | SeqNr = 7318 | Len = 94486
TS = 4178639015 | RTP Payload = 96 | SeqNr = 7354 | Len = 46353
TS = 4178636015 | RTP Payload = 96 | SeqNr = 7376 | Len = 27837
TS = 4178642015 | RTP Payload = 96 | SeqNr = 7391 | Len = 18464
TS = 4178657015 | RTP Payload = 96 | SeqNr = 7459 | Len = 87444
TS = 4178651015 | RTP Payload = 96 | SeqNr = 7492 | Len = 42915
TS = 4178648015 | RTP Payload = 96 | SeqNr = 7511 | Len = 24244
TS = 4178654015 | RTP Payload = 96 | SeqNr = 7529 | Len = 22765
TS = 4178669015 | RTP Payload = 96 | SeqNr = 7614 | Len = 109811
TS = 4178663015 | RTP Payload = 96 | SeqNr = 7654 | Len = 51149
TS = 4178660015 | RTP Payload = 96 | SeqNr = 7674 | Len = 25790
TS = 4178666015 | RTP Payload = 96 | SeqNr = 7698 | Len = 30557
TS = 4178681015 | RTP Payload = 96 | SeqNr = 7775 | Len = 100006
TS = 4178675015 | RTP Payload = 96 | SeqNr = 7818 | Len = 55775
TS = 4178672015 | RTP Payload = 96 | SeqNr = 7836 | Len = 22547
TS = 4178678015 | RTP Payload = 96 | SeqNr = 7861 | Len = 31820
TS = 4178687015 | RTP Payload = 96 | SeqNr = 7918 | Len = 74185
TS = 4178684015 | RTP Payload = 96 | SeqNr = 7939 | Len = 26901
TS = 4178696015 | RTP Payload = 96 | SeqNr = 8012 | Len = 94094
TS = 4178690015 | RTP Payload = 96 | SeqNr = 8043 | Len = 39379
TS = 4178693015 | RTP Payload = 96 | SeqNr = 8064 | Len = 26557
TS = 4178708015 | RTP Payload = 96 | SeqNr = 8149 | Len = 109681
TS = 4178702015 | RTP Payload = 96 | SeqNr = 8192 | Len = 54915
TS = 4178699015 | RTP Payload = 96 | SeqNr = 8216 | Len = 30514
TS = 4178705015 | RTP Payload = 96 | SeqNr = 8238 | Len = 27367
TS = 4178717015 | RTP Payload = 96 | SeqNr = 8308 | Len = 90131
TS = 4178711015 | RTP Payload = 96 | SeqNr = 8334 | Len = 32961
TS = 4178714015 | RTP Payload = 96 | SeqNr = 8355 | Len = 27081
TS = 4178729015 | RTP Payload = 96 | SeqNr = 8437 | Len = 106749
TS = 4178723015 | RTP Payload = 96 | SeqNr = 8478 | Len = 52274
TS = 4178720015 | RTP Payload = 96 | SeqNr = 8502 | Len = 30586
TS = 4178726015 | RTP Payload = 96 | SeqNr = 8524 | Len = 28276
TS = 4178738015 | RTP Payload = 96 | SeqNr = 8603 | Len = 101756
TS = 4178732015 | RTP Payload = 96 | SeqNr = 8632 | Len = 37331
TS = 4178735015 | RTP Payload = 96 | SeqNr = 8657 | Len = 31258
TS = 4178747015 | RTP Payload = 96 | SeqNr = 8736 | Len = 102742
TS = 4178741015 | RTP Payload = 96 | SeqNr = 8768 | Len = 41296
TS = 4178744015 | RTP Payload = 96 | SeqNr = 8794 | Len = 32827
TS = 4178750015 | RTP Payload = 96 | SeqNr = 8828 | Len = 43353
TS = 4178759015 | RTP Payload = 96 | SeqNr = 8932 | Len = 134339
TS = 4178753015 | RTP Payload = 96 | SeqNr = 8965 | Len = 42271
TS = 4178756015 | RTP Payload = 96 | SeqNr = 8992 | Len = 34494
TS = 4178771015 | RTP Payload = 96 | SeqNr = 9082 | Len = 117077
TS = 4178765015 | RTP Payload = 96 | SeqNr = 9132 | Len = 64136
TS = 4178762015 | RTP Payload = 96 | SeqNr = 9157 | Len = 31835
TS = 4178768015 | RTP Payload = 96 | SeqNr = 9183 | Len = 32990
TS = 4178774015 | RTP Payload = 96 | SeqNr = 9223 | Len = 51844
TS = 4178777015 | RTP Payload = 96 | SeqNr = 9263 | Len = 51143
TS = 4178789015 | RTP Payload = 96 | SeqNr = 9353 | Len = 116785
TS = 4178783015 | RTP Payload = 96 | SeqNr = 9405 | Len = 66992
TS = 4178780015 | RTP Payload = 96 | SeqNr = 9436 | Len = 39209
TS = 4178786015 | RTP Payload = 96 | SeqNr = 9462 | Len = 33617
TS = 4178801015 | RTP Payload = 96 | SeqNr = 9553 | Len = 117615
TS = 4178795015 | RTP Payload = 96 | SeqNr = 9605 | Len = 66893
TS = 4178792015 | RTP Payload = 96 | SeqNr = 9634 | Len = 37267
TS = 4178798015 | RTP Payload = 96 | SeqNr = 9662 | Len = 35443
TS = 4178813015 | RTP Payload = 96 | SeqNr = 9749 | Len = 112092
TS = 4178807015 | RTP Payload = 96 | SeqNr = 9797 | Len = 61440
TS = 4178804015 | RTP Payload = 96 | SeqNr = 9825 | Len = 36268
TS = 4178810015 | RTP Payload = 96 | SeqNr = 9853 | Len = 35378
TS = 4178825015 | RTP Payload = 96 | SeqNr = 9943 | Len = 116165
TS = 4178819015 | RTP Payload = 96 | SeqNr = 9994 | Len = 65623
TS = 4178816015 | RTP Payload = 96 | SeqNr = 10022 | Len = 36234
TS = 4178822015 | RTP Payload = 96 | SeqNr = 10051 | Len = 36878
TS = 4178837015 | RTP Payload = 96 | SeqNr = 10140 | Len = 115073
TS = 4178831015 | RTP Payload = 96 | SeqNr = 10192 | Len = 66763
TS = 4178828015 | RTP Payload = 96 | SeqNr = 10218 | Len = 33436
TS = 4178834015 | RTP Payload = 96 | SeqNr = 10244 | Len = 33796
TS = 4178849015 | RTP Payload = 96 | SeqNr = 10341 | Len = 125177
TS = 4178843015 | RTP Payload = 96 | SeqNr = 10401 | Len = 77900
TS = 4178840015 | RTP Payload = 96 | SeqNr = 10429 | Len = 35232
TS = 4178846015 | RTP Payload = 96 | SeqNr = 10459 | Len = 38179
TS = 4178858015 | RTP Payload = 96 | SeqNr = 10535 | Len = 98892
TS = 4178852015 | RTP Payload = 96 | SeqNr = 10563 | Len = 35531
TS = 4178855015 | RTP Payload = 96 | SeqNr = 10596 | Len = 41990
TS = 4178864015 | RTP Payload = 96 | SeqNr = 10665 | Len = 88820
TS = 4178861015 | RTP Payload = 96 | SeqNr = 10704 | Len = 49955
TS = 4178867015 | RTP Payload = 96 | SeqNr = 10762 | Len = 74508
TS = 4178870015 | RTP Payload = 96 | SeqNr = 10803 | Len = 52987
TS = 4178876015 | RTP Payload = 96 | SeqNr = 10860 | Len = 73161
TS = 4178873015 | RTP Payload = 96 | SeqNr = 10893 | Len = 42383
TS = 4178879015 | RTP Payload = 96 | SeqNr = 10894 | Len = 25
Payload Data : 
67 f4 0 20 91 9b 28 a 0 b7 42 0 0 3 0 2 0 0 3 0 
78 1e 30 63 2c 
TS = 4178879015 | RTP Payload = 96 | SeqNr = 10894 | Len = 5
Payload Data : 
68 eb ec 44 80 
TS = 4178879015 | RTP Payload = 96 | SeqNr = 11034 | Len = 182277

...
TS = 4179620015 | RTP Payload = 96 | SeqNr = 19953 | Len = 17574
TS = 4179626015 | RTP Payload = 96 | SeqNr = 19954 | Len = 25
Payload Data : 
67 f4 0 20 91 9b 28 a 0 b7 42 0 0 3 0 2 0 0 3 0 
78 1e 30 63 2c 
TS = 4179626015 | RTP Payload = 96 | SeqNr = 19954 | Len = 5
Payload Data : 
68 eb ec 44 80 
TS = 4179626015 | RTP Payload = 96 | SeqNr = 20034 | Len = 103235
TS = 4179638015 | RTP Payload = 96 | SeqNr = 20099 | Len = 83915
TS = 4179632015 | RTP Payload = 96 | SeqNr = 20136 | Len = 47878
...
TS = 4180367015 | RTP Payload = 96 | SeqNr = 28375 | Len = 74904
TS = 4180364015 | RTP Payload = 96 | SeqNr = 28397 | Len = 28493
TS = 4180373015 | RTP Payload = 96 | SeqNr = 28439 | Len = 54554
TS = 4180370015 | RTP Payload = 96 | SeqNr = 28459 | Len = 25420
TS = 4180376015 | RTP Payload = 96 | SeqNr = 28460 | Len = 25
Payload Data : 
67 f4 0 20 91 9b 28 a 0 b7 42 0 0 3 0 2 0 0 3 0 
78 1e 30 63 2c 
TS = 4180376015 | RTP Payload = 96 | SeqNr = 28460 | Len = 5
Payload Data : 
68 eb ec 44 80 
TS = 4180376015 | RTP Payload = 96 | SeqNr = 28560 | Len = 129431
TS = 4180388015 | RTP Payload = 96 | SeqNr = 28630 | Len = 90901
TS = 4180382015 | RTP Payload = 96 | SeqNr = 28675 | Len = 57964
TS = 4180379015 | RTP Payload = 96 | SeqNr = 28703 | Len = 35260
...
TS = 4183529015 | RTP Payload = 96 | SeqNr = 62224 | Len = 34771

Total Bytes Received = 79054651
Total Packets  = 1819


    


    After streaming starts I get 1 rtp packet len 25 , 1 rtp packet len 5 and 1 rtp packet len 760. After I received the packet with len 760 I get this message :

    


    [rtplib][rtpPkt_Handler]Found a key frame at ts 4178129015


    


    Can someone please explain to me what this rtp messages with len 25,5 and 760 means and what key frame means in this context ?

    


    Also I have rtp packets of size 5 and 25 in the middle of transmission.

    


    As you can see ffmpeg is saying 1802 frames were sent and Total packets received in C++ Application is 1819 because I receive 8 rtp packets of len 25, 8 rtp packets of len 5 and 1 rtp packet of size 760. If we substract this, it's exactly 1802 frames.

    


    My questions would be :

    


    How to get frame raw pixel data based on rtp packets payload data I receive ? eg. 1280x720 3 Channels ( thats the mp4 video resolution )

    


    Can someone tell me what those packets of len 25,5,760 on the beggining means and packets of len 25,5 in the middle of transmission means ?

    


    Thanks in advance !!!

    


  • 5 Key Benefits of Using a Tag Manager

    12 décembre 2021, par erin — Analytics Tips, Marketing

    Websites today have become very complex to manage, and as you continue to look for ways to optimise your website, you’ll want to consider using a Tag Manager

    A Tag Manager will help your marketing team seamlessly track how your visitors are engaging with your website’s elements. Without a Tag Manager, you are missing out on business-altering insights.

    In this blog, we’ll cover :

    Tag Manager overview 

    A Tag Manager (AKA Tag Management System or TMS) is a centralised system for implementing, managing and tracking events. A tag is just another word for a piece of code on a website that tracks a specific event. 

    An example of a tag tracking code might be Facebook pixels, ad conversions and other website activities such as signing up to a newsletter or PDF download. 

    Triggers are the actual actions that website visitors take that activate the tag. Examples of triggers are things like : 

    • A thank you page view to show that a visitor has completed a conversion action
    • Clicking a download or sign up button 
    • Scroll depth or how far down users are scrolling on your webpage 

    Each of these will give you insights into how your website is performing and how your users are engaging with your content. Going back to the scroll depth trigger example, this would be particularly helpful for validating bounce rate and finding out where users are dropping off on a page. Discover other ways to take advantage of tags and event tracking

    Tag Manager

    5 key benefits of a Tag Manager

    1. Removes the risks of website downtime 

    Tags are powerful for in-depth web analytics. However, tagging opens up the potential for non-technical team members to break the front-end of your website in a couple of clicks. 

    A Tag Manager reduces that risk. For example, Matomo Tag Manager lets you preview tags to see if they are firing before pushing them live. You can also give specific users restricted access so you can approve any tagging before it goes live. 

    Tag Managers protect the functionality of your website and ensure that there is no downtime.

    2. Your website will load faster 

    When it comes to the success of your website, page speed is one of the most important factors. 

    Each time you add a tag to your site, you run the risk of slowing down the page speed. This can quickly build up to a poor performing site and frustrate your visitors.

    You can’t track tags if visitors won’t even stay long enough for your site to load. In fact, 1 in 4 visitors would abandon a website that takes more than 4 seconds to load. According to Deloitte, just a 0.1 second difference in loading speed can affect every step of your customer journey. 

    A Tag Manager, on the other hand, is a lightweight option only requiring one single tag. Using a Tag Manager to track events can make all the difference to your website’s performance and user experience.

    3. Greater efficiency for marketing

    Time is critical in marketing. The longer it takes for a campaign to launch, the greater the chances are that you’re missing out on sales opportunities.

    Waiting for the IT team to tag a thank you page before setting an ad live is inefficient and impacts your bottom line.

    Equipping marketing with a Tag Manager means that they’ll be able to launch campaigns faster and more effectively.

    Check out our Marketer’s Guide to Successful Website Event Tracking for more.

    4. Control all of your tracking and marketing tags in one place 

    Keeping track of what tags are on your site and where they’re located is a complicated task if you aren’t using a Tag Manager. Unmanaged tags can quickly pile up and result in errors with your analytics, like counting conversions twice. 

    Using a Tag Manager to centralise your tags in one easy to manage place reduces the chances of human errors. Instead, your team will be able to quickly see what tags are already in place so they aren’t doubling up on tracking.

    5. Reduce work for the IT team 

    Let’s face it, the IT team has more critical tasks at hand than adding tags to the website. Freeing up your IT team to focus on higher priority tasks should always be a goal.

    Tagging, while crucial for marketing, has the potential to create a lot of extra work for your website developers. Inserting code for each individual tag is time-consuming and means you aren’t collecting data in the meantime.

    Rather than overloading your IT team, empower your marketing team with the ability to add tags with a few clicks. 

    How to choose a Tag Management System

    There are many tools to choose from and the default option tends to be Google Tag Manager (GTM). But before you implement GTM or any other Tag Management Solution, we highly recommend asking these questions :

    1. What are my goals for a Tag Manager ? Before purchasing a Tag Manager, or any tool for that matter, understanding your goals upfront is best practice.
    2. Does the solution offer Tag Manager training resources ? If online Tag Manager training and educational resources are available for the tool, then you’ll be able to hit the ground running and start to see an ROI instantly.
    3. Can I get online support ? In case you need any help with the tool, having access to online support is a big bonus. 
    4. Is it compliant with privacy regulations ? If your business is already compliant, in the process of becoming compliant or future-proofing your tech stack for looming privacy regulations, then researching this is crucial. 
    5. How much does it cost ? If it’s “free”, find out how and why. In most cases, free solutions are just vehicles for collecting data to advertise to your users. 
    6. What do others think about the Tag Manager ? Check out reviews on sites like Capterra or G2 to find out how other businesses rate the tool. 

    Google Tag Manager alternative

    As privacy becomes a greater concern globally for end-users and governments, many businesses are looking for alternatives to the world’s largest advertising company – Google.

    Matomo Tag Manager is more than a Google Tag Manager alternative. With Matomo Tag Manager, you get a GDPR, HIPAA, CCPA and PECR compliant, open source Tag Manager and your data is 100% yours to own.

    Plus, with Matomo Tag Manager you only need one single tracking code for all of your website and tag analytics. No matter what you are tracking (scrolls, clicks, downloads, Heatmaps, visits, etc.), you will only ever need one piece of code on your website and one tool to manage it all. 

    The takeaway 

    Tagging is powerful but can quickly become complicated, risky and time-consuming. Tag Managers reduce these obstacles allowing you to set tags and triggers effortlessly. It empowers marketing teams, streamlines processes and removes the reliance on IT.

    Ready to try Matomo Tag Manager ? Start your 21-day free trial now – no credit card required. 

  • How to Use Web Analytics to Improve SEO

    5 janvier 2022, par erin — Analytics Tips

    Everyone wants their website to rank highly in Google — and that’s exactly why the world of SEO is so competitive.

    In order to succeed in such a crowded space, it’s essential to equip yourself with the right tools and processes to ensure your website is maximally optimised for search engines.

    If you’d like to improve your website’s SEO rankings, leveraging web analytics is one of the best places to start. Web analytics provides valuable insights to help you assess performance, user behaviour and optimisation opportunities.

    In this blog, we’ll cover :

    The basics of SEO and web analytics

    Before we discuss how to use web analytics for SEO, let’s start with a quick explanation of both.

    SEO (Search Engine Optimisation) encompasses a broad set of activities aimed at increasing a website’s position in search engine results pages (SERPs). When a user enters a query (e.g. ‘marketing agencies in Dallas’) in a search engine, the websites that appear near the top of the page are optimised for search engines and therefore ranking for that particular term. 

    Web analytics refers to the monitoring/assessment of metrics that track traffic sources and user behaviour on a website. This involves the use of a web analytics tool to collect, aggregate, organise and visualise website data so that meaningful conclusions can be drawn.

    The importance of website analytics for SEO

    SEO revolves around search engine algorithms – a set of rules that dictates a website’s ranking for a given search query (i.e. keyword). The algorithm takes numerous factors into account to determine a particular site’s SERP ranking. So, to achieve strong SEO, your website needs to exhibit qualities that the algorithm deems important. That’s where web analytics comes into play.

    Web analytics allows you to track key metrics and data points that affect how the algorithm ranks your website. For example, how much time do users spend on your site ? Which external links are referring traffic to your site ? How do your site’s Core Web Vitals stack up ? 

    Understanding this data will supply you with the insights needed to make positive adjustments, ultimately improving your website’s SEO. 

    How do you analyse a website for SEO ?

    The SEO analysis of a website needs to be focused on relevant data that’s applicable to search engine rankings. When conducting your website SEO analysis, here are some notable metrics and data fields to pay attention to :

    1. Bounce rate and dwell time

    These metrics denote how much time users spend on your website. If users frequently exit your site after only a few seconds, Google may view this as a negative indicator. To reduce bounce rate and increase dwell time, you should work towards making your site’s content more captivating and ensuring that there aren’t any technical issues with your site (e.g. pages taking too long to load or not optimised for mobile).

    Bounce rate on Matomo's Page report
    Bounce rate and average time on page via Pages report

    2. Broken/dead links

    Perform a technical analysis to scan your website for faulty links. If your site contains broken links that lead to 404 pages, this can detract from your website’s SEO rankings. Redirect those links to a related page or remove them.

    Crawl Errors report in Matomo
    404 errors via the Crawling Errors report

    Matomo’s Crawling Errors report can give you instant access to this technical information so you can resolve it before it begins to impact your ranking.

    3. Scroll depth

    Measuring scroll depth (how far users scroll down the page) can help you gauge the quality of your content — and this goes hand-in-hand with bounce rate and dwell time. To assess scroll depth, you can use a Tag Manager to track the specific scroll percentage on your site’s pages.

    4. Transitions

    Studying how users transition from page to page within your site can help you understand their behaviour more holistically. Which pages do they tend to gravitate towards ? Are there CTAs on your blog that aren’t driving many click-throughs ? Optimising user journeys will, in turn, elevate the overall user experience on your site.

    Matomo's Transition report
    Previous and following actions of visitors for a website’s cart page via the Transitions report

    5. Internal site search

    You can use site search tracking and reporting to learn what your audience is looking for. If you notice a trend (e.g. the majority of searches are for pricing because your pricing page isn’t in the navigation menu), this can inform both site architecture and content planning.

    Matomo's Site Search Keywords report
    List of keywords via Site Search Keywords report

    Ecommerce sites in particular should be monitoring branded queries, especially in regards to brand misspellings that could be causing users to bounce off the site.

    6. Segments

    Separating your visitors into distinct segments can produce granular insights that paint a more accurate picture.

    For example, perhaps you notice that your bounce rate is far higher on mobile, or with users from the UK. In both cases, this knowledge will provide clarity on where to focus your optimisation efforts (e.g. mobile responsiveness, UK-specific content/landing pages, etc.).

    Website visitor segment via Matomo's Site Search Keywords report
    Matomo’s Site Search report combined with the Returning Users Segment

    7. Acquisition channels

    It’s crucial to analyse where your website traffic is coming from. Among other things, reviewing your acquisition metrics will reveal which external websites are referring the most traffic to your website. 

    Links from external sites (also known as backlinks) are one of the most important ranking factors because this tells Google that your site is reputable and credible. So, you may choose to cultivate a relationship with these sites (or similar sites) by offering guest blogging and other link building initiatives.

    Referral Website report in Matomo
    Referral websites via Matomo’s Websites report

    In addition to the above, you should also be monitoring your Core Web Vitals — which leads us to our next section.

    What are Core Web Vitals and why are they important ?

    Core Web Vitals are a set of 3 primary metrics that reflect the general user experience of a website. These metrics are load time, interactivity and stability. 

    1. Load time (LCP) refers to the amount of time it takes for your website’s text and images to load.
    2. Interactivity (FID) refers to the amount of time it takes for user input areas (buttons, form fields, etc.) to become functional.
    3. Stability (CLS) refers to the visual/spatial integrity of your website. If text, images, and other elements tend to suddenly shift position when a user is viewing the site, this will hurt your CLS score.
    Matomo's SEO Web VItals report
    Core Web Vitals metrics via Matomo’s SEO Web Vitals report

    So, why are these Core Web Vitals metrics important for SEO ? Generally speaking, Google prioritises user experience — and Core Web Vitals affect users’ satisfaction with a website. Furthermore, Google has confirmed that Core Web Vitals are, indeed, a ranking factor.

    Matomo enables you to track metrics for Core Web Vitals which we refer to as SEO Web Vitals.

    How to measure and track keyword performance

    We can’t talk about SEO and analytics without touching on keywords. Keywords (the words/phrases that users type in a search engine) are arguably the most cardinal component of SEO. So, outside of website performance, it’s also necessary to track the keywords your website is ranking for. 

    Recall from above that SEO is all about ranking highly on SERPs for certain search queries (i.e. keywords). To assess your Search Engine Keyword Performance, you can use an analytics tool to view Keyword reports for your website. These reports will show you which keywords your site ranks for, the average SERP position your site achieves for each keyword, the amount of traffic you receive from each keyword, and more.

    Top keywords generating traffic via Matomo's Search Engines & Keywords Performance report
    Top keywords generating traffic via Search Engines & Keywords report in Matomo

    Digging into your keyword performance can help you identify valuable keyword opportunities and improvement goals.

    For example, upon reviewing your highest-traffic keywords, you may choose to create more blog content around those keywords to bolster your success. Or, perhaps you notice that your average position for a high-intent keyword is quite low. In that case, you could implement a targeted link building campaign to help boost your ranking for that keyword. 

    Final thoughts

    In this article, we’ve discussed the benefits of web analytics — particularly in regards to SEO. When it comes to selecting a web analytics tool, Google Analytics is by far the most popular choice. But that doesn’t make it the best.

    At Matomo, we’re committed to providing a superior alternative to Google Analytics. Matomo is a powerful, open-source web analytics platform that gives you 100% data ownership — protecting both your data and your customers’ privacy.

    Try our live demo or start a free 21-day trial now – no credit card required.