Recherche avancée

Médias (9)

Mot : - Tags -/soundtrack

Autres articles (55)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Ecrire une actualité

    21 juin 2013, par

    Pré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 ) (...)

  • Publier sur MédiaSpip

    13 juin 2013

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

Sur d’autres sites (7412)

  • Cryptic `ffmpeg` + Python error : `Cannot find a matching stream for unlabeled input pad 0 on filter Parsed_crop_1`

    5 août 2022, par mattze_frisch

    I want to use ffmpeg with Python in a Jupyter notebook to create a video from 2000 PNG image files generated by matplotlib. I'm on a Windows 7 machine.

    


    The frames are very narrow and high, so I'd like to cut them vertically into seven equal-sized "tiles" using crop and stacked those "tiles" horizontally using hstack, but I'm getting only getting cryptic error messages :

    


    ffmpeg_path = notebook_directory    # Make sure ffmpeg.exe is in notebook directory!&#xA;&#xA;frames_path = &#x27;C:\\Users\\Username\\Desktop&#x27;&#xA;frames_renamed_path = os.path.join(frames_path, &#x27;renamed&#x27;)&#xA;os.chdir(frames_renamed_path)    # Temporarily change current working directory&#xA;&#xA;check_call(&#xA;    [&#xA;        os.path.join(ffmpeg_path, &#x27;ffmpeg&#x27;),&#xA;        &#x27;-y&#x27;,    # Overwrite output files without asking&#xA;        &#x27;-report&#x27;,    # Write logfile to current working directory&#xA;        &#x27;-hwaccel&#x27;, &#x27;cuda&#x27;,    # Use GPU acceleration&#xA;        &#x27;-framerate&#x27;, &#x27;60&#x27;,    # Input frame rate&#xA;        &#x27;-i&#x27;, os.path.join(frames_renamed_path, &#x27;frame%05d.png&#x27;),    # Path to input frames&#xA;        #&#x27;-r&#x27;, &#x27;60&#x27;,    # Output frame rate&#xA;        #&#x27;-vf&#x27;, &#x27;pad=ceil(iw/2)*2:ceil(ih/2)*2&#x27;,    # Pad frames to even pixel numbers (required by many codecs)&#xA;        #&#x27;-pix_fmt&#x27;, &#x27;yuv420p&#x27;,&#xA;        &#x27;-pix_fmt&#x27;, &#x27;rgb32&#x27;,    # Use RGB32 pixel format matching MatPlotLib image output&#xA;        &#x27;-filter_complex&#x27;,    # Cut frames into tiles and rearrange (here: 7 horizontal tiles)&#xA;            &#x27;crop=in_w:in_h/7:0:0[tile_1],&#x27;    # 1st tile from top&#xA;            &#x2B; &#x27;crop=in_w:in_h/7:0:in_h*1/7[tile_2],&#x27;    # 2nd tile from top&#xA;            &#x2B; &#x27;crop=in_w:in_h/7:0:in_h*2/7[tile_3],&#x27;    # 3rd tile from top&#xA;            &#x2B; &#x27;crop=in_w:in_h/7:0:in_h*3/7[tile_4],&#x27;    # 4th tile from top&#xA;            &#x2B; &#x27;crop=in_w:in_h/7:0:in_h*4/7[tile_5],&#x27;    # 5th tile from top&#xA;            &#x2B; &#x27;crop=in_w:in_h/7:0:in_h*5/7[tile_6],&#x27;    # 6th tile from top&#xA;            &#x2B; &#x27;crop=in_w:in_h/7:0:in_h*6/7[tile_7],&#x27;    # 7th tile from top&#xA;            &#x2B; &#x27;[tile_1][tile_2][tile_3][tile_4][tile_5][tile_6][tile_7]hstack=7&#x27;,    # Stack tiles horizontally&#xA;        os.path.join(frames_renamed_path, &#x27;video.mp4&#x27;)    # Path to store output video&#xA;    ]&#xA;)&#xA;&#xA;os.chdir(notebook_directory)    # Reset current working directory to notebook directory&#xA;&#xA;---------------------------------------------------------------------------&#xA;CalledProcessError                        Traceback (most recent call last)&#xA;Input In [10], in <cell 9="9">()&#xA;      6 frames_renamed_path = os.path.join(frames_path, &#x27;renamed&#x27;)&#xA;      7 os.chdir(frames_renamed_path)    # Temporarily change current working directory&#xA;----> 9 check_call(&#xA;     10     [&#xA;     11         os.path.join(ffmpeg_path, &#x27;ffmpeg&#x27;),&#xA;     12         &#x27;-y&#x27;,    # Overwrite output files without asking&#xA;     13         &#x27;-report&#x27;,    # Write logfile to current working directory&#xA;     14         &#x27;-hwaccel&#x27;, &#x27;cuda&#x27;,    # Use GPU acceleration&#xA;     15         &#x27;-framerate&#x27;, &#x27;60&#x27;,    # Input frame rate&#xA;     16         &#x27;-i&#x27;, os.path.join(frames_renamed_path, &#x27;frame%05d.png&#x27;),    # Path to input frames&#xA;     17         #&#x27;-pattern_type&#x27;, &#x27;glob&#x27;, &#x27;-i&#x27;, os.path.join(frames_renamed_path, &#x27;*.png&#x27;),    # glob not available in Windows by default&#xA;     18         #&#x27;-r&#x27;, &#x27;60&#x27;,    # Output frame rate&#xA;     19         &#x27;-vf&#x27;, &#x27;pad=ceil(iw/2)*2:ceil(ih/2)*2&#x27;,    # Pad frames to even pixel numbers (required by many codecs)&#xA;     20         #&#x27;-pix_fmt&#x27;, &#x27;yuv420p&#x27;,&#xA;     21         &#x27;-pix_fmt&#x27;, &#x27;rgb32&#x27;,    # Use RGB32 pixel format matching MatPlotLib image output&#xA;     22         &#x27;-filter_complex&#x27;,    # Cut frames into tiles and rearrange (here: 7 horizontal tiles)&#xA;     23             &#x27;crop=in_w:in_h/7:0:0[tile_1],&#x27;    # 1st tile from top&#xA;     24             &#x2B; &#x27;crop=in_w:in_h/7:0:in_h*1/7[tile_2],&#x27;    # 2nd tile from top&#xA;     25             &#x2B; &#x27;crop=in_w:in_h/7:0:in_h*2/7[tile_3],&#x27;    # 3rd tile from top&#xA;     26             &#x2B; &#x27;crop=in_w:in_h/7:0:in_h*3/7[tile_4],&#x27;    # 4th tile from top&#xA;     27             &#x2B; &#x27;crop=in_w:in_h/7:0:in_h*4/7[tile_5],&#x27;    # 5th tile from top&#xA;     28             &#x2B; &#x27;crop=in_w:in_h/7:0:in_h*5/7[tile_6],&#x27;    # 6th tile from top&#xA;     29             &#x2B; &#x27;crop=in_w:in_h/7:0:in_h*6/7[tile_7],&#x27;    # 7th tile from top&#xA;     30             &#x2B; &#x27;[tile_1][tile_2][tile_3][tile_4][tile_5][tile_6][tile_7]hstack=7&#x27;,    # Stack tiles horizontally&#xA;     31         os.path.join(frames_renamed_path, &#x27;video.mp4&#x27;)    # Path to store output video&#xA;     32     ]&#xA;     33 )&#xA;     35 os.chdir(notebook_directory)&#xA;&#xA;File C:\Program Files\Python38\lib\subprocess.py:364, in check_call(*popenargs, **kwargs)&#xA;    362     if cmd is None:&#xA;    363         cmd = popenargs[0]&#xA;--> 364     raise CalledProcessError(retcode, cmd)&#xA;    365 return 0&#xA;&#xA;CalledProcessError: Command &#x27;[&#x27;C:\\Users\\Username\\Desktop\\ffmpeg\\ffmpeg&#x27;, &#x27;-y&#x27;, &#x27;-report&#x27;, &#x27;-hwaccel&#x27;, &#x27;cuda&#x27;, &#x27;-framerate&#x27;, &#x27;60&#x27;, &#x27;-i&#x27;, &#x27;C:\\Users\\Username\\Desktop\\renamed\\frame%05d.png&#x27;, &#x27;-vf&#x27;, &#x27;pad=ceil(iw/2)*2:ceil(ih/2)*2&#x27;, &#x27;-pix_fmt&#x27;, &#x27;rgb32&#x27;, &#x27;-filter_complex&#x27;, &#x27;crop=in_w:in_h/7:0:0[tile_1],crop=in_w:in_h/7:0:in_h*1/7[tile_2],crop=in_w:in_h/7:0:in_h*2/7[tile_3],crop=in_w:in_h/7:0:in_h*3/7[tile_4],crop=in_w:in_h/7:0:in_h*4/7[tile_5],crop=in_w:in_h/7:0:in_h*5/7[tile_6],crop=in_w:in_h/7:0:in_h*6/7[tile_7],[tile_1][tile_2][tile_3][tile_4][tile_5][tile_6][tile_7]hstack=7&#x27;, &#x27;C:\\Users\\Username\\Desktop\\renamed\\video.mp4&#x27;]&#x27; returned non-zero exit status 1.&#xA;</cell>

    &#xA;

    This is the ffmpeg log output (cropped) :

    &#xA;

    ffmpeg started on 2022-08-04 at 01:17:19&#xA;Report written to "ffmpeg-20220804-011719.log"&#xA;Log level: 48&#xA;Command line:&#xA;"C:\\Users\\Username\\Desktop\\ffmpeg\\ffmpeg" -y -report -hwaccel cuda -framerate 60 -i "C:\\Users\\Username\\Desktop\\renamed\\frame%05d.png" -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" -pix_fmt rgb32 -filter_complex "crop=in_w:in_h/7:0:0[tile_1],crop=in_w:in_h/7:0:in_h*1/7[tile_2],crop=in_w:in_h/7:0:in_h*2/7[tile_3],crop=in_w:in_h/7:0:in_h*3/7[tile_4],crop=in_w:in_h/7:0:in_h*4/7[tile_5],crop=in_w:in_h/7:0:in_h*5/7[tile_6],crop=in_w:in_h/7:0:in_h*6/7[tile_7],[tile_1][tile_2][tile_3][tile_4][tile_5][tile_6][tile_7]hstack=7" "C:\\Users\\Username\\Desktop\\renamed\\video.mp4"&#xA;ffmpeg version 2022-07-14-git-882aac99d2-full_build-www.gyan.dev Copyright (c) 2000-2022 the FFmpeg developers&#xA;  built with gcc 12.1.0 (Rev2, Built by MSYS2 project)&#xA;  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --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-sdl2 --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libshaderc --enable-vulkan --enable-libplacebo --ena  libavutil      57. 29.100 / 57. 29.100&#xA;  libavcodec     59. 38.100 / 59. 38.100&#xA;  libavformat    59. 28.100 / 59. 28.100&#xA;  libavdevice    59.  8.100 / 59.  8.100&#xA;  libavfilter     8. 45.100 /  8. 45.100&#xA;  libswscale      6.  8.100 /  6.  8.100&#xA;  libswresample   4.  8.100 /  4.  8.100&#xA;  libpostproc    56.  7.100 / 56.  7.100&#xA;Splitting the commandline.&#xA;Reading option &#x27;-y&#x27; ... matched as option &#x27;y&#x27; (overwrite output files) with argument &#x27;1&#x27;.&#xA;Reading option &#x27;-report&#x27; ... matched as option &#x27;report&#x27; (generate a report) with argument &#x27;1&#x27;.&#xA;Reading option &#x27;-hwaccel&#x27; ... matched as option &#x27;hwaccel&#x27; (use HW accelerated decoding) with argument &#x27;cuda&#x27;.&#xA;Reading option &#x27;-framerate&#x27; ... matched as AVOption &#x27;framerate&#x27; with argument &#x27;60&#x27;.&#xA;Reading option &#x27;-i&#x27; ... matched as input url with argument &#x27;C:\Users\Username\Desktop\renamed\frame%05d.png&#x27;.&#xA;Reading option &#x27;-vf&#x27; ... matched as option &#x27;vf&#x27; (set video filters) with argument &#x27;pad=ceil(iw/2)*2:ceil(ih/2)*2&#x27;.&#xA;Reading option &#x27;-pix_fmt&#x27; ... matched as option &#x27;pix_fmt&#x27; (set pixel format) with argument &#x27;rgb32&#x27;.&#xA;Reading option &#x27;-filter_complex&#x27; ... matched as option &#x27;filter_complex&#x27; (create a complex filtergraph) with argument &#x27;crop=in_w:in_h/7:0:0[tile_1],crop=in_w:in_h/7:0:in_h*1/7[tile_2],crop=in_w:in_h/7:0:in_h*2/7[tile_3],crop=in_w:in_h/7:0:in_h*3/7[tile_4],crop=in_w:in_h/7:0:in_h*4/7[tile_5],crop=in_w:in_h/7:0:in_h*5/7[tile_6],crop=in_w:in_h/7:0:in_h*6/7[tile_7],[tile_1][tile_2][tile_3][tile_4][tile_5][tile_6][tile_7]hstack=7&#x27;.&#xA;Reading option &#x27;C:\Users\Username\Desktop\renamed\video.mp4&#x27; ... matched as output url.&#xA;Finished splitting the commandline.&#xA;Parsing a group of options: global .&#xA;Applying option y (overwrite output files) with argument 1.&#xA;Applying option report (generate a report) with argument 1.&#xA;Applying option filter_complex (create a complex filtergraph) with argument crop=in_w:in_h/7:0:0[tile_1],crop=in_w:in_h/7:0:in_h*1/7[tile_2],crop=in_w:in_h/7:0:in_h*2/7[tile_3],crop=in_w:in_h/7:0:in_h*3/7[tile_4],crop=in_w:in_h/7:0:in_h*4/7[tile_5],crop=in_w:in_h/7:0:in_h*5/7[tile_6],crop=in_w:in_h/7:0:in_h*6/7[tile_7],[tile_1][tile_2][tile_3][tile_4][tile_5][tile_6][tile_7]hstack=7.&#xA;Successfully parsed a group of options.&#xA;Parsing a group of options: input url C:\Users\Username\Desktop\renamed\frame%05d.png.&#xA;Applying option hwaccel (use HW accelerated decoding) with argument cuda.&#xA;Successfully parsed a group of options.&#xA;Opening an input file: C:\Users\Username\Desktop\renamed\frame%05d.png.&#xA;[image2 @ 00000000005db0c0] Opening &#x27;C:\Users\Username\Desktop\renamed\frame00000.png&#x27; for reading&#xA;[file @ 00000000005f6c00] Setting default whitelist &#x27;file,crypto,data&#x27;&#xA;[AVIOContext @ 00000000005fed40] Statistics: 28860 bytes read, 0 seeks&#xA;&#xA;&lt;...>&#xA;&#xA;[AVIOContext @ 00000000005fda00] Statistics: 67659 bytes read, 0 seeks&#xA;[image2 @ 00000000005db0c0] Probe buffer size limit of 5000000 bytes reached&#xA;Input #0, image2, from &#x27;C:\Users\Username\Desktop\renamed\frame%05d.png&#x27;:&#xA;  Duration: 00:00:25.00, start: 0.000000, bitrate: N/A&#xA;  Stream #0:0, 80, 1/60: Video: png, rgba(pc), 1200x1857 [SAR 3937:3937 DAR 400:619], 60 fps, 60 tbr, 60 tbn&#xA;Successfully opened the file.&#xA;[Parsed_crop_0 @ 00000000005fdc40] Setting &#x27;out_w&#x27; to value &#x27;in_w&#x27;&#xA;[Parsed_crop_0 @ 00000000005fdc40] Setting &#x27;out_h&#x27; to value &#x27;in_h/7&#x27;&#xA;[Parsed_crop_0 @ 00000000005fdc40] Setting &#x27;x&#x27; to value &#x27;0&#x27;&#xA;[Parsed_crop_0 @ 00000000005fdc40] Setting &#x27;y&#x27; to value &#x27;0&#x27;&#xA;[Parsed_crop_1 @ 0000000000607500] Setting &#x27;out_w&#x27; to value &#x27;in_w&#x27;&#xA;[Parsed_crop_1 @ 0000000000607500] Setting &#x27;out_h&#x27; to value &#x27;in_h/7&#x27;&#xA;[Parsed_crop_1 @ 0000000000607500] Setting &#x27;x&#x27; to value &#x27;0&#x27;&#xA;[Parsed_crop_1 @ 0000000000607500] Setting &#x27;y&#x27; to value &#x27;in_h*1/7&#x27;&#xA;[Parsed_crop_2 @ 0000000000607880] Setting &#x27;out_w&#x27; to value &#x27;in_w&#x27;&#xA;[Parsed_crop_2 @ 0000000000607880] Setting &#x27;out_h&#x27; to value &#x27;in_h/7&#x27;&#xA;[Parsed_crop_2 @ 0000000000607880] Setting &#x27;x&#x27; to value &#x27;0&#x27;&#xA;[Parsed_crop_2 @ 0000000000607880] Setting &#x27;y&#x27; to value &#x27;in_h*2/7&#x27;&#xA;[Parsed_crop_3 @ 0000000000607c00] Setting &#x27;out_w&#x27; to value &#x27;in_w&#x27;&#xA;[Parsed_crop_3 @ 0000000000607c00] Setting &#x27;out_h&#x27; to value &#x27;in_h/7&#x27;&#xA;[Parsed_crop_3 @ 0000000000607c00] Setting &#x27;x&#x27; to value &#x27;0&#x27;&#xA;[Parsed_crop_3 @ 0000000000607c00] Setting &#x27;y&#x27; to value &#x27;in_h*3/7&#x27;&#xA;[Parsed_crop_4 @ 00000000005fda00] Setting &#x27;out_w&#x27; to value &#x27;in_w&#x27;&#xA;[Parsed_crop_4 @ 00000000005fda00] Setting &#x27;out_h&#x27; to value &#x27;in_h/7&#x27;&#xA;[Parsed_crop_4 @ 00000000005fda00] Setting &#x27;x&#x27; to value &#x27;0&#x27;&#xA;[Parsed_crop_4 @ 00000000005fda00] Setting &#x27;y&#x27; to value &#x27;in_h*4/7&#x27;&#xA;[Parsed_crop_5 @ 0000000002b8f800] Setting &#x27;out_w&#x27; to value &#x27;in_w&#x27;&#xA;[Parsed_crop_5 @ 0000000002b8f800] Setting &#x27;out_h&#x27; to value &#x27;in_h/7&#x27;&#xA;[Parsed_crop_5 @ 0000000002b8f800] Setting &#x27;x&#x27; to value &#x27;0&#x27;&#xA;[Parsed_crop_5 @ 0000000002b8f800] Setting &#x27;y&#x27; to value &#x27;in_h*5/7&#x27;&#xA;[Parsed_crop_6 @ 0000000000607d00] Setting &#x27;out_w&#x27; to value &#x27;in_w&#x27;&#xA;[Parsed_crop_6 @ 0000000000607d00] Setting &#x27;out_h&#x27; to value &#x27;in_h/7&#x27;&#xA;[Parsed_crop_6 @ 0000000000607d00] Setting &#x27;x&#x27; to value &#x27;0&#x27;&#xA;[Parsed_crop_6 @ 0000000000607d00] Setting &#x27;y&#x27; to value &#x27;in_h*6/7&#x27;&#xA;[Parsed_hstack_7 @ 0000000002b8fb80] Setting &#x27;inputs&#x27; to value &#x27;7&#x27;&#xA;Cannot find a matching stream for unlabeled input pad 0 on filter Parsed_crop_1&#xA;

    &#xA;

    What is the problem here ? Also, how does one interpret this cryptic error message at the end of the log output :

    &#xA;

    Cannot find a matching stream for unlabeled input pad 0 on filter Parsed_crop_1

    &#xA;

    E.g. what is input pad 0, why is it unlabeled, and why can't it find a matching stream ?

    &#xA;

    (PS. : Yes, I do have a habit of excessively documenting my code. ^^)

    &#xA;

  • Interview de l'auteur du Livre sur Piwik : Ronan Chardonneau

    20 juillet 2012, par Piwik team — Community

    Ronan Chardonneau, auteur de Piwik : L'alternative Open Source en web analytique aux éditions ENI, répond aux questions de Matthieu Aubry le créateur de Piwik !


    Qu'est ce qui t'a poussé à écrire ce livre ?

    En fait il y a eu plusieurs choses. Tout d'abord je travaille au sein d'une structure un peu spéciale, notre agence web, inextcom travaille physiquement sur un plateau regroupant la plupart des acteurs de la ville de Nantes qui utilisent des logiciels libres. Toutes ses entreprises sont adhérentes d'une association qui s'appelle Alliance Libre. Quand je suis arrivé au sein de cette structure j'étais le seul à venir du monde du webmarketing. Le webmarketing tourne beaucoup autour de Google du coup je n'étais pas forcément vu d'un très bon oeil. Du coup j'ai voulu m'ouvrir sur ce qui se passait en dehors de Google Analytics est c'est ainsi que j'ai découvert Piwik. J'ai pas mal accroché sur cette technologie car elle est très intuitive.

    Je me suis penché sur cette solution et ai décidé de la proposer en tant que formation. Quelques mois après son apparition dans notre catalogue de formation nous avons été contacté par un grand compte français pour donner un formation. J'avais vraiment à cœur de fournir une formation de qualité, en un week end mon support de cours avait dépassé les 50 pages. Je suis arrivé le lundi matin au travail et j'ai dit, les gars on va écrire un livre sur Piwik. J'ai regardé ce qui s'était déjà fait à droite à gauche et il n'y avait qu'un seul livre au monde semble t il écrit sur le sujet. Je me suis dit qu'il pouvait être intéressant de démocratiser l'outil… et au revoir jolis petits week end et bonjour les nuits blanches :)

    Je voulais également être l'un des premiers auteurs sur cette solution car trop souvent ces ouvrages sont écrits par des anciens ingénieurs ou développeurs qui ont ensuite basculé dans le monde du marketing. Dans mon cas c'est le contraire je viens du marketing et ai basculé dans l'informatique, du coup ma vision du logiciel est purement orienté sur la façon dont je vais pouvoir extraire les informations pour mon analyse et non pas l'ensemble des fonctionnalités qui ont été développées pour le logiciel.

    Combien de temps ce projet de livre Piwik a t'il pris ?

    En fait j'adore écrire, et j'ai eu l'écriture plutôt facile pour ce livre. Le temps me manquait du coup j'ai décidé de l'écrire avec l'un de mes collègues : Germain Butrot. Le plus pénible dans l'écriture est que nous ne sommes pas développeurs du coup on a perdu pas mal de temps sur des soucis d'installation. Je dirai que rédiger ce livre nous a pris deux mois de travail.

    Combien de clients as tu introduits à Piwik ?

    Pas énormément, en fait les clients ont déjà fait leur choix de cette solution avant de s'engager chez nous, simplement qu'ils ne savent pas l'installer, le configurer, gérer la base de données etc. En fait il y a les clients qui n'ont pas encore réalisé oh combien la confidentialité de leurs données est critique et qu'il est dangereux de les confier à des tiers, ce qui représente 97% des sites Internet. Les 3% restants sont des entreprises qui en effet souhaitent se rapprocher au maximum du risque 0 en ce qui concerne la confidentialité des données. Nous introduisons la plupart de nos clients à Piwik, cependant ces derniers ont au final le choix entre une solution gratuite que tout le monde utilise et un hébergement de données payant pour atteindre un niveau de sécurité qu'ils ne considèrent pas comme critique.

    Ronan séance de dédicaces

    Le web analytique étant une discipline peu enseignée en France, le plus gros du travail est de faire réaliser aux webmasters que la notion de confidentialité est extrêmement importante. Je pense sincèrement que de plus en plus d'utilisateurs migreront sur des solutions telles que Piwik, tout simplement parce que le web analytique est une discipline en développement et que l'on commence à récupérer des données de plus en plus précieuses, il va donc falloir commencer à les protéger au maximum.

    Si tu avais le droit à un vœu, quelle serait la nouvelle fonctionnalité qui te plairait le plus dans Piwik ?

    Bonne question, en fait je pense qu'il y en a deux, personnellement je souhaiterais que l'on puisse créer les rapports de son choix en sélectionnant uniquement les données désirées. Cependant je pense que la fonctionnalité qui ferait beaucoup de bien pour la démocratisation de Piwik serait de pouvoir uniquement insérer le tagging dans les pages pour que Piwik commence à récolter les données. C'est principalement ce que je décris dans le livre, l'installation de Piwik est encore assez technique pour des personnes qui n'y connaissent rien. Les gens n'ayant pas encore saisi l'importance du web analytique sont à la recherche d'un outil qui en peu d'efforts peu être installé.

    Tu as beaucoup d’expérience en web marketing. Que nous conseilles tu pour le futur en terme de Marketing pour Piwik ?

    Je pense que Piwik a un potentiel énorme tout comme la plupart des projets open source populaires. Le problème c'est que ces projets ne savent pas encore communiquer auprès des personnes spécialisées dans le marketing. Le concept de l'open source n'est pas du coup connu du monde du marketing. Ce qui fait que lorsqu'un projet open source débarque sur le marché on a l'impression que seuls des personnes avec des connaissances en développement peuvent contribuer à ce projet alors qu'il existe énormément de missions que des personnes du marketing peuvent occuper au sein d'un tel projet : traduction, réalisation de bannières publicitaires, réalisation de pages de contenu pour en faire la promotion, remontée de fonctions importantes à intégrer etc

    De tous les projets Open Source que je connais je trouve que le CMS WordPress s'en sort le mieux, l'outil est très facile à prendre en main, assez intuitif, du coup nombreux sont les personnes du marketing a s'être familiarisé avec l'outil et à en faire des retours pour des développements de modules, de templates etc au final la communauté WordPress est énorme et le nombre de plugin impressionnant.

    Pour Piwik je pense qu'il pourrait être intéressant d'interroger des utilisateurs influents dans le monde du web analytique, de les inviter à utiliser Piwik et de nous faire un retour sur les fonctionnalités éventuelles à installer.


    Le livre sera t-il traduit ?

    Le livre devrait être traduit en espagnol et disponible sur ce marché d'ici 6 mois. Concernant les autres langues je suis actuellement à la recherche de traducteurs dans toutes les autres langues. Je suis prêt à céder mes droits de traduction à un prix modique, ce qui m'intéresse avant tout c'est la démocratisation de l'outil. Aussi n'hésitez pas à me faire si vous êtes volontaire ou avez des personnes volontaires dans votre entourage.

    Y aura t-il une version 2 du livre ?

    Très certainement une version avancée du livre verra le jour dans les prochaines années, tout dépend principalement des retours qui me seront fait par rapport à cet ouvrage, les demandes de personnalisation de code dont on m'aura fait la demande, le développement de Piwik…

    Merci Ronan pour ton travail de démocratisation sur Piwik, ton livre va vraiment permettre au projet de trouver une nouvelle cible en France… et on espère voir une Version 2 du livre dans quelques mois ! Je te souhate de bonnes ventes pour le livre et bonne contination pour tous tes projets.

    Le livre est en vente sur la FNAC, Amazon.fr, le site de l'éditeur.

    A voir aussi : Grand Jeu Concours 10 Livres Piwik à gagner !

  • sipr : Drop unused DSPContext

    19 juin 2011, par Alex Converse

    sipr : Drop unused DSPContext