
Recherche avancée
Autres articles (41)
-
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...) -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...) -
De l’upload à la vidéo finale [version standalone]
31 janvier 2010, parLe chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
Upload et récupération d’informations de la vidéo source
Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)
Sur d’autres sites (6026)
-
Multicast video stream from Dahua IP surveillance camera - ffmpeg etc [closed]
23 mai, par Jaroslav MazurakI have a Dahua IP surveillance camera and want to get the video via a multicast stream.


In the camera settings, I enabled Multicast streaming, IP 239.240.1.2, and port 40000 (the default). The RTSP port is 554 (the default).


Neither VLC 3.0.21 nor ffmpeg 7.1.1 work when I try to use multicast. Both of them work when I use a unicast. OS is Windows 11 x64. Both applications are allowed in the Windows firewall (any protocol, all networks ; same result if the firewall is disabled completely). I have Wireshark installed, and I see that when a client requests the stream via RTSP, the multicast traffic from the camera is present ; ffmpeg determines the stream but doesn't capture any video, and the output file is empty (it contains only the header and no video). When I use unicast, the correct output video file is saved.


I have no idea what I'm doing wrong, and why ffmpeg (and VLC) doesn't capture anything in the multicast mode.


Here are the ffmpeg logs for multicast and unicast modes.


Multicast :


ffmpeg -fflags nobuffer -flags low_delay -timeout 10M -stats -rtsp_transport udp_multicast -i "rtsp://user:password@10.10.10.10:554/cam/realmonitor?channel=1&subtype=0&unicast=false" -acodec copy -vcodec copy -y output.mkv

