Recherche avancée

Médias (1)

Mot : - Tags -/MediaSPIP

Autres articles (98)

  • 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

  • La sauvegarde automatique de canaux SPIP

    1er avril 2010, par

    Dans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
    Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...)

  • Demande de création d’un canal

    12 mars 2010, par

    En fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
    Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...)

Sur d’autres sites (4741)

  • Build FFMPEG under Cygwin in Windows OS for Android

    8 juin 2017, par Jun Kim

    For the past couple days, I have been trying hard to build FFMPEG for a Android project on Windows Operating System using android-ndk-14d using Cygwin.
    I have followed many tutorials out there, and I ahve encountered so many errors while building FFMPEG using build_android.sh.

    Here are the steps that I have taken so far.

    I downloaded Cygwin and configured all the dependencies that I need for building FFMPEG.

    I opened ffmpeg-3.3.1/configure file with a text editor, and changed to the following lines.

    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
    LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
    SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
    SLIB_INSTALL_LINKS='$(SLIBNAME)'

    my build_android.sh is as below

    #!/bin/bash
    NDK=C:/~/ndk-bundle
    SYSROOT=$NDK/platforms/android-21/arch-arm/
    TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64
    function build_one
    {
    ./configure \
       --prefix=$PREFIX \
       --enable-shared \
       --disable-static \
       --disable-doc \
       --disable-ffmpeg \
       --disable-ffplay \
       --disable-ffprobe \
       --disable-ffserver \
       --disable-avdevice \
       --disable-doc \
       --disable-symver \
       --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi-\
       --target-os=android \
       --arch=arm \
       --cpu=armv7-a \
       --enable-cross-compile \
       --sysroot=$SYSROOT \
       --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
       --extra-ldflags="$ADDI_LDFLAGS" \
       $ADDITIONAL_CONFIGURE_FLAG
    make clean
    make
    make install
    }
    CPU=arm
    PREFIX=$(pwd)/android/$CPU
    ADDI_CFLAGS="-marm"
    build_one

    I ran these commands

    dos2unix build_android.sh
    chmod +x build_android.sh
    ./build_android.sh

    and,,,currently getting this error

    c :/users/sonic/appdata/local/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/p
    rebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-an
    droideabi/bin/ld.exe : error : libavutil/libavutil.so:1:1 : syntax error,
    unexpected ’ !’, exp ecting $end

    c :/users/sonic/appdata/local/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/p
    rebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-an
    droideabi/bin/ld.exe : error : libavutil/libavutil.so : not an object or
    archive collect2.exe : error : ld returned 1 exit status
    make : *** [library.mak:94 : libswscale/libswscale-4.so] Error 1 LD

    libswscale/libswscale-4.so
    c :/users/sonic/appdata/local/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/p
    rebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-an
    droideabi/bin/ld.exe : error : libavutil/libavutil.so:1:1 : syntax error,
    unexpected ’ !’, exp ecting $end

    c :/users/sonic/appdata/local/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/p
    rebuilt/windows-x86_64/bin/../lib/gcc/arm-linux->androideabi/4.9.x/../../../../arm-linux-an
    droideabi/bin/ld.exe : error : libavutil/libavutil.so : not an object or
    archive collect2.exe : error : ld returned 1 exit status make : ***
    [library.mak:94 : libswscale/libswscale-4.so] Error 1

    How to compile ffmpeg-2.5.3 on windows with android-ndk-r10d

    From the comments that were commented on the above link, it seems like it is
    easier to build FFMPEG in Linux/Unix OS. My first can be a dumb question. But If there is anyone who can guide me through this, i will be really appreciated it.

    If I build FFMPEG on Linux for Android, could I possibly copy or move those
    resulted output (The arm/lib folder contains the shared libraries, while arm/include folder contains the header files for libavcodec, libavformat, libavfilter, libavutil, libswscale etc.) to Windows OS and utilize them for
    my Android project ?

    Since my company only provides Windows OS for a project, I have to utilize them on Windows OS.

    Thank you for your time, and if there is any feedback that you can provide it will definitely be helpful.

    For the reference, here is my config.log

    END c :/ffmpegtmp/ffconf.qoBF6X98.c
    C :/Users/sonic/AppData/Local/Android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-gcc —sysroot=C :/Users/sonic/AppData/Local/Android/sdk/ndk-bundle/platforms/android-9/arch-arm/

    -isysroot C :/Users/sonic/AppData/Local/Android/sdk/ndk-bundle/platforms/android-9/arch-arm/
    -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Dstrtod=avpriv_strtod -DPIC -Os -fpic -marm -march=armv7-a -std=c11 -fomit-frame-pointer -fPIC -marm -pthread -g -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=format-security -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -Werror=vla -Wformat -c -o c :/ffmpegtmp/ffconf.8joa74tC.o

    c :/ffmpegtmp/ffconf.qoBF6X98.c
    check_cflags -fdiagnostics-color=auto test_cflags
    -fdiagnostics-color=auto check_cc -fdiagnostics-color=auto BEGIN c :/ffmpegtmp/ffconf.qoBF6X98.c
    1 int x ; END c :/ffmpegtmp/ffconf.qoBF6X98.c C :/Users/sonic/AppData/Local/Android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-gcc —sysroot=C :/Users/sonic/AppData/Local/Android/sdk/ndk-bundle/platforms/android-9/arch-arm/

    -isysroot C :/Users/sonic/AppData/Local/Android/sdk/ndk-bundle/platforms/android-9/arch-arm/
    -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Dstrtod=avpriv_strtod -DPIC -Os -fpic -marm -march=armv7-a -std=c11 -fomit-frame-pointer -fPIC -marm -pthread -g -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=format-security -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -Werror=vla -Wformat -fdiagnostics-color=auto -c -o c :/ffmpegtmp/ffconf.8joa74tC.o c :/ffmpegtmp/ffconf.qoBF6X98.c test_cflags -Wmaybe-uninitialized check_cc -Wmaybe-uninitialized BEGIN

    c :/ffmpegtmp/ffconf.qoBF6X98.c
    1 int x ; END c :/ffmpegtmp/ffconf.qoBF6X98.c C :/Users/sonic/AppData/Local/Android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-gcc —sysroot=C :/Users/sonic/AppData/Local/Android/sdk/ndk-bundle/platforms/android-9/arch-arm/

    -isysroot C :/Users/sonic/AppData/Local/Android/sdk/ndk-bundle/platforms/android-9/arch-arm/
    -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Dstrtod=avpriv_strtod -DPIC -Os -fpic -marm -march=armv7-a -std=c11 -fomit-frame-pointer -fPIC -marm -pthread -g -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=format-security -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -Werror=vla -Wformat -fdiagnostics-color=auto -Wmaybe-uninitialized -c -o c :/ffmpegtmp/ffconf.8joa74tC.o c :/ffmpegtmp/ffconf.qoBF6X98.c

  • How to build FFMPEG lib with android ndk

    27 janvier 2017, par S. Le Galloudec

    I introduce my problem : I’m a student working on a project asked by a company to my school.
    My part is to develop an android application (i have to use c++) who can make an authentication, ask to an api wich camera the client can watch, then display in real time the stream of the IP camera (using RTSP protocol)

    To be honnest i’m pretty lost. I’ve found the library FFMPEG, wich looks like useful to my project. If i got it right, the library can display a stream from a camera. So i built the library for my project, and then i tried to include it in my program.

    I did it the same way i did to include the library curl that i already use.

    But when i try to run my program, i got this message :

    FAILURE : Build failed with an exception.

    • What went wrong :
      Execution failed for task ’:app:externalNativeBuildDebug’.
      Build command failed.
      Error while executing ’/local/Android/Sdk/cmake/3.6.3155560/bin/cmake’ with arguments —build /local/Bureau/Projet2/videosurveillance/Application_Android/App_Android/app/.externalNativeBuild/cmake/debug/x86 —target lecteur
      [1/1] Linking CXX shared library ../obj/x86/liblecteur.so
      FAILED : : && /local/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -target i686-none-linux-android -gcc-toolchain /local/Android/Sdk/ndk-bundle/toolchains/x86-4.9/prebuilt/linux-x86_64 —sysroot=/local/Android/Sdk/ndk-bundle/platforms/android-9/arch-x86 -fPIC -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,—noexecstack -Wformat -Werror=format-security -fno-exceptions -fno-rtti -std=gnu++11 -O0 -fno-limit-debug-info -Wl,—build-id -Wl,—warn-shared-textrel -Wl,—fatal-warnings -Wl,—no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,liblecteur.so -o ../obj/x86/liblecteur.so CMakeFiles/lecteur.dir/src/main/cpp/lecteur.cpp.o ../../../../../distribution/ffmpeg/x86/lib/libswscale.a -lz /local/Android/Sdk/ndk-bundle/platforms/android-9/arch-x86/usr/lib/liblog.so -lm "/local/Android/Sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/libgnustl_static.a" && :
      /local/Bureau/Projet2/videosurveillance/Application_Android/App_Android/app/src/main/cpp/lecteur.cpp:19 : error : undefined reference to ’avcodec_configuration’
      clang++ : error : linker command failed with exit code 1 (use -v to see invocation)
      ninja : build stopped : subcommand failed.

      Try :
      Run with —stacktrace option to get the stack trace. Run with —info or —debug option to get more log output.

    And i know that the problem comes from my cmakelist, or from my tree. But i don’t see the mistake, so if you could help me. Here is my cmakelist :

    cmake_minimum_required(VERSION 3.4.1)

    set(distribution_DIR ${CMAKE_SOURCE_DIR}/../distribution)


    add_library(lib-curl STATIC IMPORTED)

    add_library(ffmpeg SHARED IMPORTED)

    set_target_properties(lib-curl PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/curl/lib/${ANDROID_ABI}/libcurl.a)

    set_target_properties(ffmpeg PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/lib/libavcodec.a)

    set_target_properties(ffmpeg PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/lib/libavdevice.a)

    set_target_properties(ffmpeg PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/lib/libavfilter.a)

    set_target_properties(ffmpeg PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/lib/libavformat.a)

    set_target_properties(ffmpeg PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/lib/libavutil.a)

    set_target_properties(ffmpeg PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/lib/libpostproc.a)

    set_target_properties(ffmpeg PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/lib/libswresample.a)

    set_target_properties(ffmpeg PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/lib/libswscale.a)




    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")


    add_library( # Sets the name of the library.
            downloader
            SHARED
            src/main/cpp/downloader.cpp
             #src/main/cpp/downloader.h
             )


    add_library( # Sets the name of the library.
            getrequest
            SHARED
            src/main/cpp/getrequest.cpp
             #src/main/cpp/getrequest.h
             )

    add_library( # Sets the name of the library.
            lecteur
            SHARED
            src/main/cpp/lecteur.cpp
             #src/main/cpp/lecteur.h
             )

    target_include_directories(downloader PRIVATE
                          ${distribution_DIR}/curl/include)

    target_include_directories(getrequest PRIVATE
                          ${distribution_DIR}/curl/include)

    target_include_directories(lecteur PRIVATE
                          ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/include)


    find_library( # Sets the name of the path variable.
             log-lib

             log )

    target_link_libraries( # Specifies the target library.
                      downloader
                      lib-curl
                      z
                      ${log-lib}
                      )

    target_link_libraries( # Specifies the target library.
                      getrequest
                      lib-curl
                      z
                      ${log-lib}
                      )

    target_link_libraries( # Specifies the target library.
                      lecteur
                      ffmpeg
                      z
                      ${log-lib}
                      )

    If you want to understand how i made my cmake, and what looks like my program you can check here : https://github.com/samylegalloudec/android-ndk-ffmepg

    Hope i was clear

    Best regards

    Edit n°1 :

    I think i’ve made a mistake in my cmakelist.txt so i fixed it (i guess) this way :

    cmake_minimum_required(VERSION 3.4.1)

    set(distribution_DIR ${CMAKE_SOURCE_DIR}/../distribution)


    add_library(lib-curl STATIC IMPORTED)



    set_target_properties(lib-curl PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/curl/lib/${ANDROID_ABI}/libcurl.a)

    add_library(ffmpeg-codec STATIC IMPORTED)
    set_target_properties(ffmpeg-codec PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/lib/libavcodec.a)

    add_library(ffmpeg-device STATIC IMPORTED)
    set_target_properties(ffmpeg-device PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/lib/libavdevice.a)

    add_library(ffmpeg-filter STATIC IMPORTED)
    set_target_properties(ffmpeg-filter PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/lib/libavfilter.a)

    add_library(ffmpeg-format STATIC IMPORTED)
    set_target_properties(ffmpeg-format PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/lib/libavformat.a)

    add_library(ffmpeg-util STATIC IMPORTED)
    set_target_properties(ffmpeg-util PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/lib/libavutil.a)

    add_library(ffmpeg-postproc STATIC IMPORTED)
    set_target_properties(ffmpeg-postproc PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/lib/libpostproc.a)

    add_library(ffmpeg-sample STATIC IMPORTED)
    set_target_properties(ffmpeg-sample PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/lib/libswresample.a)

    add_library(ffmpeg-scale STATIC IMPORTED)
    set_target_properties(ffmpeg-scale PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/lib/libswscale.a)




    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")


    add_library( # Sets the name of the library.
            downloader
            SHARED
            src/main/cpp/downloader.cpp
             #src/main/cpp/downloader.h
             )


    add_library( # Sets the name of the library.
            getrequest
            SHARED
            src/main/cpp/getrequest.cpp
             #src/main/cpp/getrequest.h
             )

    add_library( # Sets the name of the library.
            lecteur
            SHARED
            src/main/cpp/lecteur.cpp
             #src/main/cpp/lecteur.h
             )

    target_include_directories(downloader PRIVATE
                          ${distribution_DIR}/curl/include)

    target_include_directories(getrequest PRIVATE
                          ${distribution_DIR}/curl/include)

    target_include_directories(lecteur PRIVATE
                          ${distribution_DIR}/ffmpeg/${ANDROID_ABI}/include)


    find_library( # Sets the name of the path variable.
             log-lib

             log )

    target_link_libraries( # Specifies the target library.
                      downloader
                      lib-curl
                      z
                      ${log-lib}
                      )

    target_link_libraries( # Specifies the target library.
                      getrequest
                      lib-curl
                      z
                      ${log-lib}
                      )

    target_link_libraries( # Specifies the target library.
                      lecteur
                      ffmpeg-codec
                      ffmpeg-device
                      ffmpeg-filter
                      ffmpeg-format
                      ffmpeg-util
                      ffmpeg-postproc
                      ffmpeg-sample
                      ffmpeg-scale
                      z
                      ${log-lib}
                      )

    Now i have another message :

    FAILURE : Build failed with an exception.

    • What went wrong :
      Execution failed for task ’:app:externalNativeBuildDebug’.
      Build command failed.
      Error while executing ’/local/Android/Sdk/cmake/3.6.3155560/bin/cmake’ with arguments —build /local/Bureau/Projet2/videosurveillance/Application_Android/App_Android/app/.externalNativeBuild/cmake/debug/x86 —target lecteur
      [1/1] Linking CXX shared library ../obj/x86/liblecteur.so
      FAILED : : && /local/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -target i686-none-linux-android -gcc-toolchain /local/Android/Sdk/ndk-bundle/toolchains/x86-4.9/prebuilt/linux-x86_64 —sysroot=/local/Android/Sdk/ndk-bundle/platforms/android-9/arch-x86 -fPIC -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,—noexecstack -Wformat -Werror=format-security -fno-exceptions -fno-rtti -std=gnu++11 -O0 -fno-limit-debug-info -Wl,—build-id -Wl,—warn-shared-textrel -Wl,—fatal-warnings -Wl,—no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,liblecteur.so -o ../obj/x86/liblecteur.so CMakeFiles/lecteur.dir/src/main/cpp/lecteur.cpp.o ../../../../../distribution/ffmpeg/x86/lib/libavcodec.a ../../../../../distribution/ffmpeg/x86/lib/libavdevice.a ../../../../../distribution/ffmpeg/x86/lib/libavfilter.a ../../../../../distribution/ffmpeg/x86/lib/libavformat.a ../../../../../distribution/ffmpeg/x86/lib/libavutil.a ../../../../../distribution/ffmpeg/x86/lib/libpostproc.a ../../../../../distribution/ffmpeg/x86/lib/libswresample.a ../../../../../distribution/ffmpeg/x86/lib/libswscale.a -lz /local/Android/Sdk/ndk-bundle/platforms/android-9/arch-x86/usr/lib/liblog.so -lm "/local/Android/Sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/libgnustl_static.a" && :
      /local/Android/Sdk/ndk-bundle/toolchains/x86-4.9/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld : warning : shared library text segment is not shareable
      /local/Android/Sdk/ndk-bundle/toolchains/x86-4.9/prebuilt/linux-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld : error : treating warnings as errors
      clang++ : error : linker command failed with exit code 1 (use -v to see invocation)
      ninja : build stopped : subcommand failed.

    • Try :
      Run with —stacktrace option to get the stack trace. Run with —info or —debug option to get more log output.

  • Overcoming Fintech and Finserv’s Biggest Data Analytics Challenges

    13 septembre 2024, par Daniel Crough — Banking and Financial Services, Marketing, Security

    Data powers innovation in financial technology (fintech), from personalized banking services to advanced fraud detection systems. Industry leaders recognize the value of strong security measures and customer privacy. A recent survey highlights this focus, with 72% of finance Chief Risk Officers identifying cybersecurity as their primary concern.

    Beyond cybersecurity, fintech and financial services (finserv) companies are bogged down with massive amounts of data spread throughout disconnected systems. Between this, a complex regulatory landscape and an increasingly tech-savvy and sceptical consumer base, fintech and finserv companies have a lot on their plates.

    How can marketing teams get the information they need while staying focused on compliance and providing customer value ? 

    This article will examine strategies to address common challenges in the finserv and fintech industries. We’ll focus on using appropriate tools, following effective data management practices, and learning from traditional banks’ approaches to similar issues.

    What are the biggest fintech data analytics challenges, and how do they intersect with traditional banking ?

    Recent years have been tough for the fintech industry, especially after the pandemic. This period has brought new hurdles in data analysis and made existing ones more complex. As the market stabilises, both fintech and finserve companies must tackle these evolving data issues.

    Let’s examine some of the most significant data analytics challenges facing the fintech industry, starting with an issue that’s prevalent across the financial sector :

    1. Battling data silos

    In a recent survey by InterSystems, 54% of financial institution leaders said data silos are their biggest barrier to innovation, while 62% said removing silos is their priority data strategy for the next year.

    a graphic highlighting fintech concerns about siloed data

    Data silos segregate data repositories across departments, products and other divisions. This is a major issue in traditional banking and something fintech companies should avoid inheriting at all costs.

    Siloed data makes it harder for decision-makers to view business performance with 360-degree clarity. It’s also expensive to maintain and operationalise and can evolve into privacy and data compliance issues if left unchecked.

    To avoid or remove data silos, develop a data governance framework and centralise your data repositories. Next, simplify your analytics stack into as few integrated tools as possible because complex tech stacks are one of the leading causes of data silos.

    Use an analytics system like Matomo that incorporates web analytics, marketing attribution and CRO testing into one toolkit.

    A screenshot of Matomo web analytics

    Matomo’s support plans help you implement a data system to meet the unique needs of your business and avoid issues like data silos. We also offer data warehouse exporting as a feature to bring all of your web analytics, customer data, support data, etc., into one centralised location.

    Try Matomo for free today, or contact our sales team to discuss support plans.

    2. Compliance with laws and regulations

    A survey by Alloy reveals that 93% of fintech companies find it difficult to meet compliance regulations. The cost of staying compliant tops their list of worries (23%), outranking even the financial hit from fraud (21%) – and this in a year marked by cyber threats.

    a bar chart shows the top concerns of fintech regulation compliance

    Data privacy laws are constantly changing, and the landscape varies across global regions, making adherence even more challenging for fintechs and traditional banks operating in multiple markets. 

    In the US market, companies grapple with regulations at both federal and state levels. Here are some of the state-level legislation coming into effect for 2024-2026 :

    Other countries are also ramping up regional regulations. For instance, Canada has Quebec’s Act Respecting the Protection of Personal Information in the Private Sector and British Columbia’s Personal Information Protection Act (BC PIPA).

    Ignorance of country- or region-specific laws will not stop companies from suffering the consequences of violating them.

    The only answer is to invest in adherence and manage business growth accordingly. Ultimately, compliance is more affordable than non-compliance – not only in terms of the potential fines but also the potential risks to reputation, consumer trust and customer loyalty.

    This is an expensive lesson that fintech and traditional financial companies have had to learn together. GDPR regulators hit CaixaBank S.A, one of Spain’s largest banks, with multiple multi-million Euro fines, and Klarna Bank AB, a popular Swedish fintech company, for €720,000.

    To avoid similar fates, companies should :

    1. Build solid data systems
    2. Hire compliance experts
    3. Train their teams thoroughly
    4. Choose data analytics tools carefully

    Remember, even popular tools like Google Analytics aren’t automatically safe. Find out how Matomo helps you gather useful insights while sticking to rules like GDPR.

    3. Protecting against data security threats

    Cyber threats are increasing in volume and sophistication, with the financial sector becoming the most breached in 2023.

    a bar chart showing the percentage of data breaches per industry from 2021 to 2023
