
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (88)
-
Ecrire une actualité
21 juin 2013, parPrésentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
Vous pouvez personnaliser le formulaire de création d’une actualité.
Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...) -
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Problèmes fréquents
10 mars 2010, parPHP et safe_mode activé
Une des principales sources de problèmes relève de la configuration de PHP et notamment de l’activation du safe_mode
La solution consiterait à soit désactiver le safe_mode soit placer le script dans un répertoire accessible par apache pour le site
Sur d’autres sites (11922)
-
checkasm : add vvc_sao
14 décembre 2024, par Shaun Loocheckasm : add vvc_sao
This is a part of Google Summer of Code 2023
AVX2 :
- vvc_sao.sao_band [OK]
- vvc_sao.sao_edge [OK]
checkasm : all 54 tests passed
vvc_sao_band_8_8_c : 157.4 ( 1.00x)
vvc_sao_band_8_8_avx2 : 30.7 ( 5.12x)
vvc_sao_band_8_10_c : 119.4 ( 1.00x)
vvc_sao_band_8_10_avx2 : 29.2 ( 4.09x)
vvc_sao_band_8_12_c : 144.6 ( 1.00x)
vvc_sao_band_8_12_avx2 : 30.0 ( 4.82x)
vvc_sao_band_16_8_c : 446.5 ( 1.00x)
vvc_sao_band_16_8_avx2 : 103.3 ( 4.32x)
vvc_sao_band_16_10_c : 399.2 ( 1.00x)
vvc_sao_band_16_10_avx2 : 64.3 ( 6.21x)
vvc_sao_band_16_12_c : 472.9 ( 1.00x)
vvc_sao_band_16_12_avx2 : 56.5 ( 8.37x)
vvc_sao_band_32_8_c : 2430.9 ( 1.00x)
vvc_sao_band_32_8_avx2 : 203.3 (11.96x)
vvc_sao_band_32_10_c : 1405.7 ( 1.00x)
vvc_sao_band_32_10_avx2 : 208.5 ( 6.74x)
vvc_sao_band_32_12_c : 2054.3 ( 1.00x)
vvc_sao_band_32_12_avx2 : 213.0 ( 9.64x)
vvc_sao_band_48_8_c : 3835.4 ( 1.00x)
vvc_sao_band_48_8_avx2 : 604.2 ( 6.35x)
vvc_sao_band_48_10_c : 3624.6 ( 1.00x)
vvc_sao_band_48_10_avx2 : 468.8 ( 7.73x)
vvc_sao_band_48_12_c : 3752.4 ( 1.00x)
vvc_sao_band_48_12_avx2 : 477.5 ( 7.86x)
vvc_sao_band_64_8_c : 6061.1 ( 1.00x)
vvc_sao_band_64_8_avx2 : 803.9 ( 7.54x)
vvc_sao_band_64_10_c : 6142.5 ( 1.00x)
vvc_sao_band_64_10_avx2 : 827.3 ( 7.43x)
vvc_sao_band_64_12_c : 6106.6 ( 1.00x)
vvc_sao_band_64_12_avx2 : 839.9 ( 7.27x)
vvc_sao_band_80_8_c : 9478.0 ( 1.00x)
vvc_sao_band_80_8_avx2 : 1516.7 ( 6.25x)
vvc_sao_band_80_10_c : 10300.5 ( 1.00x)
vvc_sao_band_80_10_avx2 : 1298.7 ( 7.93x)
vvc_sao_band_80_12_c : 8941.1 ( 1.00x)
vvc_sao_band_80_12_avx2 : 1315.3 ( 6.80x)
vvc_sao_band_96_8_c : 13351.5 ( 1.00x)
vvc_sao_band_96_8_avx2 : 1815.4 ( 7.35x)
vvc_sao_band_96_10_c : 13197.5 ( 1.00x)
vvc_sao_band_96_10_avx2 : 1872.4 ( 7.05x)
vvc_sao_band_96_12_c : 11969.0 ( 1.00x)
vvc_sao_band_96_12_avx2 : 1895.8 ( 6.31x)
vvc_sao_band_112_8_c : 19936.9 ( 1.00x)
vvc_sao_band_112_8_avx2 : 2802.3 ( 7.11x)
vvc_sao_band_112_10_c : 19534.9 ( 1.00x)
vvc_sao_band_112_10_avx2 : 2635.0 ( 7.41x)
vvc_sao_band_112_12_c : 16520.6 ( 1.00x)
vvc_sao_band_112_12_avx2 : 2591.8 ( 6.37x)
vvc_sao_band_128_8_c : 25967.5 ( 1.00x)
vvc_sao_band_128_8_avx2 : 3155.3 ( 8.23x)
vvc_sao_band_128_10_c : 24002.6 ( 1.00x)
vvc_sao_band_128_10_avx2 : 3374.6 ( 7.11x)
vvc_sao_band_128_12_c : 20829.4 ( 1.00x)
vvc_sao_band_128_12_avx2 : 3377.0 ( 6.17x)
vvc_sao_edge_8_8_c : 174.6 ( 1.00x)
vvc_sao_edge_8_8_avx2 : 37.0 ( 4.72x)
vvc_sao_edge_8_10_c : 174.4 ( 1.00x)
vvc_sao_edge_8_10_avx2 : 58.5 ( 2.98x)
vvc_sao_edge_8_12_c : 171.1 ( 1.00x)
vvc_sao_edge_8_12_avx2 : 58.5 ( 2.93x)
vvc_sao_edge_16_8_c : 677.7 ( 1.00x)
vvc_sao_edge_16_8_avx2 : 72.2 ( 9.39x)
vvc_sao_edge_16_10_c : 724.8 ( 1.00x)
vvc_sao_edge_16_10_avx2 : 106.4 ( 6.81x)
vvc_sao_edge_16_12_c : 647.0 ( 1.00x)
vvc_sao_edge_16_12_avx2 : 106.6 ( 6.07x)
vvc_sao_edge_32_8_c : 3001.8 ( 1.00x)
vvc_sao_edge_32_8_avx2 : 157.6 (19.04x)
vvc_sao_edge_32_10_c : 3071.1 ( 1.00x)
vvc_sao_edge_32_10_avx2 : 404.2 ( 7.60x)
vvc_sao_edge_32_12_c : 2698.6 ( 1.00x)
vvc_sao_edge_32_12_avx2 : 398.8 ( 6.77x)
vvc_sao_edge_48_8_c : 6557.7 ( 1.00x)
vvc_sao_edge_48_8_avx2 : 380.1 (17.25x)
vvc_sao_edge_48_10_c : 6319.9 ( 1.00x)
vvc_sao_edge_48_10_avx2 : 896.3 ( 7.05x)
vvc_sao_edge_48_12_c : 6306.4 ( 1.00x)
vvc_sao_edge_48_12_avx2 : 885.5 ( 7.12x)
vvc_sao_edge_64_8_c : 11510.7 ( 1.00x)
vvc_sao_edge_64_8_avx2 : 504.1 (22.84x)
vvc_sao_edge_64_10_c : 10917.4 ( 1.00x)
vvc_sao_edge_64_10_avx2 : 1608.3 ( 6.79x)
vvc_sao_edge_64_12_c : 11499.8 ( 1.00x)
vvc_sao_edge_64_12_avx2 : 1586.4 ( 7.25x)
vvc_sao_edge_80_8_c : 18193.2 ( 1.00x)
vvc_sao_edge_80_8_avx2 : 930.2 (19.56x)
vvc_sao_edge_80_10_c : 17984.3 ( 1.00x)
vvc_sao_edge_80_10_avx2 : 2420.9 ( 7.43x)
vvc_sao_edge_80_12_c : 18289.4 ( 1.00x)
vvc_sao_edge_80_12_avx2 : 2412.1 ( 7.58x)
vvc_sao_edge_96_8_c : 26361.8 ( 1.00x)
vvc_sao_edge_96_8_avx2 : 1118.4 (23.57x)
vvc_sao_edge_96_10_c : 26162.2 ( 1.00x)
vvc_sao_edge_96_10_avx2 : 3666.9 ( 7.13x)
vvc_sao_edge_96_12_c : 25926.6 ( 1.00x)
vvc_sao_edge_96_12_avx2 : 3433.9 ( 7.55x)
vvc_sao_edge_112_8_c : 36562.9 ( 1.00x)
vvc_sao_edge_112_8_avx2 : 1741.0 (21.00x)
vvc_sao_edge_112_10_c : 38126.4 ( 1.00x)
vvc_sao_edge_112_10_avx2 : 5153.3 ( 7.40x)
vvc_sao_edge_112_12_c : 36345.7 ( 1.00x)
vvc_sao_edge_112_12_avx2 : 4684.9 ( 7.76x)
vvc_sao_edge_128_8_c : 46379.8 ( 1.00x)
vvc_sao_edge_128_8_avx2 : 2012.4 (23.05x)
vvc_sao_edge_128_10_c : 47029.5 ( 1.00x)
vvc_sao_edge_128_10_avx2 : 6162.2 ( 7.63x)
vvc_sao_edge_128_12_c : 49647.3 ( 1.00x)
vvc_sao_edge_128_12_avx2 : 6127.1 ( 8.10x)Co-authored-by : Nuo Mi <nuomi2021@gmail.com>
-
FFmpeg HLS input stream shows "Packet corrupt" and "timestamp discontinuity" errors when pushing to RTMP server [closed]
22 mai, par Amul BhatiaI'm trying to restream an HLS URL (https://cache.fastcdn.com.my/edge/53-1.stream/index_0.m3u8?misc=87uq4HjbDEDE3TzIY95ja1ZMxA-Cm1PbOXAk16riVlU&uid=139322&ts=1747931206&e=43200&lat=1747931206&sil=5&sk=no&uip=MTEwLjIyNC4yNDIuOTg&head=aHR0cF94X2ZvcndhcmRlZF9mb3I&chid=53-1') into my RTMP server with FFmpeg. The command I use is :


