Recherche avancée

Médias (91)

Autres articles (62)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

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

Sur d’autres sites (10949)

  • D3D11 hardware screen recording with ffmpeg using Intel H264 QSV hardware encoding

    13 mai 2024, par Cactus

    I'm trying to screen record using ffmpeg and having it all done via hardware on my Intel integrated graphics.

    


    Specs

    


    For reference, here are my specs :

    


      

    • Windows 11 Pro Version 10.0.22631 Build 22631
    • 


    • Model : Dell Inc. OptiPlex 3090
    • 


    • Processor : 11th Gen Intel(R) Core(TM) i3-1115G4 @ 3.00GHz, 2995 Mhz, 2 Core(s), 4 Logical Processor(s)
    • 


    • Terminal : Windows Terminal using Windows Powershell
    • 


    


    In this wiki, it looked like I could use the "Windows 8+ Desktop Duplication API" to be "directly encoded by a compatible hardware encoder" — so I thought that I could use h264_qsv to encode, allowing me to record without much performance overhead costs.

    


    Attempt 1

    


    I've tried copying one of the command examples, but it didn't work :

    


    ffmpeg -init_hw_device d3d11va -filter_complex ddagrab=0 


    


    Output :

    


    ffmpeg version 2024-05-02-git-71669f2ad5-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
  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-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --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-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      59. 16.101 / 59. 16.101
  libavcodec     61.  5.103 / 61.  5.103
  libavformat    61.  3.103 / 61.  3.103
  libavdevice    61.  2.100 / 61.  2.100
  libavfilter    10.  2.101 / 10.  2.101
  libswscale      8.  2.100 /  8.  2.100
  libswresample   5.  2.100 /  5.  2.100
  libpostproc    58.  2.100 / 58.  2.100
Stream mapping:
  ddagrab:default -> Stream #0:0 (h264_qsv)
