
Recherche avancée
Autres articles (22)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
Creating farms of unique websites
13 avril 2011, parMediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...) -
D’autres logiciels intéressants
12 avril 2011, parOn ne revendique pas d’être les seuls à faire ce que l’on fait ... et on ne revendique surtout pas d’être les meilleurs non plus ... Ce que l’on fait, on essaie juste de le faire bien, et de mieux en mieux...
La liste suivante correspond à des logiciels qui tendent peu ou prou à faire comme MediaSPIP ou que MediaSPIP tente peu ou prou à faire pareil, peu importe ...
On ne les connais pas, on ne les a pas essayé, mais vous pouvez peut être y jeter un coup d’oeil.
Videopress
Site Internet : (...)
Sur d’autres sites (3701)
-
FFMPEG : RTSP re-stream dies randomly
14 mai 2018, par stevendesuI have a security camera streaming RTSP, and I wish to re-stream this to an RTMP ingest server. For now I’m using my laptop as an ffmpeg proxy, but eventually I’ll use a raspberry pi or something similar (cheap/small)
Here’s the command I’m using (pretty simple) :
ffmpeg -i rtsp://@10.0.0.16:554/1/h264major -c:v libx264 -c:a none -f flv rtmp://output/camera_stream
This works but after a minute or two the stream dies. Here’s the output :
ffmpeg version N-90057-g7c82e0f Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.6) 20160609
configuration: --prefix=/home/sbarnett/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/sbarnett/ffmpeg_build/include --extra-ldflags=-L/home/sbarnett/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/sbarnett/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libspeex --enable-nonfree
libavutil 56. 7.101 / 56. 7.101
libavcodec 58. 11.101 / 58. 11.101
libavformat 58. 9.100 / 58. 9.100
libavdevice 58. 1.100 / 58. 1.100
libavfilter 7. 12.100 / 7. 12.100
libswscale 5. 0.101 / 5. 0.101
libswresample 3. 0.101 / 3. 0.101
libpostproc 55. 0.100 / 55. 0.100
Input #0, rtsp, from 'rtsp://@10.0.0.16:554/1/h264major':
Metadata:
title : h264major
comment : h264major
Duration: N/A, start: 0.360000, bitrate: N/A
Stream #0:0: Video: h264 (Main), yuvj420p(pc, bt709, progressive), 720x480, 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0x38843c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x38843c0] profile High, level 3.0
[libx264 @ 0x38843c0] 264 - core 155 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, flv, to 'rtmp://output/camera_stream':
Metadata:
title : h264major
comment : h264major
encoder : Lavf58.9.100
Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuvj420p(pc), 720x480, q=-1--1, 25 fps, 1k tbn, 25 tbc
Metadata:
encoder : Lavc58.11.101 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Past duration 0.999992 too large
Last message repeated 29 times
[rtsp @ 0x3847600] max delay reached. need to consume packet
[rtsp @ 0x3847600] RTP: missed 48 packets
Past duration 0.999992 too large
Last message repeated 4 times
frame= 44 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A dup=0 drop=5 speed= 0x
frame= 57 fps= 54 q=28.0 size= 43kB time=00:00:00.16 bitrate=2186.4kbits/s dup=0 drop=5 speed=0.153x
... (lots of similar messages) ...
frame= 1163 fps= 26 q=28.0 size= 1341kB time=00:00:44.84 bitrate= 245.0kbits/s dup=0 drop=5 speed=0.99x
frame= 1177 fps= 26 q=28.0 size= 1353kB time=00:00:45.40 bitrate= 244.2kbits/s dup=0 drop=5 speed=0.99x
[rtsp @ 0x3847600] max delay reached. need to consume packet
[rtsp @ 0x3847600] RTP: missed 2 packets
frame= 1190 fps= 26 q=28.0 size= 1370kB time=00:00:45.92 bitrate= 244.4kbits/s dup=0 drop=5 speed=0.99x
[h264 @ 0x38c08c0] Increasing reorder buffer to 1
frame= 1201 fps= 26 q=28.0 size= 1381kB time=00:00:46.36 bitrate= 244.0kbits/s dup=0 drop=5 speed=0.989x
frame= 1214 fps= 26 q=28.0 size= 1393kB time=00:00:46.88 bitrate= 243.4kbits/s dup=0 drop=5 speed=0.989x
... (lots of similar messages) ...
frame= 1761 fps= 25 q=28.0 size= 2030kB time=00:01:08.80 bitrate= 241.7kbits/s dup=0 drop=5 speed=0.993x
frame= 1774 fps= 25 q=28.0 size= 2041kB time=00:01:09.32 bitrate= 241.2kbits/s dup=0 drop=5 speed=0.993x
[flv @ 0x3884900] Failed to update header with correct duration.
[flv @ 0x3884900] Failed to update header with correct filesize.
frame= 1782 fps= 25 q=-1.0 Lsize= 2127kB time=00:01:11.64 bitrate= 243.2kbits/s dup=0 drop=5 speed=1.02x
video:2092kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.679417%
[libx264 @ 0x38843c0] frame I:8 Avg QP:16.89 size: 42446
[libx264 @ 0x38843c0] frame P:1672 Avg QP:19.54 size: 1065
[libx264 @ 0x38843c0] frame B:102 Avg QP:23.00 size: 205
[libx264 @ 0x38843c0] consecutive B-frames: 92.4% 0.0% 0.0% 7.6%
[libx264 @ 0x38843c0] mb I I16..4: 12.9% 36.2% 50.9%
[libx264 @ 0x38843c0] mb P I16..4: 0.2% 0.2% 0.0% P16..4: 16.7% 0.7% 1.0% 0.0% 0.0% skip:81.1%
[libx264 @ 0x38843c0] mb B I16..4: 0.1% 0.1% 0.0% B16..8: 11.7% 0.1% 0.0% direct: 1.5% skip:86.5% L0:62.2% L1:35.3% BI: 2.5%
[libx264 @ 0x38843c0] 8x8 transform intra:40.8% inter:47.4%
[libx264 @ 0x38843c0] coded y,uvDC,uvAC intra: 46.5% 53.0% 17.2% inter: 3.9% 8.7% 0.0%
[libx264 @ 0x38843c0] i16 v,h,dc,p: 21% 56% 8% 15%
[libx264 @ 0x38843c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 33% 31% 1% 2% 3% 2% 2% 3%
[libx264 @ 0x38843c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 39% 9% 3% 3% 4% 5% 3% 8%
[libx264 @ 0x38843c0] i8c dc,h,v,p: 43% 33% 21% 3%
[libx264 @ 0x38843c0] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x38843c0] ref P L0: 88.0% 1.4% 6.6% 4.0%
[libx264 @ 0x38843c0] ref B L0: 99.4% 0.5% 0.1%
[libx264 @ 0x38843c0] ref B L1: 99.4% 0.6%
[libx264 @ 0x38843c0] kb/s:238.73The camera is pretty cheap (from China) so it’s likely I’m getting bad data from it or it’s cutting out for a few seconds at a time. Ideally I would need ffmpeg to handle this well (ignore bad data, wait as long as necessary for good data to resume encoding)
Using
ffplay
to check out the RTSP stream, I get output like the following :$> ffplay -i rtsp://@10.0.0.16:554/1/h264major
ffplay version N-90057-g7c82e0f Copyright (c) 2003-2018 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.6) 20160609
configuration: --prefix=/home/sbarnett/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/sbarnett/ffmpeg_build/include --extra-ldflags=-L/home/sbarnett/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/sbarnett/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libspeex --enable-nonfree
libavutil 56. 7.101 / 56. 7.101
libavcodec 58. 11.101 / 58. 11.101
libavformat 58. 9.100 / 58. 9.100
libavdevice 58. 1.100 / 58. 1.100
libavfilter 7. 12.100 / 7. 12.100
libswscale 5. 0.101 / 5. 0.101
libswresample 3. 0.101 / 3. 0.101
libpostproc 55. 0.100 / 55. 0.100
Input #0, rtsp, from 'rtsp://@10.0.0.16:554/1/h264major':0B f=0/0
Metadata:
title : h264major
comment : h264major
Duration: N/A, start: 0.320000, bitrate: N/A
Stream #0:0: Video: h264 (Main), yuvj420p(pc, bt709, progressive), 720x480, 25 fps, 25 tbr, 90k tbn, 50 tbc
[swscaler @ 0x7f6bbc093180] deprecated pixel format used, make sure you did set range correctly
[rtsp @ 0x7f6bc0000940] max delay reached. need to consume packet
[rtsp @ 0x7f6bc0000940] RTP: missed 2 packets
[h264 @ 0x7f6bc0041080] error while decoding MB 44 28, bytestream -37
[h264 @ 0x7f6bc0041080] concealing 95 DC, 95 AC, 95 MV errors in I frame
[rtsp @ 0x7f6bc0000940] max delay reached. need to consume packet
[rtsp @ 0x7f6bc0000940] RTP: missed 1 packets
[h264 @ 0x7f6bc0041080] error while decoding MB 43 29, bytestream -49
[h264 @ 0x7f6bc0041080] concealing 51 DC, 51 AC, 51 MV errors in I frame
[rtsp @ 0x7f6bc0000940] max delay reached. need to consume packet
[rtsp @ 0x7f6bc0000940] RTP: missed 2 packets
[h264 @ 0x7f6bc0041080] Increasing reorder buffer to 1
[rtsp @ 0x7f6bc0000940] max delay reached. need to consume packet
[rtsp @ 0x7f6bc0000940] RTP: missed 3 packets
[h264 @ 0x7f6bc02c3600] error while decoding MB 27 29, bytestream -24
[h264 @ 0x7f6bc02c3600] concealing 67 DC, 67 AC, 67 MV errors in I frame
[rtsp @ 0x7f6bc0000940] max delay reached. need to consume packet
[rtsp @ 0x7f6bc0000940] RTP: missed 2 packets
[rtsp @ 0x7f6bc0000940] max delay reached. need to consume packet
[rtsp @ 0x7f6bc0000940] RTP: missed 42 packets
[rtsp @ 0x7f6bc0000940] max delay reached. need to consume packet
[rtsp @ 0x7f6bc0000940] RTP: missed 2 packetsThen eventually the video just freezes. The first time it froze after around 5 minutes, but I wasn’t able to say definitively if it froze the instant 44 packets were dropped or if it froze randomly later. So the second time I stared intently.... for 21 minutes. Then I got bored of it not freezing, turned to pet my cat, and when I looked back 15 seconds later it was frozen. I think it only breaks when no one is watching it.
What I can say definitively is :
- While running normally,
M-V
hovers around 0 (anywhere between-0.01
and+0.01
) - Once frozen,
M-V
begins to count down into negative numbers without stopping - although at a rate slower than-1
per second - While running normally,
aq
is0KB
andvq
is a positive number (I think it was30KB
or so ?) - Once frozen,
vq
is also0KB
It’s a really cheap camera with a crummy power supply that goes out if you breathe on it, so it’s likely the camera is going temporarily offline during this time — but I’d like ffmpeg to wait out a timeout and resume streaming when it sees the camera again.
- While running normally,
-
FFMPEG - Zoompan image overlay keep ratio
4 mai 2018, par Pier Giorgio MisleyWith zoompan I can zoom in and out an image overlayed over a video. My problem is that the image ratio is not respected and the image is stretched in something like 16:9
The image in the center is a phone vertical picture, but It result like this :
Looks like zoompan is trying to stretch to full width and the height to.. something. How can I keep the ratio while zooming ? I tried using
sar
but it doesn’t workNote : I read this post and I probably should set the size, but how can I set it to keep the original one ?
Edit :
-i "vid.mov" -loop 1 -t 1 -i "1.png" -filter_complex "[1:v]format=rgba,scale=1440x2560,setsar=1/1,zoompan=z='min(zoom+0.0015,1.5)':s=720x1280:d=7250:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)',fade=in:st=20:d=1:alpha=1,fade=out:st=77:d=1:alpha=1[im];[0][im]overlay=(main_w-overlay_w)/2:(main_h - overlay_h)/2:shortest=1" -pix_fmt yuv420p -c:a copy output_0.mp4
With this, in some video format/resolutions it works, in others not
ie : with
.mp4
it works, with.mov
it doesn’tEdit2 :
here is the log (names here are not truncated, there is the full path instead of file name)
Error : ffmpeg version N-90893-gcae6f806a6 Copyright (c) 2000-2018 the
FFmpeg developersError : built with gcc 7.3.0 (GCC)
Error : configuration : —enable-gpl —enable-version3 —enable-sdl2
—enable-bzlib —enable-fontconfig —enable-gnutls —enable-iconv —enable-libass —enable-libbluray —enable-libfreetype —enable-libmp3lame —enable-libopencore-amrnb —enable-libopencore-amrwb —enable-libopenjpeg —enable-libopus —enable-libshine —enable-libsnappy —enable-libsoxr —enable-libtheora —enable-libtwolame —enable-libvpx —enable-libwavpack —enable-libwebp —enable-libx264 —enable-libx265 —enable-libxml2 —enable-libzimg —enable-lzma —enable-zlib —enable-gmp —enable-libvidstab —enable-libvorbis —enable-libvo-amrwbenc —enable-libmysofa —enable-libspeex —enable-libxvid —enable-libaom —enable-libmfx —enable-amf —enable-ffnvcodec —enable-cuvid —enable-d3d11va —enable-nvenc —enable-nvdec —enable-dxva2 —enable-avisynthError : libavutil 56. 17.100 / 56. 17.100
Error : libavcodec 58. 19.100 / 58. 19.100
Error : libavformat 58. 13.100 / 58. 13.100
Error : libavdevice 58. 4.100 / 58. 4.100
Error : libavfilter 7. 21.100 / 7. 21.100
Error : libswscale 5. 2.100 / 5. 2.100
Error : libswresample 3. 2.100 / 3. 2.100
Error : libpostproc 55. 2.100 / 55. 2.100
Error : Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
’C :\AREA\Progetti\VideoEditingDefunti\samples\video\template_religioso_2.mp4’ :Error : Metadata :
Error : major_brand : isom
Error : minor_version : 512
Error : compatible_brands : isomiso2avc1mp41
Error : encoder : Lavf58.13.100
Error : Duration : 00:02:12.50, start : 0.000000, bitrate : 3149 kb/s
Error : Stream #0:0(und) : Video : h264 (High) (avc1 / 0x31637661),
yuv420p(tv, bt709), 1024x600 [SAR 1:1 DAR 128:75], 3014 kb/s, 24 fps,
24 tbr, 19200 tbn, 50 tbc (default)Error : Metadata :
Error : handler_name : VideoHandler
Error : timecode : 00:00:00:00
Error : Stream #0:1(und) : Audio : aac (LC) (mp4a / 0x6134706D),
44100 Hz, stereo, fltp, 129 kb/s (default)Error : Metadata :
Error : handler_name : SoundHandler
Error : Stream #0:2(eng) : Data : none (tmcd / 0x64636D74)
Error : Metadata :
Error : handler_name : TimeCodeHandler
Error : timecode : 00:00:00:00
Error : Input #1, png_pipe, from
’C :\AREA\Progetti\VideoEditingDefunti\samples\in\esempio1\1 s.png’ :Error : Duration : N/A, bitrate : N/A
Error : Stream #1:0 : Video : png, rgb24(pc), 720x1280, 25 fps, 25
tbr, 25 tbn, 25 tbcError : Stream mapping :
Error : Stream #0:0 (h264) -> overlay:main
Error : Stream #1:0 (png) -> format
Error : overlay -> Stream #0:0 (libx264)
Error : Stream #0:1 -> #0:1 (copy)
Error : Press [q] to stop, [?] for help
Error : [libx264 @ 000002415f7f8280] using SAR=1/1
Error : [libx264 @ 000002415f7f8280] using cpu capabilities : MMX2
SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2Error : [libx264 @ 000002415f7f8280] profile High, level 3.1
Error : [libx264 @ 000002415f7f8280] 264 - core 155 r2901 7d0ff22 -
H.264/MPEG-4 AVC codec - Copyleft 2003-2018 -
http://www.videolan.org/x264.html - options : cabac=1 ref=3
deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00
mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0
deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12
lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0
bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1
b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250
keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf
mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40
aq=1:1.00Error : Output #0, mp4, to
’C :\AREA\Progetti\VideoEditingDefunti\samples\in\esempio1\output_0.mp4’ :Error : Metadata :
Error : major_brand : isom
Error : minor_version : 512
Error : compatible_brands : isomiso2avc1mp41
Error : encoder : Lavf58.13.100
Error : Stream #0:0 : Video : h264 (libx264) (avc1 / 0x31637661),
yuv420p, 1024x600 [SAR 1:1 DAR 128:75], q=-1—1, 24 fps, 12288 tbn, 24
tbc (default)Error : Metadata :
Error : encoder : Lavc58.19.100 libx264
Error : Side data :
Error : cpb : bitrate max/min/avg : 0/0/0 buffer size : 0 vbv_delay :
-1Error : Stream #0:1(und) : Audio : aac (LC) (mp4a / 0x6134706D),
44100 Hz, stereo, fltp, 129 kb/s (default)Error : Metadata :
Error : handler_name : SoundHandler
Error : [swscaler @ 0000024164404cc0] Warning : data is not aligned !
This can lead to a speed lossError : frame= 50 fps=0.0 q=0.0 size= 0kB time=00:00:02.39
bitrate= 0.2kbits/s speed=4.76xError : frame= 107 fps=106 q=28.0 size= 0kB time=00:00:04.76
bitrate= 0.1kbits/s speed=4.72xError : frame= 170 fps=113 q=28.0 size= 0kB time=00:00:07.38
bitrate= 0.1kbits/s speed=4.89xError : frame= 236 fps=117 q=28.0 size= 0kB time=00:00:10.14
bitrate= 0.0kbits/s speed=5.05xError : frame= 308 fps=123 q=28.0 size= 0kB time=00:00:13.14
bitrate= 0.0kbits/s speed=5.23xError : frame= 381 fps=126 q=28.0 size= 0kB time=00:00:16.18
bitrate= 0.0kbits/s speed=5.37xError : frame= 453 fps=129 q=28.0 size= 256kB time=00:00:19.17
bitrate= 109.4kbits/s speed=5.45xError : frame= 524 fps=130 q=28.0 size= 256kB time=00:00:22.12
bitrate= 94.8kbits/s speed= 5.5xError : frame= 587 fps=129 q=28.0 size= 256kB time=00:00:24.75
bitrate= 84.7kbits/s speed=5.46xError : frame= 640 fps=127 q=28.0 size= 512kB time=00:00:26.95
bitrate= 155.6kbits/s speed=5.35xError : frame= 695 fps=125 q=28.0 size= 768kB time=00:00:29.25
bitrate= 215.1kbits/s speed=5.28xError : frame= 751 fps=124 q=28.0 size= 1024kB time=00:00:31.60
bitrate= 265.5kbits/s speed=5.22xError : frame= 804 fps=123 q=28.0 size= 1280kB time=00:00:33.80
bitrate= 310.2kbits/s speed=5.16xError : frame= 856 fps=121 q=28.0 size= 1536kB time=00:00:35.96
bitrate= 349.8kbits/s speed= 5.1xError : frame= 906 fps=120 q=28.0 size= 1792kB time=00:00:38.05
bitrate= 385.7kbits/s speed=5.03xError : frame= 954 fps=118 q=28.0 size= 2048kB time=00:00:40.05
bitrate= 418.9kbits/s speed=4.96xError : frame= 1004 fps=117 q=28.0 size= 2304kB time=00:00:42.14
bitrate= 447.9kbits/s speed=4.91xError : frame= 1052 fps=116 q=28.0 size= 2560kB time=00:00:44.14
bitrate= 475.1kbits/s speed=4.85xError : frame= 1107 fps=115 q=28.0 size= 2816kB time=00:00:46.41
bitrate= 497.0kbits/s speed=4.83xError : frame= 1161 fps=115 q=28.0 size= 3072kB time=00:00:48.66
bitrate= 517.1kbits/s speed=4.81xError : frame= 1205 fps=113 q=28.0 size= 3584kB time=00:00:50.50
bitrate= 581.4kbits/s speed=4.75xError : frame= 1250 fps=112 q=28.0 size= 3840kB time=00:00:52.38
bitrate= 600.5kbits/s speed=4.71xError : frame= 1294 fps=111 q=28.0 size= 4096kB time=00:00:54.21
bitrate= 618.9kbits/s speed=4.66xError : frame= 1340 fps=110 q=28.0 size= 4608kB time=00:00:56.14
bitrate= 672.3kbits/s speed=4.62xError : frame= 1384 fps=109 q=28.0 size= 4864kB time=00:00:57.98
bitrate= 687.2kbits/s speed=4.58xError : frame= 1428 fps=108 q=28.0 size= 5120kB time=00:00:59.81
bitrate= 701.2kbits/s speed=4.54xError : frame= 1461 fps=107 q=28.0 size= 5376kB time=00:01:01.18
bitrate= 719.8kbits/s speed=4.47xError : frame= 1503 fps=106 q=28.0 size= 5632kB time=00:01:02.92
bitrate= 733.2kbits/s speed=4.44xError : frame= 1547 fps=105 q=28.0 size= 5888kB time=00:01:04.76
bitrate= 744.8kbits/s speed=4.41xError : frame= 1598 fps=105 q=28.0 size= 6144kB time=00:01:06.89
bitrate= 752.4kbits/s speed= 4.4xError : frame= 1633 fps=104 q=28.0 size= 6400kB time=00:01:08.33
bitrate= 767.2kbits/s speed=4.35xError : frame= 1676 fps=103 q=28.0 size= 6656kB time=00:01:10.14
bitrate= 777.3kbits/s speed=4.33xError : frame= 1724 fps=103 q=28.0 size= 6656kB time=00:01:12.14
bitrate= 755.8kbits/s speed=4.31xError : frame= 1760 fps=102 q=28.0 size= 7168kB time=00:01:13.63
bitrate= 797.5kbits/s speed=4.28xError : frame= 1784 fps=101 q=28.0 size= 7424kB time=00:01:14.62
bitrate= 814.9kbits/s speed=4.21xError : frame= 1815 fps= 99 q=28.0 size= 7936kB time=00:01:15.92
bitrate= 856.2kbits/s speed=4.16xError : frame= 1852 fps= 99 q=28.0 size= 8192kB time=00:01:17.46
bitrate= 866.4kbits/s speed=4.13xError : frame= 1886 fps= 98 q=28.0 size= 8704kB time=00:01:18.87
bitrate= 904.0kbits/s speed=4.09xError : frame= 1914 fps= 97 q=28.0 size= 8960kB time=00:01:20.06
bitrate= 916.8kbits/s speed=4.04xError : frame= 1954 fps= 96 q=28.0 size= 9216kB time=00:01:21.71
bitrate= 924.0kbits/s speed=4.02xError : frame= 1992 fps= 96 q=28.0 size= 9728kB time=00:01:23.31
bitrate= 956.5kbits/s speed= 4xError : frame= 2030 fps= 95 q=28.0 size= 9984kB time=00:01:24.89
bitrate= 963.4kbits/s speed=3.98xError : frame= 2073 fps= 95 q=28.0 size= 10752kB time=00:01:26.68
bitrate=1016.2kbits/s speed=3.97xError : frame= 2113 fps= 94 q=28.0 size= 11008kB time=00:01:28.35
bitrate=1020.7kbits/s speed=3.95xError : frame= 2141 fps= 94 q=28.0 size= 11264kB time=00:01:29.51
bitrate=1030.9kbits/s speed=3.91xError : frame= 2168 fps= 93 q=28.0 size= 11520kB time=00:01:30.62
bitrate=1041.3kbits/s speed=3.88xError : frame= 2205 fps= 92 q=28.0 size= 12032kB time=00:01:32.18
bitrate=1069.2kbits/s speed=3.85xError : frame= 2244 fps= 92 q=28.0 size= 12288kB time=00:01:33.80
bitrate=1073.1kbits/s speed=3.84xError : frame= 2294 fps= 92 q=28.0 size= 12544kB time=00:01:35.87
bitrate=1071.8kbits/s speed=3.85xError : frame= 2339 fps= 92 q=28.0 size= 12800kB time=00:01:37.75
bitrate=1072.7kbits/s speed=3.84xError : frame= 2389 fps= 92 q=28.0 size= 12800kB time=00:01:39.84
bitrate=1050.2kbits/s speed=3.85xError : frame= 2436 fps= 92 q=28.0 size= 13056kB time=00:01:41.79
bitrate=1050.7kbits/s speed=3.85xError : frame= 2481 fps= 92 q=28.0 size= 13312kB time=00:01:43.67
bitrate=1051.8kbits/s speed=3.85xError : frame= 2533 fps= 92 q=28.0 size= 13568kB time=00:01:45.83
bitrate=1050.2kbits/s speed=3.85xError : frame= 2564 fps= 92 q=28.0 size= 13824kB time=00:01:47.13
bitrate=1057.0kbits/s speed=3.83xError : frame= 2615 fps= 92 q=28.0 size= 14080kB time=00:01:49.27
bitrate=1055.6kbits/s speed=3.84xError : frame= 2662 fps= 92 q=28.0 size= 14336kB time=00:01:51.22
bitrate=1055.9kbits/s speed=3.84xError : frame= 2701 fps= 92 q=28.0 size= 14592kB time=00:01:52.84
bitrate=1059.3kbits/s speed=3.83xError : frame= 2746 fps= 92 q=28.0 size= 14592kB time=00:01:54.72
bitrate=1041.9kbits/s speed=3.83xError : frame= 2790 fps= 91 q=28.0 size= 14848kB time=00:01:56.56
bitrate=1043.5kbits/s speed=3.82xError : frame= 2834 fps= 91 q=28.0 size= 15360kB time=00:01:58.35
bitrate=1063.2kbits/s speed=3.82xError : frame= 2877 fps= 91 q=28.0 size= 15616kB time=00:02:00.18
bitrate=1064.4kbits/s speed=3.82xError : frame= 2921 fps= 91 q=28.0 size= 15616kB time=00:02:02.02
bitrate=1048.4kbits/s speed=3.81xError : frame= 2962 fps= 91 q=28.0 size= 15872kB time=00:02:03.71
bitrate=1051.0kbits/s speed=3.81xError : frame= 3013 fps= 91 q=28.0 size= 16128kB time=00:02:05.85
bitrate=1049.8kbits/s speed=3.81xError : frame= 3080 fps= 92 q=28.0 size= 16128kB time=00:02:08.63
bitrate=1027.1kbits/s speed=3.84xError : frame= 3147 fps= 93 q=28.0 size= 16128kB time=00:02:11.42
bitrate=1005.3kbits/s speed=3.86xError : frame= 3180 fps= 93 q=-1.0 Lsize= 16525kB time=00:02:12.49
bitrate=1021.7kbits/s speed=3.86xError : video:14336kB audio:2088kB subtitle:0kB other streams:0kB
global headers:0kB muxing overhead : 0.612608%Error : [libx264 @ 000002415f7f8280] frame I:14 Avg QP:16.64 size :
42662Error : [libx264 @ 000002415f7f8280] frame P:1149 Avg QP:20.03 size :
10088Error : [libx264 @ 000002415f7f8280] frame B:2017 Avg QP:21.44 size :
1235Error : [libx264 @ 000002415f7f8280] consecutive B-frames : 2.6% 37.5%
2.5% 57.4%Error : [libx264 @ 000002415f7f8280] mb I I16..4 : 30.9% 57.6% 11.5%
Error : [libx264 @ 000002415f7f8280] mb P I16..4 : 4.3% 5.9% 0.3%
P16..4 : 35.2% 9.9% 7.4% 0.0% 0.0% skip:36.9%Error : [libx264 @ 000002415f7f8280] mb B I16..4 : 0.3% 0.5% 0.0%
B16..8 : 19.3% 0.9% 0.1% direct : 2.0% skip:76.9% L0:39.8% L1:55.2%
BI : 5.0%Error : [libx264 @ 000002415f7f8280] 8x8 transform intra:56.7%
inter:84.0%Error : [libx264 @ 000002415f7f8280] coded y,uvDC,uvAC intra : 33.3%
65.5% 24.9% inter : 10.4% 17.5% 2.4%Error : [libx264 @ 000002415f7f8280] i16 v,h,dc,p : 59% 17% 11% 12%
Error : [libx264 @ 000002415f7f8280] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu : 35%
15% 33% 2% 3% 3% 3% 3% 2%Error : [libx264 @ 000002415f7f8280] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu : 36%
18% 13% 4% 6% 7% 6% 6% 4%Error : [libx264 @ 000002415f7f8280] i8c dc,h,v,p : 52% 17% 24% 7%
Error : [libx264 @ 000002415f7f8280] Weighted P-Frames : Y:25.6%
UV:17.5%Error : [libx264 @ 000002415f7f8280] ref P L0 : 65.1% 15.7% 14.4% 4.3%
0.5%Error : [libx264 @ 000002415f7f8280] ref B L0 : 89.8% 8.1% 2.1%
Error : [libx264 @ 000002415f7f8280] ref B L1 : 98.1% 1.9%
Error : [libx264 @ 000002415f7f8280] kb/s:886.33
Error :
-
Lawful basis for processing personal data under GDPR with Matomo
30 avril 2018, par InnoCraftDisclaimer : this blog post has been written by digital analysts, not lawyers. The purpose of this article is to explain what is a lawful basis and which one you can use with Matomo in order to be GDPR compliant. This work comes from our interpretation of the following web page from the UK privacy commission : ICO. It cannot be considered as professional legal advice. So as GDPR, this information is subject to change. GDPR may be also known as DSGVO in German, BDAR in Lithuanian, RGPD in Spanish, French, Italian, Portuguese. This blog post contains public sector information licensed under the Open Government Licence v3.0.
The golden rule under GDPR is that you need to have a lawful basis in order to process personal data. Note that it is possible to not process personal data with Matomo. When you do not collect any personal data, then you do not need to determine a lawful basis and this article wouldn’t apply to you.
“If no lawful basis applies to your processing, your processing will be unlawful and in breach of the first principle.“
Source : ICO, based on article 6 of GDPR.
As you may process personal data in Matomo, you have to :
Even if you think you don’t process personal data, we recommend reading this post about personal data in Matomo (personal data may be hidden in many ways).
Note that if you are processing special category data (ethnic origin, politics, religion, trade union membership…) or criminal offence data ; extra responsibilities are applied, and we will not detail them in this blog post.
1 – Define a lawful basis
There are 6 different lawful bases all defined within article 6 of the GDPR official text :
- Consent : the data subject has given consent to the processing of his or her personal data for one or more specific purposes.
- Contract : processing is necessary for the performance of a contract to which the data subject is party or in order to take steps at the request of the data subject prior to entering into a contract.
- Legal obligation : processing is necessary for compliance with a legal obligation to which the controller is subject.
- Vital interests : processing is necessary in order to protect the vital interests of the data subject or of another natural person.
- Public task : processing is necessary for the performance of a task carried out in the public interest or in the exercise of an official authority vested in the controller.
- Legitimate interests : processing is necessary for the purposes of the legitimate interests pursued by the controller or by a third party ; except where such interests are overridden by the interests or fundamental rights and freedoms of the data subject which require protection of personal data, in particular where the data subject is a child.
As you can see, most of them are not applicable to Matomo. As ICO is mentioning it within their documentation :
“In many cases you are likely to have a choice between using legitimate interests or consent.”
“Consent” or “Legitimate interests” : which lawful basis is the best when using Matomo ?
Well, there is no right or wrong answer here.
In order to make this choice, ICO listed on their website different questions you should keep in mind :
- Who does the processing benefit ?
- Would individuals expect this processing to take place ?
- What is your relationship with the individual ?
- Are you in a position of power over them ?
- What is the impact of the processing on the individual ?
- Are they vulnerable ?
- Are some of the individuals concerns likely to object ?
- Are you able to stop the processing at any time on request ?
From our perspective, “Legitimate interests” should be used in most of the cases as :
- The processing benefits to the owner of the website and not to a third party company.
- A user expects to have their data kept by the website itself.
- Matomo provides many features in order to show how personal data is processed and how users can exercise their rights.
- As the data is not used for profiling, the impact of processing personal data is very low.
But once more, it really depends ; if you are processing personal data which may represent a risk to the final user, then getting consent is for us the right lawful basis.
If you are not sure, at the time of writing ICO is providing a tool in order to help you make this decision :
Note that once you choose a lawful basis, it is highly recommended not to switch to another unless you have a good reason.
What are the rights that a data subject can exercise ?
According to the lawful basis you choose for processing personal data with Matomo, your users will be able to exercise different rights :
Right to be informed Right of access Right to erasure Right to portability Right to object Right to withdraw consent Legitimate interests X X X X Consent X X X X X - Right to be informed : whatever the lawful basis you choose, you need to inform your visitor about it within your privacy notice.
- Right of access : as described in article 15 of GDPR. Your visitor has the right to access the personal data you are processing about them. You can exercise their right directly within the page “GDPR Tools” in your Matomo.
- Right to erasure : it means that a visitor will be able to ask you to erase all their data. You can exercise the right to erasure directly within the page “GDPR Tools” in your Matomo.
- Right to portability : it means that you need to export the data which concern the individual in a machine-readable format and provide them with their personal data. You can exercise their right directly within the page “GDPR Tools” in your Matomo.
- Right to object : it means that your visitor has the right to say no to the processing of their personal data. In order to exercise this right, you need to implement the opt-out feature on your website.
- Right to withdraw consent : it means that your visitor can remove their consent at any time. We developed a feature in order to do just that. You can learn more by opening the page “Privacy > Asking for consent” in your Matomo.
2 – Document your choice
Once you choose “Legitimate interests” or “Consent” lawful basis, you will have some obligations to fulfill. From our interpretation, “Legitimate interests” means writing more documentation, “Consent” means a more technical approach.
What should I do if I am processing personal data with Matomo based on “Legitimate interests ?
ICO is providing a checklist for “Legitimate interests”, below is our interpretation :
- Check that legitimate interests is the most appropriate lawful basis.
Our interpretation : document and justify why you choose this lawful basis in particular. This tool from ICO can help you.
- Understand your responsibility to protect the individual’s interests.
Our interpretation : you need to take all the measures in order to protect your users privacy and data security. Please refer to our guide in order to secure your Matomo installation.
- Conduct a legitimate interests assessment (LIA) and keep a record of it to ensure that you can justify your decision. This document is composed of a set of questions on those 3 key concerns : 1) purpose, 2) necessity, 3) balancing.
1) Purpose :
- Why do you want to process the data – what are you trying to achieve ?
- Who benefits from the processing ? In what way ?
- Are there any wider public benefits to the processing ?
- How important are those benefits ?
- What would the impact be if you couldn’t go ahead ?
- Would your use of the data be unethical or unlawful in any way ?
2) Necessity :
- Does this processing actually help to further that interest ?
- Is it a reasonable way to go about it ?
- Is there another less intrusive way to achieve the same result ?
3) Balancing :
- What is the nature of your relationship with the individual ?
- Is any of the data particularly sensitive or private ?
- Would people expect you to use their data in this way ?
- Are you happy to explain it to them ?
- Are some people likely to object or find it intrusive ?
- What is the possible impact on the individual ?
- How big an impact might it have on them ?
- Are you processing children’s data ?
- Are any of the individuals vulnerable in any other way ?
- Can you adopt any safeguards to minimise the impact ?
- Can you offer an opt-out ?
- Identify the relevant legitimate interests.
- Check that the processing is necessary and there is no less intrusive way to achieve the same result.
- Perform a balancing test, and be confident that the individual’s interests do not override those legitimate interests.
- Use individuals’ data in ways they would reasonably expect, unless you have a very good reason.
Our interpretation : use those data to improve user experience for example.
- Do not use people’s data in ways they would find intrusive or which could cause them harm, unless you have a very good reason.
Our interpretation : ask yourself if this data is representing a risk for the individuals.
- If you process children’s data, take extra care to make sure you protect their interests.
- Consider safeguards to reduce the impact where possible.
Our interpretation : Check if your web hosting provider is providing appropriate safeguards.
- Consider whether you can offer an opt out.
Our interpretation : Matomo is providing you the opt-out feature.
- If your LIA identifies a significant privacy impact, consider whether you also need to conduct a DPIA.
Our interpretation : A DPIA can easily be conducted by using this software from the French privacy commission.
- Regularly review your LIA and update it when circumstances change.
- Include information about your legitimate interests in your privacy information.
As you see, going for “Legitimate interests” requires a lot of written documentation. Let’s see how “Consent” differ.
What should I do if I am processing personal data with Matomo based on “Consent” ?
As previously mentioned, using “Consent” rather than “Legitimate interests” is more technical but less intense in terms of documentation. Like for “Legitimate interests”, ICO is providing a checklist for “Consent” which is divided into 3 key categories : 1) asking for consent, 2) recording consent, and 3) managing consent.
- Asking for consent :
- Check that consent is the most appropriate lawful basis for processing.
- Make the request for consent prominent and separate from your terms and conditions.
- Ask people to positively opt in. Don’t use pre-ticked boxes or any other type of default consent.
- Use clear, plain language that is easy to understand.
- Specify why you want the data and what you are going to do with it.
- Give individual (‘granular’) options to consent separately to different purposes and types of processing.
- Name your organisation and any third party controllers who will be relying on the consent.
- Tell individuals they can withdraw their consent.
- Ensure that individuals can refuse to consent without detriment.
- Avoid making consent a precondition of a service.
- If you offer online services directly to children, only seek consent if you have age-verification measures (and parental-consent measures for younger children) in place.
- Recording consent :
- Keep a record of when and how you got consent from the individual.
- Keep a record of exactly what you told them at the time.
- Managing consent :
- Regularly review consents to check that the relationship, the processing and the purposes have not changed.
- Have processes in place to refresh consent at appropriate intervals, including any parental consent.
- Consider using privacy dashboards or other preference-management tools as a matter of good practice.
- Make it easy for individuals to withdraw their consent at any time, and publicise how to do so.
- Act on withdrawals of consent as soon as you can.
- Don’t penalise individuals who wish to withdraw consent.
3 – Inform your visitor about it in a privacy notice
Privacy notices are an important part within the GDPR process. Read our blog post dedicated to privacy notices to learn more.
We really hope you enjoyed reading this blog post. Please have a look at our Matomo GDPR guide for more information.
The post Lawful basis for processing personal data under GDPR with Matomo appeared first on Analytics Platform - Matomo.