ffmpeg -i "https://cache.fastcdn.com.my/edge/53-1.stream/index_0.m3u8?misc=87uq4HjbDEDE3TzIY95ja1ZMxA-Cm1PbOXAk16riVlU&uid=139322&ts=1747931206&e=43200&lat=1747931206&sil=5&sk=no&uip=MTEwLjIyNC4yNDIuOTg&head=aHR0cF94X2ZvcndhcmRlZF9mb3I&chid=53-1" -c:v libx264 -preset veryfast -b:v 1000k -c:a aac -b:a 128k -f flv rtmp://69.62.85.241/live/streamkey



getting error


ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers
 built with gcc 13 (Ubuntu 13.2.0-23ubuntu3)
 configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared
 libavutil 58. 29.100 / 58. 29.100
 libavcodec 60. 31.102 / 60. 31.102
 libavformat 60. 16.100 / 60. 16.100
 libavdevice 60. 3.100 / 60. 3.100
 libavfilter 9. 12.100 / 9. 12.100
 libswscale 7. 5.100 / 7. 5.100
 libswresample 4. 12.100 / 4. 12.100
 libpostproc 57. 3.100 / 57. 3.100
[hls @ 0x60992c0c8880] Skip ('#EXT-X-VERSION:3')
[hls @ 0x60992c0c8880] Skip ('#EXT-X-DISCONTINUITY')
 Last message repeated 9 times