Press [q] to stop, [?] for help
Impossible to convert between the formats supported by the filter 'Parsed_ddagrab_0' and the filter 'auto_scale_0'
[fc#0 @ 000001e4ed4393c0] Error configuring filter graph: Function not implemented
[fc#0 @ 000001e4ed4393c0] Task finished with error code: -40 (Function not implemented)
[fc#0 @ 000001e4ed4393c0] Terminating thread with return code -40 (Function not implemented)
[vost#0:0/h264_qsv @ 000001e4ed454000] Could not open encoder before EOF
[vost#0:0/h264_qsv @ 000001e4ed454000] Task finished with error code: -22 (Invalid argument)
[vost#0:0/h264_qsv @ 000001e4ed454000] Terminating thread with return code -22 (Invalid argument)
[out#0/matroska @ 000001e4ed453280] Nothing was written into output file, because at least one of its streams received no packets.
frame=    0 fps=0.0 q=0.0 Lsize=       0KiB time=N/A bitrate=N/A speed=N/A
Conversion failed!


    


    Attempt 2

    


    I then tried copying one of the command examples in the linked ddagrab wiki page, but also no luck.

    


    ffmpeg -f lavfi -i ddagrab -c:v h264_qsv output.mkv


    


    Output :

    


    ffmpeg version 2024-05-02-git-71669f2ad5-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
  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-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --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-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      59. 16.101 / 59. 16.101
  libavcodec     61.  5.103 / 61.  5.103
  libavformat    61.  3.103 / 61.  3.103
  libavdevice    61.  2.100 / 61.  2.100
  libavfilter    10.  2.101 / 10.  2.101
  libswscale      8.  2.100 /  8.  2.100
  libswresample   5.  2.100 /  5.  2.100
  libpostproc    58.  2.100 / 58.  2.100
Input #0, lavfi, from 'ddagrab':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: wrapped_avframe, d3d11, 1920x1080 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 1000k tbn
File 'output.mkv' already exists. Overwrite? [y/N] y
Stream mapping:
  Stream #0:0 -> #0:0 (wrapped_avframe (native) -> h264 (h264_qsv))
Press [q] to stop, [?] for help
Impossible to convert between the formats supported by the filter 'Parsed_null_0' and the filter 'auto_scale_0'
[vf#0:0 @ 00000115e105bd40] Error reinitializing filters!
[vf#0:0 @ 00000115e105bd40] Task finished with error code: -40 (Function not implemented)
[vf#0:0 @ 00000115e105bd40] Terminating thread with return code -40 (Function not implemented)
[vost#0:0/h264_qsv @ 00000115e105aa00] Could not open encoder before EOF
[vost#0:0/h264_qsv @ 00000115e105aa00] Task finished with error code: -22 (Invalid argument)
[vost#0:0/h264_qsv @ 00000115e105aa00] Terminating thread with return code -22 (Invalid argument)
[out#0/matroska @ 00000115e1054b80] Nothing was written into output file, because at least one of its streams received no packets.
frame=    0 fps=0.0 q=0.0 Lsize=       0KiB time=N/A bitrate=N/A speed=N/A
Conversion failed!


    


    My main problem is that I don't know how to use really any of these encoders and the examples I've found above don't work with me. What command should I use to screen record all with hardware acceleration on my Intel system ? I don't care about any presets or other options at the moment.

    


    Is there also a way to record audio ? When I tried to use -f dshow -i audio="Stereo Mix (Realtek(R) Audio)" by itself, which I made sure was turned on in Windows' settings and named correctly, it didn't work (is it because I'm using Bluetooth headphones that isn't connected to Realtek's system ?). Should this question be made separately than this one ?

    


  • How to stream webcam video over RTSP using ffmpeg on Windows 10 ? [closed]

    15 mai 2024, par let me down slowly

    I am trying to stream my laptop's webcam using RTSP protocol using ffmpeg. I am trying to simulate an actual IP Camera. I have already tried different tools already including using VidGear python package, and gstreamer but could not get it working. Note : I am on Windows 10. I have tried this command :

    


    ffmpeg -f dshow -s 320x240 -rtbufsize 2147.48M -r 30 -vcodec mjpeg -i video="HD Camera" -f rtsp -rtsp_transport tcp rtsp://localhost:8554/mystream


    


    It turns on the webcam with but prints these logs to the console :

    


    ffmpeg version 7.0-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
  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-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --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-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      59.  8.100 / 59.  8.100
  libavcodec     61.  3.100 / 61.  3.100
  libavformat    61.  1.100 / 61.  1.100
  libavdevice    61.  1.100 / 61.  1.100
  libavfilter    10.  1.100 / 10.  1.100
  libswscale      8.  1.100 /  8.  1.100
  libswresample   5.  1.100 /  5.  1.100
  libpostproc    58.  1.100 / 58.  1.100
[mjpeg @ 0000026201ae9fc0] unable to decode APP fields: Invalid data found when processing input
Input #0, dshow, from 'video=HD Camera':
  Duration: N/A, start: 1285415.793302, bitrate: N/A
  Stream #0:0: Video: mjpeg (Baseline) (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/unknown/unknown), 320x240, 30 fps, 30 tbr, 10000k tbn
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> mpeg4 (native))
Press [q] to stop, [?] for help
[mjpeg @ 0000026201afe9c0] unable to decode APP fields: Invalid data found when processing input
[swscaler @ 0000026201b5cc40] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 00000262068c57c0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0000026201b5cc40] deprecated pixel format used, make sure you did set range correctly
    Last message repeated 1 times
[mjpeg @ 0000026201afe9c0] unable to decode APP fields: Invalid data found when processing input
    Last message repeated 8 times


    


    I tried opening rtsp://localhost:8554/mystream but it shows VLC is unable to open the MRL 'rtsp://localhost:8554/mystream'. Check the log for details.

    


    Killing the running process outputs these additional logs

    


    [out#0/rtsp @ 0000026201aeaf80] Could not write header (incorrect codec parameters ?): Immediate exit requested
[vf#0:0 @ 0000026201af4100] Error sending frames to consumers: Immediate exit requested
[vf#0:0 @ 0000026201af4100] Task finished with error code: -1414092869 (Immediate exit requested)
[vf#0:0 @ 0000026201af4100] Terminating thread with return code -1414092869 (Immediate exit requested)
[out#0/rtsp @ 0000026201aeaf80] Nothing was written into output file, because at least one of its streams received no packets.
frame=    0 fps=0.0 q=0.0 Lsize=       0KiB time=N/A bitrate=N/A speed=N/A
Exiting normally, received signal 2.


    


    Output of the command ffmpeg -list_devices true -f dshow -i dummy :

    


      built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
  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-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --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-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      59.  8.100 / 59.  8.100
  libavcodec     61.  3.100 / 61.  3.100
  libavformat    61.  1.100 / 61.  1.100
  libavdevice    61.  1.100 / 61.  1.100
  libavfilter    10.  1.100 / 10.  1.100
  libswscale      8.  1.100 /  8.  1.100
  libswresample   5.  1.100 /  5.  1.100
  libpostproc    58.  1.100 / 58.  1.100
[dshow @ 00000140f18d4200] "HD Camera" (video)
[dshow @ 00000140f18d4200]   Alternative name "@device_pnp_\\?\usb#vid_05c8&pid_03ea&mi_00#6&d0a8c55&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"
[dshow @ 00000140f18d4200] "Microphone (Realtek(R) Audio)" (audio)
[dshow @ 00000140f18d4200]   Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{06840D8D-1151-4D9C-B865-2FE01BFB9FD2}"
[in#0 @ 00000140f18ba640] Error opening input: Immediate exit requested
Error opening input file dummy.


    


    Output of the command ffmpeg -f dshow -list_options true -i video="HD Camera" :

    


      built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
  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-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --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-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      59.  8.100 / 59.  8.100
  libavcodec     61.  3.100 / 61.  3.100
  libavformat    61.  1.100 / 61.  1.100
  libavdevice    61.  1.100 / 61.  1.100
  libavfilter    10.  1.100 / 10.  1.100
  libswscale      8.  1.100 /  8.  1.100
  libswresample   5.  1.100 /  5.  1.100
  libpostproc    58.  1.100 / 58.  1.100
[dshow @ 000002670b4c12c0] DirectShow video device options (from video devices)
[dshow @ 000002670b4c12c0]  Pin "Capture" (alternative pin name "Capture")
[dshow @ 000002670b4c12c0]   vcodec=mjpeg  min s=1280x720 fps=30 max s=1280x720 fps=30
[dshow @ 000002670b4c12c0]   vcodec=mjpeg  min s=640x480 fps=30 max s=640x480 fps=30
[dshow @ 000002670b4c12c0]   vcodec=mjpeg  min s=640x360 fps=30 max s=640x360 fps=30
[dshow @ 000002670b4c12c0]   vcodec=mjpeg  min s=352x288 fps=30 max s=352x288 fps=30
[dshow @ 000002670b4c12c0]   vcodec=mjpeg  min s=320x240 fps=30 max s=320x240 fps=30
[dshow @ 000002670b4c12c0]   vcodec=mjpeg  min s=176x144 fps=30 max s=176x144 fps=30
[dshow @ 000002670b4c12c0]   pixel_format=yuyv422  min s=1280x720 fps=10 max s=1280x720 fps=10
[dshow @ 000002670b4c12c0]   pixel_format=yuyv422  min s=640x480 fps=30 max s=640x480 fps=30
[dshow @ 000002670b4c12c0]   pixel_format=yuyv422  min s=640x360 fps=30 max s=640x360 fps=30
[dshow @ 000002670b4c12c0]   pixel_format=yuyv422  min s=352x288 fps=30 max s=352x288 fps=30
[dshow @ 000002670b4c12c0]   pixel_format=yuyv422  min s=320x240 fps=30 max s=320x240 fps=30
[dshow @ 000002670b4c12c0]   pixel_format=yuyv422  min s=176x144 fps=30 max s=176x144 fps=30
[in#0 @ 000002670b4aa200] Error opening input: Immediate exit requested
Error opening input file video=HD Camera.


    


    Please help me solve the issue or suggest a better approach.

    


  • B2B Customer Journey Map : A Quickfire Guide for Growth

    20 mai 2024, par Erin

    What is a company’s biggest asset ?

    Its product ? Its employees ? Its unique selling proposition ?

    More and more people are recognising it’s something else entirely : your customers.

    Without your customers, your business can’t exist.

    Nearly 77% of B2B buyers found the buying process too complicated.

    With more competition than ever, it’s crucial you provide the best possible experience for them.

    That’s where your customer journey comes in.

    If you’re in the B2B space, you need to know how to map out the journey.

    By building a B2B customer journey map, you’ll be able to analyse the weak spots in the customer journey so you can improve the experience (and generate more revenue).

    In this article, we break down the B2B customer journey stages, how to build a customer journey map and how Matomo can help you track your customer journey automatically.

    What is a B2B customer journey ?

    Every customer goes through a specific path within your business.

    At some point in time, they found out about you and eventually bought your products.

    What is a B2B customer journey?

    A B2B customer journey is the collection of touchpoints your customer has with your business from start to finish.

    From discovery to purchase (and more), your customers go through a specific set of touches you can track. By analysing this journey, you can get a snapshot of your user experience.

    One way to track the customer journey is with a B2B customer journey map.

    It helps you to quickly see the different steps your customers take in their path with your business.

    With it, you can quickly identify weak spots and successes to improve the customer journey.

    5 stages of the B2B customer journey

    Every one of your customers is unique. Their specific needs and their journey.

    It’s all different.

    But, there are crucial steps they take through their journey as your customer.

    It’s the same path your entire customer base takes.

    Here are the five stages of the B2B customer journey (and why you should track them) :

    5 stages of the B2B customer journey.

    1. Awareness

    Awareness is the first stage that every B2B buyer goes through when they start their journey in B2B companies as a customer.

    At this stage, your target buyer understands they have a problem they need solving. They’re out, actively trying to solve this problem. 

    This is where you can stand out from the competition and give them a good first impression.

    Some helpful content you could create to do this is :

    • Blog posts
    • Social media posts
    • Ebooks
    • Whitepapers

    2. Consideration

    Next up, your buyer persona has an awareness of your company. But, now they’ve started narrowing down their options for potential businesses they’re interested in.

    They’ve selected yours as a potential business to hand their hard-earned cash over to, but they’re still making up their mind.

    At this point, you need to do what you can to clear up any objections and doubts in their mind and make them trust you.

    Some helpful content you could create here include :

    • Product demos by your sales team
    • Webinars
    • Case studies

    3. Conversion

    Next up, your target buyer has compared all their options and decided on you as the chosen product/company.

    This is where the purchase decision is made — when the B2B buyer actually signs or clicks “buy.”

    Here, you’ll want to provide more :

    • Case studies
    • Live demos
    • Customer service
    • Customer reviews/testimonials

    4. Loyalty

    Your B2B buyer is now a customer. But, not all customers return. The majority will slip away after the first purchase. If you want them to return, you need to fuel the relationship and nurture them even more.

    You’ll want to shift your efforts to nurturing the relationship with a post-purchase strategy where you build on that trust, seek customer feedback to prove high customer satisfaction and reward their loyalty.

    Some content you may want to create here includes :

    • Thank you emails
    • Follow-up emails
    • Follow-up calls
    • Product how-tos
    • Reward program
    • Surveys

    5. Advocacy

    The final stage of the B2B customer journey map is advocacy.

    This is the stage beyond loyalty where your customers aren’t just coming back for more ; they’re actively telling others about you.

    This is the cream of the crop when it comes to the B2B buyer stages, and it happens when you exceed customer expectations repeatedly.

    Your goal should be to eventually get all of your customers to this stage. Because then, they’re doing free marketing for you.

    This is only possible when a customer receives enough positive B2B customer experiences with your company where the value they’ve received far exceeds what they perceived they have given.

    Here are a few pieces of content you can create to fuel advocacy :

    • Surveys
    • Testimonial requests
    • Referral program

    Difference between B2C and B2B customer journeys

    Every person on earth who buys something enters the customer journey.

    But, not all customer journeys are created equal.

    This is especially true when you compare the B2C and B2B customer journeys.

    While there are similarities, the business-to-consumer (B2C) journey has clear differences compared to the business-to-business (B2B) journey.

    B2C vs. B2B customer journey.

    The most obvious difference between the two journeys is that B2B customer journeys are far more complex. 

    Not only are these two companies selling to different audiences, but they also have to deploy a completely different set of strategies to lead their customers down the path as far as they can go.

    While the journey structures are similar (from awareness to advocacy), there are differing motivating behaviours.

    Here’s a table showing the difference between B2C and B2B in the customer journey :

    Different FactorsB2BB2C
    Target audienceSmaller, industry more importantLarger, general consumer
    BuyerMultiple decision-makersOne decision-maker
    Buying decisionBased on needs of the organisation with multiple stakeholdersBased on an individual’s pain points
    Buying processMultiple stepsSingle step
    Customer retentionOrganisational needs and ROI-basedIndividual emotional factors
    Repeat sales driverDeep relationshipRepetition, attention-based

    Step-by-step guide to building a B2B customer journey map

    Now that you’ve got a basic understanding of the typical B2B customer journey, it’s time to build out your map so you can create a visual representation of the journey.

    Step-by-step guide to building a customer journey map.

    Here are six steps you need to take to craft an effective B2B customer journey map in your business :

    1. Identify your target audience (and different segments)

    The first step in customer journey mapping is to look at your target audience.

    You need to understand who they are and what different segments make up your audience.

    You need to look at the different roles each person plays within the journey.

    Unlike B2C, you’re not usually dealing with a single person. You likely have a few decision-makers you need to interact with to close a deal.

    The average B2B deal involves 6 to 10 people.

    Analyse the different roles and responsibilities of your audience.

    Figure out what requirements they need to onboard you. Understand each person’s level of influence in the buying decision.

    2. Determine your customers’ goals

    Now that you have a clear understanding of each person involved in the buying process, it’s time to analyse their unique needs and goals.

    Unlike B2C, which will include a single person with a single set of needs and goals, you have to look at several people through the decision-making process.

    What is every decision-maker’s goal ?

    An entry-level admin will have much different goals than a CEO.

    Understand each of their needs as it will be key to selling them and taking you to the next person in the chain of command.

    3. Lean on data and analytics

    Now it’s time to analyse your data.

    You don’t want to guess what will work on your B2B buyers. Instead, leverage data that proves what’s working (and what’s not).

    Analytics software like Matomo are crucial tools in your B2B customer journey toolkit.

    Matomo can help you make data-driven decisions to fuel customer acquisition and loyalty to help get more customers all the way to the advocacy stage.

    Using Matomo (which analyses and interprets different data sources) can give you a holistic view of what’s going on at each stage of the journey so you can reach your goals.

    Try Matomo for Free

    Get the web insights you need, without compromising data accuracy.

    No credit card required

    4. Draw out customer journey stages

    Now that you have your data-backed plan, it’s time for some customer journey mapping.

    You can do this on paper or use a diagram tool to create a visual B2B customer journey map.

    Here, you’ll draw out every single stage in your customer journey, including every single touchpoint from different decision-makers.

    5. Determine each customer touchpoint

    Once you’ve drawn up the customer journey stages, you’ll have a key list of B2B customer journey touchpoints to implement.

    Write down every single customer interaction possible on the journey through.

    This could be reading an email, a blog post or watching a video on your home page.

    It could be an advertisement, a phone call or a follow-up email.

    It could even be a live demo or video sales call (meeting).

    6. Identify your own goals

    Now that you’ve got your visual B2B customer journey mapping done, it’s time to go back to you and your company.

    What are your goals ?

    What are the end results you’re looking for here ?

    You’ve got your current map in place. Now, how would you like customers to go through this journey ?

    Where would you like them to end up ?

    Look back at your company’s primary objectives if you’re stuck here.

    If your company is looking to increase profit margins, then maybe you want to focus more on retention, so you’re spending less on acquisition (and leaning more on recurring revenue from existing customers).

    How to create a Matomo funnel to track your B2B customer journey

    If you want to start tracking and optimising your B2B customer journey, you need to have a good grasp on your funnel.

    The reality is that your customer journey is your funnel.

    They’re one and the same.

    Your customer journeys through your sales funnel.

    So, if you want to optimise it, then you need to see what’s going on at each stage of your funnel.

    Screenshot example of the Matomo dashboard

    With Matomo, you can map out your entire funnel and track key events like conversions.

    This allows you to identify where your site visitors are having problems, where they’re exiting and other obstacles they’re facing on their journey through.

    To start, you first define what events or touchpoints you want included. This could mean :

    • Landing on your website
    • Visiting a product page
    • Adding something to cart
    • Going to checkout
    • Clicking “buy”

    Then, at each stage, you’ll see conversion rates.

    For example, if only 3% of your visitors go from landing on your website to the product page, you likely have an issue between your homepage (and other pages) and your product pages.

    Or, if you can get people to add to cart, but you rarely get people going to checkout, there’s likely a problem to fix on your add-to-cart page.

    By leveraging Matomo’s funnels feature, you get to see your entire customer journey (and where people are falling off) so you understand what you need to optimise to grow your business.

    If you’re ready to start building and optimising your customer journey today, then try Matomo for free for 21 days.