Recherche avancée

Médias (0)

Mot : - Tags -/api

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (96)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

  • Installation en mode standalone

    4 février 2011, par

    L’installation de la distribution MediaSPIP se fait en plusieurs étapes : la récupération des fichiers nécessaires. À ce moment là deux méthodes sont possibles : en installant l’archive ZIP contenant l’ensemble de la distribution ; via SVN en récupérant les sources de chaque modules séparément ; la préconfiguration ; l’installation définitive ;
    [mediaspip_zip]Installation de l’archive ZIP de MediaSPIP
    Ce mode d’installation est la méthode la plus simple afin d’installer l’ensemble de la distribution (...)

Sur d’autres sites (4635)

  • Make better marketing decisions with attribution modeling

    19 décembre 2017, par InnoCraft

    Do you suspect some traffic sources are not getting the rewards they deserve ? Do you want to know how much credit each of your marketing channel actually gets ?

    When you look at which referrers contribute the most to your goal conversions or purchases, Matomo (Piwik) shows you only the referrer of the last visit. However, in reality, a visitor often visits a website multiple times from different referrers before they convert a goal. Giving all credit to the referrer of the last visit ignores all other referrers that contributed to a conversion as well.

    You can now push your marketing analysis to the next level with attribution modeling and finally discover the true value of all your marketing channels. As a result, you will be able to shift your marketing efforts and spending accordingly to maximize your success and stop wasting resources. In marketing, studying this data is called attribution modeling.

    Get the true value of your referrers

    Attribution is a premium feature that you can easily purchase from the Matomo (Piwik) marketplace.

    Once installed, you will be able to :

    • identify valuable referrers that you did not see before
    • invest in potential new partners
    • attribute a new level of conversion
    • make this work very easily by filling just a couple of form information

    Identify valuable referrers that you did not see before

    You probably have hundreds or even thousands of different sources listed within the referrer reports. We also guess that you have the feeling that it is always the same referrers which are credited of conversions.
    Guess what, those data are probably biased or at least are not telling you the whole story.
    Why ? Because by default, Matomo (Piwik) only attributes all credit to the last referrer.

    It is likely that many non credited sources played a role in the conversion process as well as people often visit your website several times before converting and they may come from different referrers.

    This is exactly where attribution modeling comes into play. With attribution modeling, you can decide which touchpoint you want to study. For example, you can choose to give credit to all the referrers a single visitor came from each time the user visits your website, and not only look at the last one. Without this feature, chances are, that you have spent too much money and / or efforts on the wrong referrer channels in the past because many referrers that contributed to conversions were ignored. Based on the insights you get by applying different attribution models, you can make better decisions on where to shift your marketing spending and efforts.

    Invest in potential new partners

    Once you apply different attribution models, you will find out that you need to consider a new list of referrers which you before either over- or under-estimated in terms of how much they contributed to your conversions. You probably did not identify those sources before because Matomo (Piwik) shows only the last referrer before a conversion. But you can now also look at what these newly discovered referrers are saying about your company, looking for any advertising programs they may offer, getting in contact with the owner of the website, and more.

    Apply up to 6 different attribution models

    By default, Matomo (Piwik) is attributing the conversion to the last referrer only. With attribution modeling you can analyze 6 different models :

    • Last Interaction : the conversion is attributed to the last referrer, even if it is a direct access.
    • Last Non-Direct : the conversion is attributed to the last referrer, but not in the case of a direct access.
    • First Interaction : the conversion is attributed to the first referrer which brought you the visit.
    • Linear : whatever the number of referrers which brought you the conversion, they will all get the same value.
    • Position Based : first and last referrer will be attributed 40% each the conversion value, the remaining 60% is divided between the rest of the referrers.
    • Time Decay : this attribution model means that the closer to the date of the conversion is, the more your last referrers will get credit.

    Those attribution models will enable you to analyze all your referrers deeply and increase your conversions.

    Let’s look at an example where we are comparing two models : “last interaction” and “first interaction”. Our goal is to identify whether some referrers that we are currently considering as less important, are finally playing a serious role in the total amount of conversions :

    Comparing Last Interaction model to First Interaction model

    Here it is interesting to observe that the website www.hongkiat.com is bringing almost 90% conversion more with the first interaction model rather than the last one.

    As a result we can look at this website and take the following actions :

    • have a look at the message on this website
    • look at opportunities to change the message
    • look at opportunities to display extra marketing messages
    • get in contact with the owner to identify any other communication opportunities

    The Multi Channel Attribution report

    Attribution modeling in Matomo (Piwik) does not require you to add any tracking code. The only thing you need is to install the plugin and let the magic happen.
    Simple as pie is the word you should keep in mind for this feature. Once installed, you will find the report within the goal section, just above the goals you created :

    The Multi Attribution menu

    There you can select the attribution model you would like to apply or compare.

    Attribution modeling is not just about playing with a new report. It is above all an opportunity to increase the number of conversions by identifying referrers that you may have not recognized as valuable in the past. To grow your business, it is crucial to identify the most (and least) successful channels correctly so you can spend your time and money wisely.

    The post Make better marketing decisions with attribution modeling appeared first on Analytics Platform - Matomo.

  • Creating an infinite MP4 with FFMPEG (not looping)

    28 décembre 2017, par ESala

    I know that mp4 streaming is a no-no, this project is just for playing with video :)

    I have an infinite h264 stream provided by a Raspberry Pi camera, and I want to wrap it in an infinite mp4 so I can watch it in a browser.

    (source) raspivid -t 0 -w 1640 -h 1232 -fps 20 -b 500000 -vf -hf -o -

    (ffmpeg) ffmpeg -r 20 -i - -vcodec copy -movflags "frag_keyframe+empty_moov" -f mp4 pipe:1

    What I do is that I pipe (source) into (ffmpeg) and then (ffmpeg) to my program which buffers, uploads to a server, authenticates, etc.

    This works fine, and I am able to watch the stream from a browser.

    PROBLEM : the problem is that (ffmpeg) stops outputting data after 6 minutes.

    When the video reaches 6:00, the (ffmpeg) command just stops writing data to itsstdout.

    I tried changing the framerate, bitrate, resolution, etc but nothing makes a difference, it always stops at 6:00.

    I checked the (source) command and it is still writing to its own stdout.

    QUESTION : Is there something that I am missing ? why does it stop writing to stdout after just 6 minutes ? is the command missing some flag to allow an infinite mp4 ?

    EDIT : added the output of -report below.

    ffmpeg started on 2017-12-26 at 19:59:13
    Report written to "ffmpeg-20171226-195913.log"
    Command line:
    ffmpeg -report -r 20 -i - -vcodec copy -movflags frag_keyframe+empty_moov -f mp4 pipe:1
    ffmpeg version git-2017-12-10-eaff5fc Copyright (c) 2000-2017 the FFmpeg developers
     built with gcc 6.3.0 (Raspbian 6.3.0-18+rpi1) 20170516
     configuration: --arch=armel --target-os=linux --enable-gpl --enable-nonfree
     libavutil      56.  5.100 / 56.  5.100
     libavcodec     58.  6.103 / 58.  6.103
     libavformat    58.  3.100 / 58.  3.100
     libavdevice    58.  0.100 / 58.  0.100
     libavfilter     7.  7.100 /  7.  7.100
     libswscale      5.  0.101 /  5.  0.101
     libswresample   3.  0.101 /  3.  0.101
     libpostproc    55.  0.100 / 55.  0.100
    Splitting the commandline.
    Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
    Reading option '-r' ... matched as option 'r' (set frame rate (Hz value, fraction or abbreviation)) with argument '20'.
    Reading option '-i' ... matched as input url with argument '-'.
    Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'copy'.
    Reading option '-movflags' ... matched as AVOption 'movflags' with argument 'frag_keyframe+empty_moov'.
    Reading option '-f' ... matched as option 'f' (force format) with argument 'mp4'.
    Reading option 'pipe:1' ... matched as output url.
    Finished splitting the commandline.
    Parsing a group of options: global .
    Applying option report (generate a report) with argument 1.
    Successfully parsed a group of options.
    Parsing a group of options: input url -.
    Applying option r (set frame rate (Hz value, fraction or abbreviation)) with argument 20.
    Successfully parsed a group of options.
    Opening an input file: -.
    [NULL @ 0x2e7d450] Opening 'pipe:' for reading
    [pipe @ 0x2e7db70] Setting default whitelist 'crypto'
    [h264 @ 0x2e7d450] Format h264 probed with size=2048 and score=51
    [h264 @ 0x2e7d450] Before avformat_find_stream_info() pos: 0 bytes read:4096 seeks:0 nb_streams:1
    [AVBSFContext @ 0x2e8f3e0] nal_unit_type: 7, nal_ref_idc: 1
    [AVBSFContext @ 0x2e8f3e0] nal_unit_type: 8, nal_ref_idc: 1
    [AVBSFContext @ 0x2e8f3e0] nal_unit_type: 5, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] nal_unit_type: 7, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] nal_unit_type: 8, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] nal_unit_type: 5, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] Format yuv420p chosen by get_format().
    [h264 @ 0x2e7fa60] Reinit context to 1648x1232, pix_fmt: yuv420p
    [h264 @ 0x2e7fa60] nal_unit_type: 1, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] nal_unit_type: 1, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] nal_unit_type: 1, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] nal_unit_type: 1, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] nal_unit_type: 1, nal_ref_idc: 1
    [h264 @ 0x2e7fa60] nal_unit_type: 1, nal_ref_idc: 1
    [h264 @ 0x2e7d450] max_analyze_duration 5000000 reached at 5000000 microseconds st:0
    [h264 @ 0x2e7d450] After avformat_find_stream_info() pos: 395264 bytes read:397312 seeks:0 frames:127
    Input #0, h264, from 'pipe:':
     Duration: N/A, bitrate: N/A
       Stream #0:0, 127, 1/1200000: Video: h264 (High), yuv420p(progressive), 1640x1232, 25 fps, 25 tbr, 1200k tbn, 50 tbc
    Successfully opened the file.
    Parsing a group of options: output url pipe:1.
    Applying option vcodec (force video codec ('copy' to copy stream)) with argument copy.
    Applying option f (force format) with argument mp4.
    Successfully parsed a group of options.
    Opening an output file: pipe:1.
    [pipe @ 0x2e8ef70] Setting default whitelist 'crypto'
    Successfully opened the file.
    [mp4 @ 0x2e80680] Empty MOOV enabled; disabling automatic bitstream filtering
    Output #0, mp4, to 'pipe:1':
     Metadata:
       encoder         : Lavf58.3.100
       Stream #0:0, 0, 1/10240: Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1640x1232, q=2-31, 25 fps, 25 tbr, 10240 tbn, 20 tbc
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
    cur_dts is invalid (this is harmless if it occurs once at the start per stream)
    [mp4 @ 0x2e80680] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
    frame=  140 fps=0.0 q=-1.0 size=     352kB time=00:00:06.95 bitrate= 415.4kbits/s speed=11.8x    
    frame=  152 fps=128 q=-1.0 size=     352kB time=00:00:07.55 bitrate= 382.4kbits/s speed=6.35x    
    frame=  164 fps= 94 q=-1.0 size=     352kB time=00:00:08.15 bitrate= 354.3kbits/s speed=4.69x    
    frame=  174 fps= 78 q=-1.0 size=     352kB time=00:00:08.65 bitrate= 333.8kbits/s speed=3.86x    
    .....
    frame= 7342 fps= 20 q=-1.0 size=   22381kB time=00:06:07.05 bitrate= 499.5kbits/s speed=1.02x    
    frame= 7354 fps= 20 q=-1.0 size=   22381kB time=00:06:07.65 bitrate= 498.7kbits/s speed=1.02x    
    frame= 7366 fps= 20 q=-1.0 size=   22381kB time=00:06:08.25 bitrate= 497.9kbits/s speed=1.02x

    As you can see, it stoped working at 6:08 on this run. Then it sat idle for a couple minutes and I had to kill the process.

  • Running a py script in the Cloud

    12 janvier 2018, par Anay Bose

    I’m new to Google’s cloud & Virtual Machine(VM) instances, and I need some clarifications on a couple of points. I have a python script ; it imports a long range of functions. I need to run those functions in parallel. I’m using multiprocessing and Process, not threads. These functions are basically image and media processors, and they use many other tools like FFMPEG, imagemagick and Avisynth in addition to a wide range of python modules, including moviepy. Now, I would like to run some 50 functions in parallel assigning a CPU for each process. Images, media and avi files are stored in seperate folders. I’m on Windows7 Core-i7 machine. So, need cloud computing power.

    Now, my question can I run such a python script/app in the cloud that requires a very complicated file system and non-python tools i.e. ffmpeg, avisynth and avi files ?

    Can Google VMs emulate my local machine and empower me with more cores and memory to run such a program ? if not, then what are my options ? Is their any tutorials that I can follow ? I need your suggestions. I have given below an example script and some codes to help facilitate your understanding about my situation.

    from __future__ import unicode_literals
    import youtube_dl
    import os
    import time
    import sys
    reload(sys)  
    sys.setdefaultencoding('utf-8')
    from multiprocessing import Process
    from utils import *

    from clip31 import VIDEO31
    from clip32 import VIDEO32
    from clip189 import VIDEO189
    from clip16 import VIDEO16
    from clip39 import VIDEO39


    if __name__== '__main__':

       # 1. CALLING A FUNCTION
       folder = "bodyforce3\\16"
       serial = "16"
       images = get_filepaths("../16")
       videos = get_filepaths("12__media")
       pngs = get_filepaths("../pngs")

       Process(target=VIDEO192, args=(folder, serial, color1, color2, color3, images, videos)).start()


       # 2. CALLING A FUNCTION
       folder = "bodyforce3\\20"
       serial = "20"
       images = get_filepaths("../20")
       videos = get_filepaths("18__media")

       Process(target=VIDEO32, args=(folder, serial, color1, color2, color3, images, videos)).start()


       # 3. CALLING A FUNCTION
       folder = "bodyforce3\\14"
       serial = "14"
       images = get_filepaths("../14")
       videos = get_filepaths("16__media")

       Process(target=VIDEO91, args=(folder, serial, color1, color2, color3, images, videos)).start()

    I copy avi files in functions like this :

    src = "clip50_files"
    src_files = os.listdir(src)
    for file_name in src_files:
       full_file_name = os.path.join(src, file_name)
       if (os.path.isfile(full_file_name)):
           shutil.copy(full_file_name, folder)

    I call ffmpeg commands like this, and they are included within py functions.

    ###########################
    #### FFMPEG OPERATIONS ####
    ###########################

    print "Starting FFMPEG operations ..."

    if os.path.isfile(os.path.join(folder, "bounce-(3).avi")):
       os.remove(os.path.join(folder, "bounce-(3).avi"))


    infile = folder + "/bounce-(3).avs"
    outfile = folder + "/bounce-(3).avi"
    codec = "rawvideo"
    pix_fmt = "bgra"

    try:
       subprocess.call(["ffmpeg",
                        "-i" ,infile,
                        "-c:v" ,codec,
                        "-pix_fmt", pix_fmt,
                        outfile],
                       stdout=open(os.devnull, 'w'),
                       stderr=subprocess.STDOUT)
    except subprocess.CalledProcessError as e:  
       #except subprocess.CalledProcessError as e:
       sys.exit(e.output)
    except OSError as e:
       sys.exit(e.strerror)


    print "FFMPEG operations ended"