[hls @ 0x60992c0c8880] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
 Last message repeated 1 times
Input #0, hls, from 'https://cache.fastcdn.com.my/edge/53-1.stream/index_0.m3u8?misc=87uq4HjbDEDE3TzIY95ja1ZMxA-Cm1PbOXAk16riVlU&uid=139322&ts=1747931206&e=43200&lat=1747931206&sil=5&sk=no&uip=MTEwLjIyNC4yNDIuOTg&head=aHR0cF94X2ZvcndhcmRlZF9mb3I&chid=53-1':
 Duration: 00:01:00.00, start: 1.466667, bitrate: 0 kb/s
 Program 0
 Metadata:
 variant_bitrate : 0
 Stream #0:0: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, unknown/bt709/iec61966-2-1), 854x480 [SAR 1:1 DAR 427:240], 30 fps, 30 tbr, 90k tbn
 Metadata:
 variant_bitrate : 0
Stream mapping:
 Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0x60992cd68b00] using SAR=1/1
[libx264 @ 0x60992cd68b00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512
[libx264 @ 0x60992cd68b00] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x60992cd68b00] 264 - core 164 r3108 31e19f9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=10 rc=abr mbtree=1 bitrate=1000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, flv, to 'rtmp://69.62.85.241/live/streamkey':
 Metadata:
 encoder : Lavf60.16.100
 Stream #0:0: Video: h264 ([7][0][0][0] / 0x0007), yuv420p(tv, unknown/bt709/iec61966-2-1, progressive), 854x480 [SAR 1:1 DAR 427:240], q=2-31, 1000 kb/s, 30 fps, 1k tbn
 Metadata:
 variant_bitrate : 0
 encoder : Lavc60.31.102 libx264
 Side data:
 cpb: bitrate max/min/avg: 0/0/1000000 buffer size: 0 vbv_delay: N/A