<p>

    The cybersecurity risks will only worsen, with WEF estimating annual cybercrime expenses of up to USD $10.5 trillion globally by 2025, up from USD $3 trillion in 2015.

    While technology brings new security solutions, it also amplifies existing risks and creates new ones. A 2024 McKinsey report warns that the risk of data breaches will continue to increase as the financial industry increasingly relies on third-party data tools and cloud computing services unless they simultaneously improve their security posture.

    The reality is that adopting a third-party data system without taking the proper precautions means adopting its security vulnerabilities.

    In 2023, the MOVEit data breach affected companies worldwide, including financial institutions using its file transfer system. One hack created a global data crisis, potentially affecting the customer data of every company using this one software product.

    The McKinsey report emphasises choosing tools wisely. Why ? Because when customer data is compromised, it’s your company that takes the heat, not the tool provider. As the report states :

    “Companies need reliable, insightful metrics and reporting (such as security compliance, risk metrics and vulnerability tracking) to prove to regulators the health of their security capabilities and to manage those capabilities.”

    Don’t put user or customer data in the hands of companies you can’t trust. Work with providers that care about security as much as you do. With Matomo, you own all of your data, ensuring it’s never used for unknown purposes.

    A screenshot of Matomo visitor reporting

    4. Protecting users’ privacy

    With security threats increasing, fintech companies and traditional banks must prioritise user privacy protection. Users are also increasingly aware of privacy threats and ready to walk away from companies that lose their trust.

    Cisco’s 2023 Data Privacy Benchmark Study reveals some eye-opening statistics :

    • 94% of companies said their customers wouldn’t buy from them if their data wasn’t protected, and 
    • 95% see privacy as a business necessity, not just a legal requirement.

    Modern financial companies must balance data collection and management with increasing privacy demands. This may sound contradictory for companies reliant on dated practices like third-party cookies, but they need to learn to thrive in a cookieless web as customers move to banks and service providers that have strong data ethics.

    This privacy protection journey starts with implementing web analytics ethically from the very first session.

    A graphic showing the four key elements of ethical web analytics: 100% data ownership, respecting user privacy, regulatory compliance and Data transparency

    The most important elements of ethically-sound web analytics in fintech are :

    1. 100% data ownership : Make sure your data isn’t used in other ways by the tools that collect it.
    2. Respecting user privacy : Only collect the data you absolutely need to do your job and avoid personally identifiable information.
    3. Regulatory compliance : Stick with solutions built for compliance to stay out of legal trouble.
    4. Data transparency : Know how your tools use your data and let your customers know how you use it.

    Read our guide to ethical web analytics for more information.

    5. Comparing customer trust across industries 

    While fintech companies are making waves in the financial world, they’re still playing catch-up when it comes to earning customer trust. According to RFI Global, fintech has a consumer trust score of 5.8/10 in 2024, while traditional banking scores 7.6/10.

    a comparison of consumer trust in fintech vs traditional finance

    This trust gap isn’t just about perception – it’s rooted in real issues :

    • Security breaches are making headlines more often.
    • Privacy regulations like GDPR are making consumers more aware of their rights.
    • Some fintech companies are struggling to handle fraud effectively.

    According to the UK’s Payment Systems Regulator, digital banking brands Monzo and Starling had some of the highest fraudulent activity rates in 2022. Yet, Monzo only reimbursed 6% of customers who reported suspicious transactions, compared to 70% for NatWest and 91% for Nationwide.

    So, what can fintech firms do to close this trust gap ?

    • Start with privacy-centric analytics from day one. This shows customers you value their privacy from the get-go.
    • Build and maintain a long-term reputation free of data leaks and privacy issues. One major breach can undo years of trust-building.
    • Learn from traditional banks when it comes to handling issues like fraudulent transactions, identity theft, and data breaches. Prompt, customer-friendly resolutions go a long way.
    • Remember : cutting-edge financial technology doesn’t make up for poor customer care. If your digital bank won’t refund customers who’ve fallen victim to credit card fraud, they’ll likely switch to a traditional bank that will.

    The fintech sector has made strides in innovation, but there’s still work to do in establishing trustworthiness. By focusing on robust security, transparent practices, and excellent customer service, fintech companies can bridge the trust gap and compete more effectively with traditional banks.

    6. Collecting quality data

    Adhering to data privacy regulations, protecting user data and implementing ethical analytics raises another challenge. How can companies do all of these things and still collect reliable, quality data ?

    Google’s answer is using predictive models, but this replaces real data with calculations and guesswork. The worst part is that Google Analytics doesn’t even let you use all of the data you collect in the first place. Instead, it uses something called data sampling once you pass certain thresholds.

    In practice, this means that Google Analytics uses a limited set of your data to calculate reports. We’ve discussed GA4 data sampling at length before, but there are two key problems for companies here :

    1. A sample size that’s too small won’t give you a full representation of your data.
    2. The more visitors that come to your site, the less accurate your reports will become.

    For high-growth companies, data sampling simply can’t keep up. Financial marketers widely recognise the shortcomings of big tech analytics providers. In fact, 80% of them say they’re concerned about data bias from major providers like Google and Meta affecting valuable insights.

    This is precisely why CRO:NYX Digital approached us after discovering Google Analytics wasn’t providing accurate campaign data. We set up an analytics system to suit the company’s needs and tested it alongside Google Analytics for multiple campaigns. In one instance, Google Analytics failed to register 6,837 users in a single day, approximately 9.8% of the total tracked by Matomo.

    In another instance, Google Analytics only tracked 600 visitors over 24 hours, while Matomo recorded nearly 71,000 visitors – an 11,700% discrepancy.

    a data visualisation showing the discrepancy in Matomo's reporting vs Google Analytics

    Financial companies need a more reliable, privacy-centric alternative to Google Analytics that captures quality data without putting users at potential risk. This is why we built Matomo and why our customers love having total control and visibility of their data.

    Unlock the full power of fintech data analytics with Matomo

    Fintech companies face many data-related challenges, so compliant web analytics shouldn’t be one of them. 

    With Matomo, you get :

    • An all-in-one solution that handles traditional web analytics, behavioural analytics and more with strong integrations to minimise the likelihood of data siloing
    • Full compliance with GDPR, CCPA, PIPL and more
    • Complete ownership of your data to minimise cybersecurity risks caused by negligent third parties
    • An abundance of ways to protect customer privacy, like IP address anonymisation and respect for DoNotTrack settings
    • The ability to import data from Google Analytics and distance yourself from big tech
    • High-quality data that doesn’t rely on sampling
    • A tool built with financial analytics in mind

    Don’t let big tech companies limit the power of your data with sketchy privacy policies and counterintuitive systems like data sampling. 

    Start your Matomo free trial or request a demo to unlock the full power of fintech data analytics without putting your customers’ personal information at unnecessary risk.