ffmpeg version 7.1.1-full_build-www.gyan.dev Copyright (c) 2000-2025 the FFmpeg developers
 built with gcc 14.2.0 (Rev1, Built by MSYS2 projffmpeg -fflags nobuffer -flags low_delay -timeout 10M -stats -i "rtsp://user:password@10.10.10.10:554/cam/realmonitor?channel=1&subtype=0" -acodec copy -vcodec copy -y output.mkv

ffmpeg version 7.1.1-full_build-www.gyan.dev Copyright (c) 2000-2025 the FFmpeg developers
 built with gcc 14.2.0 (Rev1, Built by MSYS2 project)
 configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-lcms2 --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-libdvdnav --enable-libdvdread --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libopenjpeg --enable-libquirc --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-libqrencode --enable-librav1e --enable-libsvtav1 --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-liblc3 --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
 libavutil 59. 39.100 / 59. 39.100
 libavcodec 61. 19.101 / 61. 19.101
 libavformat 61. 7.100 / 61. 7.100
 libavdevice 61. 3.100 / 61. 3.100
 libavfilter 10. 4.100 / 10. 4.100
 libswscale 8. 3.100 / 8. 3.100
 libswresample 5. 3.100 / 5. 3.100
 libpostproc 58. 3.100 / 58. 3.100
Input #0, rtsp, from 'rtsp://user:password@10.10.10.10:554/cam/realmonitor?channel=1&subtype=0':
 Metadata:
 title : Media Server
 Duration: N/A, start: 0.000000, bitrate: N/A
 Stream #0:0: Video: hevc (Main), yuv420p(tv), 2560x1440, 25 fps, 25 tbr, 90k tbn
Stream mapping:
 Stream #0:0 -> #0:0 (copy)
Output #0, matroska, to 'output.mkv':
 Metadata:
 title : Media Server
 encoder : Lavf61.7.100
 Stream #0:0: Video: hevc (Main), yuv420p(tv), 2560x1440, q=2-31, 25 fps, 25 tbr, 1k tbn
Press [q] to stop, [?] for help
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=00:00:01.32 bitrate= 0.0kbits/s speed= 2.6x 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=00:00:01.84 bitrate= 0.0kbits/s speed=1.81x 
frame= 10 fps=6.5 q=-1.0 size= 1KiB time=00:00:02.36 bitrate= 2.2kbits/s speed=1.53x 
frame= 23 fps= 11 q=-1.0 size= 1KiB time=00:00:02.88 bitrate= 1.8kbits/s speed= 1.4x 
frame= 36 fps= 14 q=-1.0 size= 1KiB time=00:00:03.40 bitrate= 1.5kbits/s speed=1.33x 
frame= 49 fps= 16 q=-1.0 size= 1KiB time=00:00:03.92 bitrate= 1.3kbits/s speed=1.27x 
frame= 62 fps= 17 q=-1.0 size= 256KiB time=00:00:04.44 bitrate= 472.3kbits/s speed=1.23x 
frame= 75 fps= 18 q=-1.0 size= 256KiB time=00:00:04.96 bitrate= 422.8kbits/s speed= 1.2x 
frame= 88 fps= 19 q=-1.0 size= 256KiB time=00:00:05.48 bitrate= 382.7kbits/s speed=1.18x 
frame= 100 fps= 19 q=-1.0 size= 256KiB time=00:00:05.96 bitrate= 351.9kbits/s speed=1.16x 
frame= 113 fps= 20 q=-1.0 size= 768KiB time=00:00:06.48 bitrate= 970.9kbits/s speed=1.14x 
frame= 126 fps= 20 q=-1.0 size= 768KiB time=00:00:07.00 bitrate= 898.8kbits/s speed=1.13x 
frame= 139 fps= 21 q=-1.0 size= 768KiB time=00:00:07.52 bitrate= 836.6kbits/s speed=1.12x 
frame= 152 fps= 21 q=-1.0 size= 1280KiB time=00:00:08.04 bitrate=1304.2kbits/s speed=1.11x 
frame= 165 fps= 21 q=-1.0 size= 1280KiB time=00:00:08.56 bitrate=1225.0kbits/s speed=1.11x 
frame= 178 fps= 22 q=-1.0 size= 1280KiB time=00:00:09.08 bitrate=1154.8kbits/s speed= 1.1x 
frame= 191 fps= 22 q=-1.0 size= 1280KiB time=00:00:09.60 bitrate=1092.3kbits/s speed= 1.1x 
frame= 203 fps= 22 q=-1.0 size= 1792KiB time=00:00:10.08 bitrate=1456.4kbits/s speed=1.09x 
frame= 217 fps= 22 q=-1.0 size= 1792KiB time=00:00:10.64 bitrate=1379.7kbits/s speed=1.09x 


[q] command received. Exiting.

[out#0/matroska @ 000001e0329cad80] video:2377KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.100389%
frame= 230 fps= 22 q=-1.0 Lsize= 2380KiB time=00:00:11.16 bitrate=1746.9kbits/s speed=1.08x 
ect)
 configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-lcms2 --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-libdvdnav --enable-libdvdread --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libopenjpeg --enable-libquirc --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-libqrencode --enable-librav1e --enable-libsvtav1 --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-liblc3 --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
 libavutil 59. 39.100 / 59. 39.100
 libavcodec 61. 19.101 / 61. 19.101
 libavformat 61. 7.100 / 61. 7.100
 libavdevice 61. 3.100 / 61. 3.100
 libavfilter 10. 4.100 / 10. 4.100
 libswscale 8. 3.100 / 8. 3.100
 libswresample 5. 3.100 / 5. 3.100
 libpostproc 58. 3.100 / 58. 3.100
Input #0, rtsp, from 'rtsp://user:password@10.10.10.10:554/cam/realmonitor?channel=1&subtype=0&unicast=false':
 Metadata:
 title : Media Server
 Duration: N/A, bitrate: N/A
 Stream #0:0: Video: hevc (Main), yuv420p(tv), 2560x1440, 25 tbr, 90k tbn
Stream mapping:
 Stream #0:0 -> #0:0 (copy)
Output #0, matroska, to 'output.mkv':
 Metadata:
 title : Media Server
 encoder : Lavf61.7.100
 Stream #0:0: Video: hevc (Main), yuv420p(tv), 2560x1440, q=2-31, 25 tbr, 1k tbn
Press [q] to stop, [?] for help
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=N/A bitrate=N/A speed=N/A 
[in#0/rtsp @ 0000014b1a80a580] Error during demuxing: Error number -138 occurred
[out#0/matroska @ 0000014b1a7ee700] video:0KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown
[out#0/matroska @ 0000014b1a7ee700] Output file is empty, nothing was encoded
frame= 0 fps=0.0 q=-1.0 Lsize= 1KiB time=N/A bitrate=N/A speed=N/A 



Unicast :


ffmpeg -fflags nobuffer -flags low_delay -timeout 10M -stats -i "rtsp://user:password@10.10.10.10:554/cam/realmonitor?channel=1&subtype=0" -acodec copy -vcodec copy -y output.mkv

ffmpeg version 7.1.1-full_build-www.gyan.dev Copyright (c) 2000-2025 the FFmpeg developers
 built with gcc 14.2.0 (Rev1, Built by MSYS2 project)
 configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-lcms2 --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-libdvdnav --enable-libdvdread --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libopenjpeg --enable-libquirc --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-libqrencode --enable-librav1e --enable-libsvtav1 --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-liblc3 --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
 libavutil 59. 39.100 / 59. 39.100
 libavcodec 61. 19.101 / 61. 19.101
 libavformat 61. 7.100 / 61. 7.100
 libavdevice 61. 3.100 / 61. 3.100
 libavfilter 10. 4.100 / 10. 4.100
 libswscale 8. 3.100 / 8. 3.100
 libswresample 5. 3.100 / 5. 3.100
 libpostproc 58. 3.100 / 58. 3.100
Input #0, rtsp, from 'rtsp://user:password@10.10.10.10:554/cam/realmonitor?channel=1&subtype=0':
 Metadata:
 title : Media Server
 Duration: N/A, start: 0.000000, bitrate: N/A
 Stream #0:0: Video: hevc (Main), yuv420p(tv), 2560x1440, 25 fps, 25 tbr, 90k tbn
Stream mapping:
 Stream #0:0 -> #0:0 (copy)
Output #0, matroska, to 'output.mkv':
 Metadata:
 title : Media Server
 encoder : Lavf61.7.100
 Stream #0:0: Video: hevc (Main), yuv420p(tv), 2560x1440, q=2-31, 25 fps, 25 tbr, 1k tbn
Press [q] to stop, [?] for help
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=00:00:01.32 bitrate= 0.0kbits/s speed= 2.6x 
frame= 0 fps=0.0 q=-1.0 size= 0KiB time=00:00:01.84 bitrate= 0.0kbits/s speed=1.81x 
frame= 10 fps=6.5 q=-1.0 size= 1KiB time=00:00:02.36 bitrate= 2.2kbits/s speed=1.53x 
frame= 23 fps= 11 q=-1.0 size= 1KiB time=00:00:02.88 bitrate= 1.8kbits/s speed= 1.4x 
frame= 36 fps= 14 q=-1.0 size= 1KiB time=00:00:03.40 bitrate= 1.5kbits/s speed=1.33x 
frame= 49 fps= 16 q=-1.0 size= 1KiB time=00:00:03.92 bitrate= 1.3kbits/s speed=1.27x 
frame= 62 fps= 17 q=-1.0 size= 256KiB time=00:00:04.44 bitrate= 472.3kbits/s speed=1.23x 
frame= 75 fps= 18 q=-1.0 size= 256KiB time=00:00:04.96 bitrate= 422.8kbits/s speed= 1.2x 
frame= 88 fps= 19 q=-1.0 size= 256KiB time=00:00:05.48 bitrate= 382.7kbits/s speed=1.18x 
frame= 100 fps= 19 q=-1.0 size= 256KiB time=00:00:05.96 bitrate= 351.9kbits/s speed=1.16x 
frame= 113 fps= 20 q=-1.0 size= 768KiB time=00:00:06.48 bitrate= 970.9kbits/s speed=1.14x 
frame= 126 fps= 20 q=-1.0 size= 768KiB time=00:00:07.00 bitrate= 898.8kbits/s speed=1.13x 
frame= 139 fps= 21 q=-1.0 size= 768KiB time=00:00:07.52 bitrate= 836.6kbits/s speed=1.12x 
frame= 152 fps= 21 q=-1.0 size= 1280KiB time=00:00:08.04 bitrate=1304.2kbits/s speed=1.11x 
frame= 165 fps= 21 q=-1.0 size= 1280KiB time=00:00:08.56 bitrate=1225.0kbits/s speed=1.11x 
frame= 178 fps= 22 q=-1.0 size= 1280KiB time=00:00:09.08 bitrate=1154.8kbits/s speed= 1.1x 
frame= 191 fps= 22 q=-1.0 size= 1280KiB time=00:00:09.60 bitrate=1092.3kbits/s speed= 1.1x 
frame= 203 fps= 22 q=-1.0 size= 1792KiB time=00:00:10.08 bitrate=1456.4kbits/s speed=1.09x 
frame= 217 fps= 22 q=-1.0 size= 1792KiB time=00:00:10.64 bitrate=1379.7kbits/s speed=1.09x 


[q] command received. Exiting.

[out#0/matroska @ 000001e0329cad80] video:2377KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.100389%
frame= 230 fps= 22 q=-1.0 Lsize= 2380KiB time=00:00:11.16 bitrate=1746.9kbits/s speed=1.08x 



-
FFMpeg with PHP-7.0 on Ubuntu
25 octobre 2018, par Gabriel Bueno Lemes da SilvaI have a NGINX server with PHP-7.0 and I would like to install the ffmpeg-php extension. I’ve been trying for a few days now and in many ways.
The method that worked so far was compiling ffmpeg (https://ffmpeg.org/releases/ffmpeg-4.0.2.tar.bz2) manually, but when trying to compile ffmpeg-php (https: // sourceforge. net / projects / ffmpeg-php / files / ffmpeg-php / 0.6.0 / ffmpeg-php-0.6.0.tbz2 / download) I am encountering the following error message :
root@zumbiserver-mercury : /php7-ffmpeg# make /bin/bash
/root/php7-ffmpeg/libtool —mode=compile cc -I. -I/root/php7-ffmpeg
-DPHP_ATOM_INC -I/root/php7-ffmpeg/include -I/root/php7-ffmpeg/main -I/root/php7-ffmpeg -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib -I/usr/local/include/libavcodec/ -I/usr/local/include/libavformat/ -I/usr/local/include/libavutil/ -I/usr/local/include/libswscale/ -I/usr/local/include/libavfilter/ -I/usr/local/include/libavdevice/ -DHAVE_CONFIG_H -g -O2 -Wall -fno-strict-aliasing -c /root/php7-ffmpeg/ffmpeg-php.c -o ffmpeg-php.lo libtool : compile : cc
-I. -I/root/php7-ffmpeg -DPHP_ATOM_INC -I/root/php7-ffmpeg/include -I/root/php7-ffmpeg/main -I/root/php7-ffmpeg -I/usr/include/php/20151012 -I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext -I/usr/include/php/20151012/ext/date/lib -I/usr/local/include/libavcodec/ -I/usr/local/include/libavformat/ -I/usr/local/include/libavutil/ -I/usr/local/include/libswscale/ -I/usr/local/include/libavfilter/ -I/usr/local/include/libavdevice/ -DHAVE_CONFIG_H -g -O2 -Wall -fno-strict-aliasing -c /root/php7-ffmpeg/ffmpeg-php.c -fPIC -DPIC -o .libs/ffmpeg-php.o In
file included from /usr/include/x86_64-linux-gnu/sys/stat.h:104:0,
from /usr/include/php/20151012/Zend/zend_stream.h:28,
from /usr/include/php/20151012/Zend/zend.h:41,
from /usr/include/php/20151012/main/php.h:36,
from /root/php7-ffmpeg/ffmpeg-php.c:40 : /usr/include/x86_64-linux-gnu/bits/stat.h:91:21 : error : field
‘st_atim’ has incomplete type
struct timespec st_atim ; /* Time of last access. /
^ /usr/include/x86_64-linux-gnu/bits/stat.h:92:21 : error : field
‘st_mtim’ has incomplete type
struct timespec st_mtim ; / Time of last modification. /
^ /usr/include/x86_64-linux-gnu/bits/stat.h:93:21 : error : field
‘st_ctim’ has incomplete type
struct timespec st_ctim ; / Time of last status change. /
^ /usr/include/x86_64-linux-gnu/bits/stat.h:152:21 : error : field
‘st_atim’ has incomplete type
struct timespec st_atim ; / Time of last access. /
^ /usr/include/x86_64-linux-gnu/bits/stat.h:153:21 : error : field
‘st_mtim’ has incomplete type
struct timespec st_mtim ; / Time of last modification. /
^ /usr/include/x86_64-linux-gnu/bits/stat.h:154:21 : error : field
‘st_ctim’ has incomplete type
struct timespec st_ctim ; / Time of last status change. /
^ In file included from /usr/include/php/20151012/Zend/zend_stream.h:28:0,
from /usr/include/php/20151012/Zend/zend.h:41,
from /usr/include/php/20151012/main/php.h:36,
from /root/php7-ffmpeg/ffmpeg-php.c:40 : /usr/include/x86_64-linux-gnu/sys/stat.h:364:31 : error : array type has
incomplete element type ‘struct timespec’
const struct timespec __times[2],
^ /usr/include/x86_64-linux-gnu/sys/stat.h:371:54 : error : array type has
incomplete element type ‘struct timespec’ extern int futimens (int
__fd, const struct timespec __times[2]) __THROW ;
^ In file included from /usr/include/php/20151012/main/php.h:395:0,
from /root/php7-ffmpeg/ffmpeg-php.c:40 : /usr/include/php/20151012/Zend/zend_virtual_cwd.h:218:2 : error :
unknown type name ‘time_t’ time_t expires ;
^ /usr/include/php/20151012/Zend/zend_virtual_cwd.h:248:86 : error :
unknown type name ‘time_t’ CWD_API realpath_cache_bucket
realpath_cache_lookup(const char *path, int path_len, time_t t) ;
^ /root/php7-ffmpeg/ffmpeg-php.c : In function ‘zm_startup_ffmpeg’ :
/root/php7-ffmpeg/ffmpeg-php.c:108:5 : warning : implicit declaration of
function ‘avcodec_init’ [-Wimplicit-function-declaration]
avcodec_init() ;
^ /root/php7-ffmpeg/ffmpeg-php.c:111:5 : warning : ‘av_register_all’ is deprecated [-Wdeprecated-declarations]
av_register_all() ;
^ In file included from /root/php7-ffmpeg/ffmpeg-php.c:43:0 : /usr/local/include/libavformat/avformat.h:2025:6 : note : declared here
void av_register_all(void) ;^ Makefile:194: recipe for target 'ffmpeg-php.lo' failed make: *** [ffmpeg-php.lo] Error 1
Can someone give me a light ? I do not know what else to do !
-
Privacy-friendly analytics : The benefits of an ethical, GDPR-compliant platform
13 juin, par JoeYour visitors shouldn’t feel like you’re spying on them — even if you’re just trying to improve the user experience or track your marketing efforts.
While many analytics platforms make customers feel that way thanks to intrusive cookie consent banners and highly personalised ads, there is a growing movement towards ethical, privacy-friendly analytics.
In this article, you’ll learn what privacy-friendly analytics is, why it matters, what to look for in a solution and which of the leading providers is right for you.
What is privacy-friendly analytics ?
Privacy-friendly analytics is a form of website analytics that collects and analyses data in a way that respects the user’s privacy. It’s a type of ethical web analytics.
Privacy-friendly platforms limit personal data collection and anonymise individual user data while being transparent about collection and tracking methods. They help companies adhere to data protection laws (like GDPR, CCPA, and HIPAA) and new privacy laws (like OCPA, FDBR, and TDPSA) without configuring custom settings.
Why use privacy-friendly analytics ?
Millions of businesses choose privacy-friendly analytics platforms like Matomo. Here are a few reasons why :
Build trust with customers
Research shows that the vast majority of consumers don’t trust companies with their data, believing that they prioritise profits over data protection.
Privacy-friendly analytics can help businesses prove they aren’t out to profit from consumer data and regain customer trust. This can ultimately boost revenue. According to Cisco’s Data Privacy Benchmark Study, organisations gain $180 for every $100 spent on privacy.
Comply with privacy regulations
Data privacy regulations, such as GDPR, protect consumer privacy and establish strict rules governing how businesses can collect and use personal data.
The cost of non-compliance is high. Under GDPR, fines can be up to €20 million, or 4% of worldwide annual revenue.
Thanks to features like data anonymisation and the default use of first-party cookies, privacy-friendly analytics platforms can support and strengthen compliance efforts.
In fact, the French Data Protection Authority (CNIL) approved Matomo as one of the only web analytics tools to collect data without tracking consent.
Minimise the impact of a breach
According to IBM’s Cost of a Data Breach report, the average cost of a data breach is nearly $4.5 million. The more personally identifiable information (PII) is involved, the higher the fines and penalties.
A privacy-friendly analytics tool can reduce the potential impact of a breach by minimising the amount of personal information you hold.
Is Google Analytics privacy-friendly ?
Google may be the best-known analytics platform, but it’s not the best choice for businesses that want to collect data responsibly and ethically.
Here are just a few of Google Analytics’s privacy issues :
- It uses analytics data to run its advertising business.
- It may train large language models like Gemini with analytics data.
- It requires a specific setup to be GDPR compliant that isn’t available out of the box.
Google Analytics’s ongoing issues with privacy laws like GDPR also raise doubt. The French and Austrian Data Protection Authorities have banned Google Analytics in the past, and there is no guarantee they won’t do so again.
What to look for in privacy-friendly analytics ?
Several privacy-friendly analytics tools are available. To find the right one for your brand, look for the following features.
Data ownership
Choose a provider that gives you as much control over your users’ data as possible. Ideally, this will be via an on-site solution where you store data on your servers. For cloud-based options, ensure your analytics provider can’t access, use or sell it.
With 100% data ownership, you have the power to protect your users’ privacy. You know where your customer data is stored and what’s happening to it without external influence.
Open source
The only genuinely privacy-friendly software is open-source software. Open-source software means anyone can review the code to ensure it does what it promises — in this case, maximising privacy.
Matomo is an open-source software company. Our source code is on GitHub, where everyone can see precisely how our platform tracks and stores user data. A community of developers also regularly examines and reviews our code to further strengthen security.
Data anonymisation
Privacy-friendly analytics should allow marketers to completely anonymise the data they collect. They achieve this through several techniques like IP anonymisation and pseudonymised user IDs that modify or remove personally identifiable data so it can’t be linked to individuals.
Matomo’s data anonymisation settings
In Matomo, for example, you can anonymise the following things in the platform’s Privacy settings :
- IP address
- Location
- User ID
IP address anonymisation is enabled by default in Matomo.
No data sampling
Data sampling involves extrapolating analytics reports from an incomplete data set. Google Analytics uses this practice and relies on estimates, leading to incomplete and potentially inaccurate results.
Privacy-friendly analytics should provide 100% accurate insights without making assumptions about your users’ data.
GDPR compliance
Privacy-friendly web analytics platforms adhere to even the strictest privacy laws, including GDPR, HIPAA and CCPA, thanks to the following features :
- Data anonymisation
- Cookieless tracking
- EU data storage
- First-party cookies by default
Matomo data subject access request settings
(Image Source)Privacy-first platforms also make it easy for companies to fulfil data subject access requests. In Matomo, for example, a dedicated feature lets you find, download and delete all of the data you hold about specific individuals.
Cookieless tracking
Cookieless tracking is a form of visitor tracking that uses methods other than cookies to identify individual users. It is more privacy-friendly because no personal data is collected, and users can withhold consent from cookie banners.
Matomo uses the most privacy-friendly industry-leading cookieless tracking method, config_id, to anonymously track visitors without fingerprinting them.
Top 3 privacy-friendly analytics platforms
We’ve shortlisted three of the leading privacy-friendly analytics platforms. Learn what they offer, what makes them different and how much they cost.
Matomo
Matomo is an open-source web analytics tool and privacy-focused Google Analytics alternative trusted by over one million sites in over 190 countries and over 50 languages.
Matomo dashboard
Matomo prioritises privacy and keeping businesses compliant with global privacy regulations like GDPR, CCPA and HIPAA. The data you collect is 100% accurate and yours alone. We don’t share it or use it for other purposes.
Benefits
- Matomo’s all-in-one solution offers traditional web and behavioural analytics, such as heatmaps and session recordings. It also includes a free, open-source tag manager.
- Matomo gives you the choice of where to store your user’s data. With Matomo Cloud, that’s in our European servers. With Matomo On-Premise, that’s on your servers.
- Matomo is open-source. Hundreds of independent developers have reviewed our code, and you can view it yourself on GitHub.
Pricing
Hosting Matomo On-Premise is free, while Matomo Cloud costs $26 per month.
Fathom
Fathom Analytics is a simple, easy-to-use alternative to Google Analytics that puts a premium on privacy.
Fathom dashboard
(Image Source)Fathom has made its platform as easy to use as possible. You can install Fathom on any website or CMS using a single line of code. It also means the platform won’t massively impact your site’s speed or SEO performance.
Benefits
- Fathom complies with all major privacy regulations, including GDPR and CCPA.
- Fathom doesn’t sample data. It also blocks bots and scrapers, so you only see human visitors.
- Fathom anonymises IP addresses, so you don’t have to show cookie banners.
Drawbacks
- Fathom doesn’t offer many of Matomo’s advanced features like e-commerce tracking, heatmaps, and session recordings.
- The premium version of Fathom is not open-source.
Pricing
From $15 per month.
Plausible
Plausible Analytics is an open-source, privacy-friendly analytics tool built and hosted in the EU.
Plausible dashboard
(Image Source)The platform launched in 2019 as a lightweight, easy-to-use alternative to Google Analytics. Its simplicity is a big selling point. Instead of dozens of menus, it presents the information you need on a single page.
Benefits
- Plausible boasts an ultra-lightweight script, which means it has a minimal impact on page loading times.
- Plausible is GDPR and CCPA-compliant by design, so there’s no need for cookie banners.
- Plausible is an open-source software with the source code available on GitHub.
Drawbacks
- Plausible lacks advanced privacy controls like a GDPR manager.
- It has none of Matomo’s advanced features like A/B testing, session recordings or heatmaps.
Pricing
From $9 per month
Try Matomo for free
Ready to try a privacy-friendly analytics solution ? Making the switch is easy with Matomo, as it’s one of the only platforms to import historical Google Analytics data. You can also try Matomo for free for 21 days — no credit card required.