[https @ 0x60992c48fc40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 6000000
[https @ 0x60992c4a9d40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 12000000
[https @ 0x60992c48fc40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 18000000
[https @ 0x60992c4a9d40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 24000000
[https @ 0x60992c48fc40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 30000000
[https @ 0x60992c4a9d40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 36000000
[https @ 0x60992c48fc40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 42000000
[https @ 0x60992c4a9d40] Opening 'https://cache.fastcdn.com.my/error/chunks/407.ts' for reading
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 48000000
[mpegts @ 0x60992c161940] Packet corrupt (stream = 0, dts = 663000).
[hls @ 0x60992c0c8880] Packet corrupt (stream = 0, dts = 660000).
[in#0/hls @ 0x60992c0c8780] corrupt input packet in stream 0
[vist#0:0/h264 @ 0x60992c47ae80] timestamp discontinuity (stream id=0): -6000000, new offset= 54000000
[flv @ 0x60992c88a340] Failed to update header with correct duration.44.8kbits/s speed=22.6x
[flv @ 0x60992c88a340] Failed to update header with correct filesize.
[out#0/flv @ 0x60992cc36180] video:304kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 11.671993%
frame= 1800 fps=685 q=-1.0 Lsize= 339kB time=00:00:59.90 bitrate= 46.4kbits/s speed=22.8x
[libx264 @ 0x60992cd68b00] frame I:8 Avg QP: 2.07 size: 20330
[libx264 @ 0x60992cd68b00] frame P:454 Avg QP: 0.23 size: 218
[libx264 @ 0x60992cd68b00] frame B:1338 Avg QP: 0.21 size: 37
[libx264 @ 0x60992cd68b00] consecutive B-frames: 0.9% 0.0% 0.0% 99.1%
[libx264 @ 0x60992cd68b00] mb I I16..4: 86.7% 0.3% 13.0%
[libx264 @ 0x60992cd68b00] mb P I16..4: 0.1% 0.0% 0.0% P16..4: 1.4% 0.0% 0.0% 0.0% 0.0% skip:98.6%
[libx264 @ 0x60992cd68b00] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.1% 0.0% 0.0% direct: 0.1% skip:99.8% L0:59.9% L1:40.1% BI: 0.0%
[libx264 @ 0x60992cd68b00] final ratefactor: -25.04
[libx264 @ 0x60992cd68b00] 8x8 transform intra:0.3% inter:1.8%
[libx264 @ 0x60992cd68b00] coded y,uvDC,uvAC intra: 13.5% 0.0% 0.0% inter: 0.2% 0.0% 0.0%
[libx264 @ 0x60992cd68b00] i16 v,h,dc,p: 90% 6% 4% 0%
[libx264 @ 0x60992cd68b00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 59% 12% 28% 0% 1% 1% 0% 0% 0%
[libx264 @ 0x60992cd68b00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 41% 18% 19% 4% 4% 4% 3% 4% 3%
[libx264 @ 0x60992cd68b00] i8c dc,h,v,p: 100% 0% 0% 0%
[libx264 @ 0x60992cd68b00] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x60992cd68b00] kb/s:41.38



However, I get repeated errors like :


Packet corrupt (stream = 0, dts = xxxx)


timestamp discontinuity (stream id=0)


corrupt input packet in stream 0


The stream partially works but seems unstable. How can I fix this error ?


my nginx.conf


rtmp {
 server {
 listen 1935;
 chunk_size 4096;

 application live {
 live on;
 record off;

 hls on;
 hls_path /var/www/hls;
 hls_fragment 5; # each TS segment = 5s
 hls_playlist_length 120; # keep last 2 minutes of stream
 hls_cleanup off; # do not delete old segments
 }
 }
}

http {
 include mime.types;
 default_type application/octet-stream;

 sendfile on;
 keepalive_timeout 65;

 server {
 listen 81;

 location /hls {
 root /var/www;
 types {
 application/vnd.apple.mpegurl m3u8;
 video/mp2t ts;
 }

 add_header Cache-Control no-cache;
 add_header Access-Control-Allow-Origin *;
 add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
 add_header Access-Control-Allow-Headers 'Range';
 add_header Access-Control-Expose-Headers 'Content-Length, Content-Range';
 }
 }
}



The same url is working fine when used in browser, but extracting the stream and putting it in RTMP server and accessing my RTMP server at rtmp ://69.62.85.241/live/streamkey not working


-
Server-side tracking vs client-side tracking : What you need to know
3 juillet, par JoeServer-side tracking vs client-side tracking : What you need to know
Today, consumers are more aware of their online privacy rights, leading to an extensive use of ad blockers and stricter cookie policies. Organisations are facing some noteworthy challenges with this trend, including :
- Limited data collection, which makes it harder to understand user behaviour and deliver personalised ads that resonate with customers
- Rising compliance costs as businesses adapt to new regulations, straining resources and budgets.
- Growing customer scepticism in data practices, affecting brand reputation.
- Maintaining transparency and fostering trust with customers through clear communication about data practices.
Server-side tracking can help resolve these problems. This article will cover server-side tracking, how it works, implementation methods and its benefits.
What is server-side tracking ?
Server-side tracking refers to a method where user data is collected directly by a server rather than through a user’s browser.
The key advantage of server-side tracking is that data collection, processing, and storage occur directly on the website’s server.
For example, when a visitor interacts with any website, the server captures that activity through the backend system, allowing for greater data control and security.
Client-side tracking vs. server-side tracking
There are two methods to collect user data : client-side and server-side.
Let’s understand their differences.
Client-side tracking : Convenience with caveats
Client-side tracking embeds JavaScript tags, pixels or other scripts directly into a website’s code. When a user interacts with the site, these tags fire, collecting data from their browser. This information might include page views, button clicks, form submissions and other user actions.
The collected data is then sent directly to third-party analytics platforms like Google Analytics or Adobe Analytics, or internal teams can also analyse it.
This method is relatively easy to implement. That’s because marketers can often deploy these tags without needing extensive developer support, enabling quick adjustments and A/B testing.
However, there are some challenges.
Ad blockers and browser privacy settings, such as Intelligent Tracking Prevention (ITP), restrict the ability of third-party tags to collect data.
This results in data gaps and inaccuracies skewing analytics reports and potentially leading to misguided business decisions.
Reliance on numerous JavaScript tags can also negatively impact website performance, slowing down page load times and affecting user experience. This is especially true on mobile devices where processing power and network speeds are often limited.
Now, let’s see how server-side tracking changes this.
Server-side tracking : Control and reliability
Server-side tracking shifts the burden of data collection from the user’s browser to a server controlled by the business.
Instead of relying on JavaScript tags firing directly from the user’s device, user interactions are first sent to the business’s own server. Here, the data can be processed, enriched, and analysed.
This method provides numerous advantages, including enhanced control over data integrity, improved privacy, and more, which we discuss in the next section.
Benefits of server-side tracking
Server-side tracking offers a compelling alternative to traditional client-side methods, providing numerous business advantages. Let’s take a look at them.
Improved data accuracy
This method reduces inaccuracies caused by ad blockers or cookie restrictions by bypassing browser limitations. As a result, the data collected is more reliable, leading to better analytics and marketing attribution.
Data minimisation
Data minimisation is a fundamental principle in data protection. It emphasises that organisations should collect only data that is strictly needed for a specific purpose.
In server-side tracking, this translates into collecting just the essential data points and discarding anything extra before the data is sent to analytics platforms. It helps organisations avoid accumulating excessive personal information, reducing the risk of data breaches and misuse.
For example, consider a scenario where a user purchases a product on an e-commerce website.
With client-side tracking scripts, the system might inadvertently collect a range of data, including the user’s IP address, browser type, operating system and even details about other websites they have visited.
However, for conversions, the organisation only needs to know the purchase amount, product IDs, user IDS, and timestamps.
Server-side tracking filters unnecessary information. This reduces the privacy impact and simplifies data analysis and storage.
Cross-device tracking capabilities
Server-side tracking provides a unified view of customer behaviour regardless of the device they use, allowing for more personalised and targeted marketing campaigns.
In-depth event tracking
Server-side tracking helps businesses track events that occur outside their websites, such as payment confirmations. Companies gain insights into the entire customer journey, from initial interaction to final purchase, optimising every touchpoint.
Enhanced privacy compliance
With increasing regulations like GDPR and CCPA, businesses can better manage user consent and data handling practices through server-side solutions.
Server-side setups make honouring user consent easier. If a user opts out, server-side logic can exclude their data from all outgoing analytics calls in one central place.
Server-side methods reassure users and regulators that data is collected and secured with minimal risk.
In sectors like government and banking, this level of control is often a non-negotiable part of their duty of care.
Extended cookie lifetime
Traditional website tracking faces growing obstacles as modern browsers prioritise user privacy. Initiatives like Safari’s ITP block third-party cookies and also constrain the use of first-party cookies.
Other browsers, such as Firefox and Brave, are implementing similar methods, while Chrome is beginning to phase out third-party cookies. Retargeting and cross-site analytics, which rely on these cookies, encounter significant challenges.
Server-side tracking overcomes this by allowing businesses to collect data over a longer duration.
When a website’s server directly sets a cookie, that cookie often lasts longer than cookies created by JavaScript code running inside the browser. This lets websites get around some of the limits browsers put on tracking and allows them to remember a visitor when they return to the site later, which gives better customer insights. Plus, server-side tracking typically classifies cookies as first-party data, which is less susceptible to blocking by browsers and ad blockers.
Server-side tracking : Responsibilities and considerations
While server-side tracking delivers powerful capabilities, remember that it also brings increased responsibility. Companies must remain vigilant in upholding privacy regulations and user consent. It’s up to the organisation to make sure the server follows user consent, for example, not sending data if someone has opted out.
Server-side setups introduce technical complexity, which can potentially lead to data errors that are more difficult to identify and resolve. Therefore, monitoring processes and quality assurance practices are essential for data integrity.
How does server-side tracking work ?
When a user interacts with a website (e.g., clicking a button), this action triggers an event. The event could be anything from a page view to a form submission.
The backend system captures relevant details such as the event type, user ID and timestamp. This information helps in understanding user behaviour and creating meaningful analytics.
The captured data is processed directly on the organisation’s server, allowing for immediate validation. For example, organisations can add additional context or filter out irrelevant information.
Instead of sending data to third-party endpoints, the organisation stores everything in its own database or data warehouse. This ensures full control over data privacy and security.
Organisations can perform their own analysis using tools like SQL or Python. To visualise data, custom dashboards and reports can be created using self-hosted analytics tools. This way, businesses can present complex data in a clear and actionable manner.
How to implement server-side tracking ?
Server-side tracking can work in four common ways, each offering a different blend of control, flexibility and complexity.
1. Server-side tag management
In this method, organisations use platforms like Google Tag Manager Server-Side to manage tracking tags on the server, often using containers to isolate and manage different tagging environments.
This approach offers a balance between control and ease of use. It allows for the deployment and management of tags without modifying the application code, which is particularly useful for marketers who want to adjust tracking configurations quickly.
2. Direct server-to-server tracking via APIs
This method involves sharing information between two servers without affecting the user’s browser or device.
A unique identifier is generated and stored on a server when a user interacts with an ad or webpage.
If a user takes some action, like making a purchase, the unique identifier is sent from the advertiser’s server directly to the platform’s server (Google or Facebook) via an API.
It requires more development effort but is ideal for organisations needing fine-grained data control.
3. Using analytics platforms with built-in server SDKs
Another way is to employ analytics platforms like Matomo that provide SDKs for various programming languages to instrument the server-side code.
This eases integration with the platform’s analytics features and is a good choice for organisations primarily using a single analytics platform and want to use its server-side capabilities.
4. Hybrid approaches
Finally, organisations can also combine client- and server-side tracking to capture different data types and maximise accuracy.
This method involves client-side scripts for specific interactions (like UI events) and server-side tracking for more sensitive or critical data (like transactions).
While these are general approaches, dedicated analytics platforms can also be helpful. Matomo, for example, facilitates server-side tracking through two specific methods.
Using server logs
Matomo can import existing web server logs, such as Apache or Nginx, that capture each request. Every page view or resource load becomes a data point.
Matomo’s log processing script reads log files, importing millions of hits. This removes the need to add code to the site, making it suitable for basic page analytics (like the URL) without client-side scripts, particularly on security-sensitive sites.
Using the Matomo tracking API (Server-side SDKs)
This method integrates application code with calls to Matomo’s API. For example, when a user performs a specific action, the server sends a request to Matomo.php, the tracking endpoint, which includes details like the user ID and action.
Matomo offers SDKs in PHP, Java C#, and community SDKs to simplify these calls. These allow tracking of not just page views but custom events such as downloads and transactions from the backend, functioning similarly to Google’s Measurement Protocol but sending data to the Matomo instance.
Data privacy, regulations and Matomo
As privacy concerns grow and regulations like GDPR and CCPA become more stringent, businesses must adopt data collection methods that respect user consent and data protection rights.
Server-side tracking allows organisations to collect first-party data directly from their servers, which is generally considered more compliant with privacy regulations.
Matomo is a popular open-source web analytics platform that is committed to privacy. It gives organisations 100% data ownership and control, and no data is sent to third parties by default.
Matomo is a full-featured analytics platform with dashboards and segmentation comparable to Google Analytics. It can self-host and provides DoNotTrack settings and the ability to anonymise IP addresses.
Governments and organisations requiring data sovereignty, such as the EU Commission and the Swiss government, choose Matomo for web analytics due to its strong compliance posture.
Balancing data collection and user privacy
Ad blockers and other restrictions prevent data from being accurate. Server-side tracking helps get data on the server and makes it more reliable while respecting user privacy. Matomo supports server-side tracking, and over one million websites use Matomo to optimise their data strategies.
Get started today by trying Matomo for free for 21 days, no credit card required.