Recherche avancée

Médias (91)

Autres articles (70)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP 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" (...)

  • Participer à sa traduction

    10 avril 2011

    Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
    Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
    Actuellement MediaSPIP n’est disponible qu’en français et (...)

Sur d’autres sites (7556)

  • FFmpeg image to video conversion error : [image2] Opening file for reading

    14 février 2018, par user1690179

    I am running ffmpeg on an AWS Lambda instance. The Lambda function takes an input image and transcodes it into a video segment using ffmpeg :

    ffmpeg -loop 1 -i /tmp/photo-SNRUR7ZS13.jpg -c:v libx264 -t 7.00 -pix_fmt yuv420p -vf scale=1280x720 /tmp/output.mp4

    I am seeing inconsistent behavior where sometimes the output video is shorter than the specified duration. This happens inconsistently to random images. The same exact image sometimes renders correctly, and sometimes is cut short.

    This behavior only happens on Lambda. I am not able to replicate this on my local computer, or on a dedicated EC2 instance with the same environment that runs on lambda.

    I noticed that when the output video is short, the ffmpeg log is different. The main difference are repeated [image2 @ 0x4b11140] Opening '/tmp/photo-2HD2Z3UN3W.jpg' for reading lines. See ffmpeg logs below.

    Normal execution with the correct output video length :

       ffmpeg -loop 1 -i /tmp/photo-SNRUR7ZS13.jpg -c:v libx264 -t 7.00 -pix_fmt yuv420p -vf scale=1280x720 /tmp/video-TMB6RNO0EE.mp4
    ffmpeg version N-89773-g7fcbebbeaf-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2018 the FFmpeg developers
     built with gcc 6.4.0 (Debian 6.4.0-11) 20171206
     configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg
     libavutil      56.  7.100 / 56.  7.100
     libavcodec     58.  9.100 / 58.  9.100
     libavformat    58.  3.100 / 58.  3.100
     libavdevice    58.  0.100 / 58.  0.100
     libavfilter     7. 11.101 /  7. 11.101
     libswscale      5.  0.101 /  5.  0.101
     libswresample   3.  0.101 /  3.  0.101
     libpostproc    55.  0.100 / 55.  0.100
    Input #0, image2, from '/tmp/photo-SNRUR7ZS13.jpg':
     Duration: 00:00:00.04, start: 0.000000, bitrate: 18703 kb/s
       Stream #0:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 687x860 [SAR 200:200 DAR 687:860], 25 fps, 25 tbr, 25 tbn, 25 tbc
    Stream mapping:
     Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
    Press [q] to stop, [?] for help
    [swscaler @ 0x5837900] deprecated pixel format used, make sure you did set range correctly
    [libx264 @ 0x51c2340] using SAR=1477/3287
    [libx264 @ 0x51c2340] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x51c2340] profile High, level 3.1
    [libx264 @ 0x51c2340] 264 - core 155 r61 b00bcaf - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - 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=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=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, mp4, to '/tmp/video-TMB6RNO0EE.mp4':
     Metadata:
       encoder         : Lavf58.3.100
       Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 6183:13760 DAR 687:860], q=-1--1, 25 fps, 12800 tbn, 25 tbc
       Metadata:
         encoder         : Lavc58.9.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    frame=   49 fps=0.0 q=28.0 size=       0kB time=-00:00:00.03 bitrate=N/A speed=N/A    
    frame=   69 fps= 66 q=28.0 size=       0kB time=00:00:00.76 bitrate=   0.5kbits/s speed=0.728x    
    frame=   89 fps= 57 q=28.0 size=       0kB time=00:00:01.56 bitrate=   0.2kbits/s speed=0.998x    
    frame=  109 fps= 53 q=28.0 size=       0kB time=00:00:02.36 bitrate=   0.2kbits/s speed=1.14x    
    frame=  129 fps= 50 q=28.0 size=       0kB time=00:00:03.16 bitrate=   0.1kbits/s speed=1.22x    
    frame=  148 fps= 48 q=28.0 size=       0kB time=00:00:03.92 bitrate=   0.1kbits/s speed=1.27x    
    frame=  168 fps= 47 q=28.0 size=       0kB time=00:00:04.72 bitrate=   0.1kbits/s speed=1.31x    
    No more output streams to write to, finishing.
    frame=  175 fps= 39 q=-1.0 Lsize=      94kB time=00:00:06.88 bitrate= 112.2kbits/s speed=1.54x    
    video:91kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.161261%
    Input file #0 (/tmp/photo-SNRUR7ZS13.jpg):
     Input stream #0:0 (video): 176 packets read (16459168 bytes); 176 frames decoded;
     Total: 176 packets (16459168 bytes) demuxed
    Output file #0 (/tmp/video-TMB6RNO0EE.mp4):
     Output stream #0:0 (video): 175 frames encoded; 175 packets muxed (93507 bytes);
     Total: 175 packets (93507 bytes) muxed
    [libx264 @ 0x51c2340] frame I:1     Avg QP:14.33  size: 73084
    [libx264 @ 0x51c2340] frame P:44    Avg QP:14.09  size:   302
    [libx264 @ 0x51c2340] frame B:130   Avg QP:23.31  size:    50
    [libx264 @ 0x51c2340] consecutive B-frames:  0.6%  1.1%  0.0% 98.3%
    [libx264 @ 0x51c2340] mb I  I16..4:  3.3% 84.5% 12.1%
    [libx264 @ 0x51c2340] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  3.2%  0.1%  0.0%  0.0%  0.0%    skip:96.7%
    [libx264 @ 0x51c2340] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.4%  0.0%  0.0%  direct: 0.0%  skip:99.6%  L0:31.2% L1:68.8% BI: 0.0%
    [libx264 @ 0x51c2340] 8x8 transform intra:84.5% inter:98.8%
    [libx264 @ 0x51c2340] coded y,uvDC,uvAC intra: 95.1% 63.9% 51.6% inter: 0.1% 0.6% 0.0%
    [libx264 @ 0x51c2340] i16 v,h,dc,p: 26% 21%  4% 49%
    [libx264 @ 0x51c2340] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 27% 21%  3%  5%  6%  6%  4%  9%
    [libx264 @ 0x51c2340] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 36% 10%  4%  7%  5%  6%  2%  6%
    [libx264 @ 0x51c2340] i8c dc,h,v,p: 51% 29% 16%  4%
    [libx264 @ 0x51c2340] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 0x51c2340] ref P L0: 96.5%  0.0%  3.3%  0.2%
    [libx264 @ 0x51c2340] ref B L0: 42.4% 57.6%
    [libx264 @ 0x51c2340] ref B L1: 97.0%  3.0%
    [libx264 @ 0x51c2340] kb/s:106.08

    Log from a short video :

    ffmpeg -framerate 25 -y -loop 1 -i /tmp/photo-2HD2Z3UN3W.jpg -t 15.00 -filter_complex "[0:v]crop=h=ih:w='if(gt(a,16/9),ih*16/9,iw)':y=0:x='if(gt(a,16/9),(ow-iw)/2,0)'[tmp];[tmp]scale=-1:4000,crop=w=iw:h='min(iw*9/16,ih)':x=0:y='0.17*ih-((t/15.00)*min(0.17*ih,(ih-oh)/6))',trim=duration=15.00[tmp1];[tmp1]zoompan=z='if(lte(pzoom,1.0),1.15,max(1.0,pzoom-0.0005))':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=1,setsar=sar=1:1[animated];[animated]fade=out:st=12.00:d=3.00:c=#000000[animated]" -map "[animated]" -pix_fmt yuv420p -s 1280x720 -y /tmp/video-QB1JCDT021.mp4
    ffmpeg version N-89773-g7fcbebbeaf-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2018 the FFmpeg developers
    built with gcc 6.4.0 (Debian 6.4.0-11) 20171206
    configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg
    libavutil 56. 7.100 / 56. 7.100
    libavcodec 58. 9.100 / 58. 9.100
    libavformat 58. 3.100 / 58. 3.100
    libavdevice 58. 0.100 / 58. 0.100
    libavfilter 7. 11.101 / 7. 11.101
    libswscale 5. 0.101 / 5. 0.101
    libswresample 3. 0.101 / 3. 0.101
    libpostproc 55. 0.100 / 55. 0.100
    Input #0, image2, from '/tmp/photo-2HD2Z3UN3W.jpg':
    Duration: 00:00:00.04, start: 0.000000, bitrate: 373617 kb/s
    Stream #0:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 1936x2592 [SAR 72:72 DAR 121:162], 25 fps, 25 tbr, 25 tbn, 25 tbc
    Stream mapping:
    Stream #0:0 (mjpeg) -> crop
    fade -> Stream #0:0 (libx264)
    Press [q] to stop, [?] for help
    [swscaler @ 0x4d63b40] deprecated pixel format used, make sure you did set range correctly
    [swscaler @ 0x4df7340] deprecated pixel format used, make sure you did set range correctly
    [swscaler @ 0x50e97c0] deprecated pixel format used, make sure you did set range correctly
    [swscaler @ 0x50e97c0] Warning: data is not aligned! This can lead to a speed loss
    [libx264 @ 0x4b17480] using SAR=1/1
    [libx264 @ 0x4b17480] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x4b17480] profile High, level 3.1
    [libx264 @ 0x4b17480] 264 - core 155 r61 b00bcaf - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - 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=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=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, mp4, to '/tmp/video-QB1JCDT021.mp4':
    Metadata:
    encoder : Lavf58.3.100
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 12800 tbn, 25 tbc
    Metadata:
    encoder : Lavc58.9.100 libx264
    Side data:
    cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    [swscaler @ 0x5bd0380] deprecated pixel format used, make sure you did set range correctly
    debug=1
    cur_dts is invalid (this is harmless if it occurs once at the start per stream)
    [image2 @ 0x4b11140] Opening '/tmp/photo-2HD2Z3UN3W.jpg' for reading
    [AVIOContext @ 0x4b6ecc0] Statistics: 1868086 bytes read, 0 seeks
    [mjpeg @ 0x4b14940] marker=d8 avail_size_in_buf=1868084
    [mjpeg @ 0x4b14940] marker parser used 0 bytes (0 bits)
    [mjpeg @ 0x4b14940] marker=e0 avail_size_in_buf=1868082
    [mjpeg @ 0x4b14940] marker parser used 16 bytes (128 bits)
    [mjpeg @ 0x4b14940] marker=db avail_size_in_buf=1868064
    [mjpeg @ 0x4b14940] index=0
    [mjpeg @ 0x4b14940] qscale[0]: 0
    [mjpeg @ 0x4b14940] marker parser used 67 bytes (536 bits)
    [mjpeg @ 0x4b14940] marker=db avail_size_in_buf=1867995
    [mjpeg @ 0x4b14940] index=1
    [mjpeg @ 0x4b14940] qscale[1]: 1
    [mjpeg @ 0x4b14940] marker parser used 67 bytes (536 bits)
    [mjpeg @ 0x4b14940] marker=c0 avail_size_in_buf=1867926
    [mjpeg @ 0x4b14940] sof0: picture: 1936x2592
    [mjpeg @ 0x4b14940] component 0 1:1 id: 0 quant:0
    [mjpeg @ 0x4b14940] component 1 1:1 id: 1 quant:1
    [mjpeg @ 0x4b14940] component 2 1:1 id: 2 quant:1
    [mjpeg @ 0x4b14940] pix fmt id 11111100
    [mjpeg @ 0x4b14940] marker parser used 17 bytes (136 bits)
    [mjpeg @ 0x4b14940] marker=c4 avail_size_in_buf=1867907
    [mjpeg @ 0x4b14940] class=0 index=0 nb_codes=11
    [mjpeg @ 0x4b14940] marker parser used 30 bytes (240 bits)
    [mjpeg @ 0x4b14940] marker=c4 avail_size_in_buf=1867875
    [mjpeg @ 0x4b14940] class=1 index=0 nb_codes=242
    [mjpeg @ 0x4b14940] marker parser used 82 bytes (656 bits)
    [mjpeg @ 0x4b14940] marker=c4 avail_size_in_buf=1867791
    [mjpeg @ 0x4b14940] class=0 index=1 nb_codes=8
    [mjpeg @ 0x4b14940] marker parser used 27 bytes (216 bits)
    [mjpeg @ 0x4b14940] marker=c4 avail_size_in_buf=1867762
    [mjpeg @ 0x4b14940] class=1 index=1 nb_codes=241
    [mjpeg @ 0x4b14940] marker parser used 51 bytes (408 bits)
    [mjpeg @ 0x4b14940] escaping removed 7149 bytes
    [mjpeg @ 0x4b14940] marker=da avail_size_in_buf=1867709
    [mjpeg @ 0x4b14940] component: 0
    [mjpeg @ 0x4b14940] component: 1
    [mjpeg @ 0x4b14940] component: 2
    [mjpeg @ 0x4b14940] marker parser used 1860559 bytes (14884468 bits)
    [mjpeg @ 0x4b14940] marker=d9 avail_size_in_buf=0
    [mjpeg @ 0x4b14940] decode frame unused 0 bytes
    [swscaler @ 0x5bd42c0] deprecated pixel format used, make sure you did set range correctly
    cur_dts is invalid (this is harmless if it occurs once at the start per stream)
    [image2 @ 0x4b11140] Opening '/tmp/photo-2HD2Z3UN3W.jpg' for reading
    [AVIOContext @ 0x4b6ecc0] Statistics: 1868086 bytes read, 0 seeks
    [mjpeg @ 0x4b14940] marker=d8 avail_size_in_buf=1868084
    [mjpeg @ 0x4b14940] marker parser used 0 bytes (0 bits)
    [mjpeg @ 0x4b14940] marker=e0 avail_size_in_buf=1868082
    [mjpeg @ 0x4b14940] marker parser used 16 bytes (128 bits)
    [mjpeg @ 0x4b14940] marker=db avail_size_in_buf=1868064
    [mjpeg @ 0x4b14940] index=0
    [mjpeg @ 0x4b14940] qscale[0]: 0
    [mjpeg @ 0x4b14940] marker parser used 67 bytes (536 bits)
    [mjpeg @ 0x4b14940] marker=db avail_size_in_buf=1867995
    [mjpeg @ 0x4b14940] index=1
    [mjpeg @ 0x4b14940] qscale[1]: 1
    [mjpeg @ 0x4b14940] marker parser used 67 bytes (536 bits)
    [mjpeg @ 0x4b14940] marker=c0 avail_size_in_buf=1867926
    [mjpeg @ 0x4b14940] sof0: picture: 1936x2592
    [mjpeg @ 0x4b14940] component 0 1:1 id: 0 quant:0
    [mjpeg @ 0x4b14940] component 1 1:1 id: 1 quant:1
    [mjpeg @ 0x4b14940] component 2 1:1 id: 2 quant:1
    [mjpeg @ 0x4b14940] pix fmt id 11111100
    [mjpeg @ 0x4b14940] marker parser used 17 bytes (136 bits)
    [mjpeg @ 0x4b14940] marker=c4 avail_size_in_buf=1867907
    [mjpeg @ 0x4b14940] class=0 index=0 nb_codes=11
    [mjpeg @ 0x4b14940] marker parser used 30 bytes (240 bits)
    [mjpeg @ 0x4b14940] marker=c4 avail_size_in_buf=1867875
    [mjpeg @ 0x4b14940] class=1 index=0 nb_codes=242
    [mjpeg @ 0x4b14940] marker parser used 82 bytes (656 bits)
    [mjpeg @ 0x4b14940] marker=c4 avail_size_in_buf=1867791
    [mjpeg @ 0x4b14940] class=0 index=1 nb_codes=8
    [mjpeg @ 0x4b14940] marker parser used 27 bytes (216 bits)
    [mjpeg @ 0x4b14940] marker=c4 avail_size_in_buf=1867762
    [mjpeg @ 0x4b14940] class=1 index=1 nb_codes=241
    [mjpeg @ 0x4b14940] marker parser used 51 bytes (408 bits)
    [mjpeg @ 0x4b14940] escaping removed 7149 bytes
    [mjpeg @ 0x4b14940] marker=da avail_size_in_buf=1867709
    [mjpeg @ 0x4b14940] component: 0
    [mjpeg @ 0x4b14940] component: 1
    [mjpeg @ 0x4b14940] component: 2
    [mjpeg @ 0x4b14940] marker parser used 1860559 bytes (14884468 bits)
    [mjpeg @ 0x4b14940] marker=d9 avail_size_in_buf=0
    [mjpeg @ 0x4b14940] decode frame unused 0 bytes
    [swscaler @ 0x5bd8200] deprecated pixel format used, make sure you did set range correctly
    cur_dts is invalid (this is harmless if it occurs once at the start per stream)
    ...
    ...
    ...

    As requested, here is a link to the full log. In this log - ffmpeg renders only 323 out of 375 frames.

    The Opening '/tmp/photo-2HD2Z3UN3W.jpg' segment repeats many many times until it finally renders out a short video. Does anyone have insight into why it keeps opening the image file ? This must have something to do with the underlying issue.

  • How to create video from multiple gallery images store in array flutter ffmpeg

    26 janvier 2023, par Ammara

    I select images from gallery using multi_image_picker in flutter and store all images in array.

    


      try {
   resultList = await 
   MultiImagePicker.pickImages(
    maxImages: 300,
    enableCamera: true,
    selectedAssets: images,
    materialOptions: MaterialOptions(
      actionBarTitle: "Photo Editor and Video 
   Maker App",
    ),
  );
 }


    


    User can select images from gallery and store in resultlist array.
Now I want to pass this array to ffmpeg to create video from all these images.

    


    I try a lot and search almost all sites but fail. Here is my code.

    


    Future<void> ConvertImageToVideo () async{&#xA;const String BASE_PATH = &#x27;/storage/emulated/0/Download/&#x27;;&#xA;const String AUDIO_PATH = BASE_PATH &#x2B; &#x27;audiio.mp3&#x27;;&#xA;const String IMAGE_PATH = BASE_PATH &#x2B; &#x27;image002.png&#x27;;&#xA;const String OUTPUT_PATH = BASE_PATH &#x2B; &#x27;output02.mp4&#x27;;&#xA;// final FlutterFFmpeg _flutterFFmpeg = FlutterFFmpeg();&#xA;if(await Permission.storage.request().isGranted){&#xA;  List<asset> resultlist  = <asset>[];&#xA;  String commandToExecute =&#xA;      &#x27;-r 15 -f mp3 -i ${AUDIO_PATH} -f image2 -i ${resultlist} -y ${OUTPUT_PATH}&#x27;;&#xA;  await FFmpegKit.execute(commandToExecute).then((session) async {&#xA;    final returnCode = await session.getReturnCode();&#xA;    final state = await session.getState();&#xA;    if (ReturnCode.isSuccess(returnCode)) {&#xA;      print("ruuning   "&#x2B;state.toString());&#xA;      print("video created " &#x2B; returnCode.toString());&#xA;    } else if (ReturnCode.isCancel(returnCode)) {&#xA;      print("video cancel "  &#x2B; returnCode.toString());&#xA;    } else {&#xA;      print("error " );&#xA;    }&#xA;  });&#xA;}else if (await Permission.storage.isPermanentlyDenied) {&#xA;  openAppSettings();&#xA;}&#xA;</asset></asset></void>

    &#xA;

    }

    &#xA;

  • 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.