Recherche avancée

Médias (91)

Autres articles (68)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

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

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

Sur d’autres sites (5558)

  • Multivariate Testing vs A/B Testing (Quick-Start Guide)

    7 mars 2024, par Erin

    Traditional advertising (think Mad Men) was all about slogans, taglines and coming up with a one-liner that was meant to change the world.

    But that type of advertising was extremely challenging to test, so it was hard to know if it worked. Most of the time, nobody knew if they were being effective with their advertising.

    Enter modern marketing : the world of data-driven advertising.

    Thanks to the internet and web analytics tools like Matomo, you can quickly test almost anything and improve your site.

    The question is, should you do multivariate testing or A/B testing ?

    While both have their advantages, each has a specific use case.

    In this guide, we’ll break down the differences between multivariate and A/B testing, offer some pros and cons of each and show you some examples so you can decide which one is best for you.

    What is A/B testing ?

    A/B testing, or split testing, is testing an individual element in a medium against another version of the same element to see which produces better results.

    What is a/b testing?

    A/B tests are conducted by creating two different versions of a digital landmark : a website, landing page, email, or advertisement.

    The goal ? Figure out which version performs better.

    Let’s say, for example, you want to drive more sales on your core product page.

    You test two call-to-action buttons : “Buy Now” and “Add to Cart.”

    After running the test for two weeks, you see that “Buy Now” produced 1.2% conversions while “Add to Cart” produced 7.6%.

    In this scenario, you’ve found your winner : version B, “Add to Cart.”

    By conducting A/B tests regularly, you can optimise your site, increase engagement and convert more visitors into customers.

    Keep in mind that A/B testing isn’t perfect ; it doesn’t always produce a win.

    According to Noah Kagan, founder of AppSumo, only 1 out of 8 A/B tests his company conducts produces significant change.

    Advantages of A/B testing

    A/B testing is great when you need to get an accurate result fast on a specific element of your marketing efforts.

    Whether it’s a landing page or product page, you can get quick results without needing a lot of traffic.

    A/B testing is one of the most widely accepted and used testing methods for marketers and business owners.

    When you limit the number of tracked variables used in a test, you can quickly deliver reliable data, allowing you to iterate and pivot quickly if necessary.

    This is a great way to test your marketing methods, especially if you’re a newer business or you don’t have substantial traffic yet.

    Splitting up your traffic into a few segments (like with multivariate testing) will be very challenging to gain accurate results if you have lower daily traffic.

    One final advantage of A/B testing is that it’s a relatively easy way to introduce testing and optimising to a team, decision-maker, or stakeholder since it’s easy to implement. You can quickly demonstrate the value with a simple change and tangible evidence.

    Disadvantages of A/B testing

    So, what are the downsides to A/B testing ?

    Although A/B testing can get you quick results on small changes, it has limitations.

    A/B testing is all about measuring one element against another.

    This means you’re immediately limited in how many elements you can test. If you have to test out different variables, then A/B testing isn’t your best option since you’ll have to run test after test to get your result.

    If you need specific information on how different combinations of elements interact with one another on a web page, then multivariate is your best option.

    What is multivariate testing ?

    If you want to take your testing to the next level, you’ll want to try multivariate testing.

    Multivariate testing relies on the same foundational mechanism of A/B testing, but instead of matching up two elements against one another, it compares a higher number of variables at once.

    Multiple + variations = multivariate.

    Multivariate testing looks at how combinations of elements and variables interact.

    Like A/B testing, traffic to a page is split between different web page versions. Multivariate testing aims to measure each version’s effectiveness against the other versions.

    Ultimately, it’s about finding the winning combination.

    What Is Multivariate Testing?

    When to use multivariate testing

    The quick answer on when to use multivariate testing is if you have enough traffic.

    Just how much traffic, though ?

    While there’s no set number, you should aim to have 10,000 visitors per month or more, to ensure that each variant receives enough traffic to produce meaningful results within a reasonable time frame.

    Once you meet the traffic requirement, let’s talk about use cases.

    Let’s say you want to introduce a new email signup.

    But you want to create it from scratch and aren’t sure what will make your audience take action.

    So, you create a page with a signup form, a header, and an image.

    To run a multivariate test, you create two lengths of signup forms, four headlines, and two images.

    Next, you would create a test to split traffic between these sixteen combinations.

    Advantages of multivariate testing

    If you have enough traffic, multivariate testing can be an incredible way to speed up your A/B testing by testing dozens of combinations of your web page.

    This is handy when creating a new landing page and you want to determine if specific parts of your design are winners — which you can then use in future campaigns.

    Disadvantages of multivariate testing

    The main disadvantage of multivariate testing is that you need a lot of traffic to get started.

    If you try to do a multivariate analysis but you’re not getting much traffic, your results won’t be accurate (and it will take a long time to see accurate data).

    Additionally, multivariate tests are more complicated. They’re best suited for advanced marketers since more moving parts are at play.

    Key differences between multivariate and A/B testing

    Now that we’ve covered what A/B and multivariate tests are, let’s look at some key differences to help clarify which is best for you.

    Key differences between multivariate testing and A/B testing.

    1. Variation of combinations

    The major difference between A/B and multivariate testing is the number of combinations involved.

    With A/B testing, you only look at one element (no combinations). You simply take one part of your page (i.e., your headline copy) and make two versions.

    With multivariate testing, you’re looking at combinations of different elements (i.e., headline copy, form length, images).

    2. Number of pages to test

    The next difference lies in how many pages you will test.

    With an A/B test, you are splitting traffic on your website to two different pages : A and B.

    However, with multivariate testing, you will likely have 4-16 different test pages.

    This is because dozens of combinations can be created when you start testing a handful of elements at once.

    For example, if you want to test two headlines, two form buttons and two images on a signup form, then you have several combinations :

    • Headline A, Button A, Image A
    • Headline A, Button A, Image B
    • Headline A, Button B, Image A
    • Headline A, Button B, Image B
    • Headline B, Button A, Image A
    • Headline B, Button A, Image B
    • Headline B, Button B, Image A
    • Headline B, Button B, Image B

    In this scenario, you must create eight pages to send traffic to.

    3. Traffic requirements

    The next major difference between the two testing types is the traffic requirements.

    With A/B testing, you don’t need much traffic at all.

    Since you’re only testing two pages, you can split your traffic in half between the two types.

    However, if you plan on implementing a multivariate test, you will likely be splitting your traffic at least four or more ways.

    This means you need to have significantly more traffic coming in to get accurate data from your test. If you try to do this when your traffic is too low, you won’t have a large enough sample size.

    4. Time requirements

    Next up, just like traffic, there’s also a time requirement.

    A/B testing only tests two versions of a page against each other (while testing a single element). This means you’ll get accurate results faster than a multivariate test — usually within days.

    However, for a multivariate test, you might need to wait weeks. This is because you’re splitting your traffic by 4, 8, 12, or more web page variations. This could take months since you need a large enough sample size for accuracy.

    5. Big vs. small changes

    Another difference between A/B testing and multivariate testing is the magnitude of changes.

    With an A/B test, you’re looking at one element of a page, which means changing that element to the winning version isn’t a major overhaul of your design.

    But, with multivariate testing, you may find that the winning combination is drastically different than your control page, which could lead to a significant design change.

    6. Accuracy of results

    A/B tests are easier to decipher than multivariate testing since you only look at two versions of a single element on a page.

    You have a clear winner if one headline yields a 5% conversion rate and another yields a 1.2% conversion rate.

    But multivariate testing looks at so many combinations of a page that it can be a bit trickier to decipher what’s moving the needle.

    Pros and cons : Multivariate vs. A/B testing

    Before picking your testing method of choice, let’s look at some quick pros and cons.

    Pros and cons of multivariate vs. a/b testing.

    A/B testing pros and cons

    Here are the pros and cons of A/B testing :

    Pros

    • Get results quickly
    • Results are easier to interpret
    • Lower traffic requirement
    • Easy to get started

    Cons

    • You need to be hyper-focused on the right testing element
    • Requires performing test after test to optimise a web page

    Multivariate testing pros and cons

    Here are the pros and cons of multivariate testing :

    Pros

    • Handy when redesigning an entire web page
    • You can test multiple variables at once
    • Significant results (since traffic is higher)
    • Gather multiple data insights at once

    Cons

    • Requires substantial traffic
    • Harder to accurately decipher results
    • Not as easy to get started (more advanced)

    Use Matomo to start testing and improving your site

    A/B testing in Matomo analytics

    You need to optimise your website if you want to get more leads, land more conversions and grow your business.

    A/B testing and multivariate testing are proven testing methods you can lean on to improve your website and create a better user experience.

    You may prefer one testing method now over the other, and that’s okay.

    The main thing is you’re starting to test. The best marketers and analysts in the world find what works through testing and double down on their winning tactics.

    If you want to start improving your website with testing today, get started with Matomo for free.

    With Matomo, you can conduct A/B tests and multivariate tests easily, accurately, and ethically. Unlike other web analytics tools, Matomo prioritises privacy, providing
    100% accurate data without sampling, and eliminates the need for cookie consent
    banners (except in the UK and Germany).

    Try Matomo free for 21-days. No credit card required.

  • ffmpeg copy codec outputs in slowmotion

    8 avril 2022, par Rudi

    i have the following scenario that is driving me crazy :

    


    i have a capture device. Here the ffprobe on it :

    


    pi@skycam:~ $ ffprobe /dev/video0
ffprobe version 4.1.6-1~deb10u1+rpt2 Copyright (c) 2007-2020 the FFmpeg developers
  built with gcc 8 (Raspbian 8.3.0-6+rpi1)
  configuration: --prefix=/usr --extra-version='1~deb10u1+rpt2' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-vout-drm --enable-v4l2-request --enable-libudev --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --libdir=/usr/lib/arm-linux-gnueabihf --cpu=arm1176jzf-s --arch=arm
  WARNING: library configuration mismatch
  avutil      configuration: --prefix=/usr --extra-version='1~deb10u1+rpt2' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-vout-drm --enable-v4l2-request --enable-libudev --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  avcodec     configuration: --prefix=/usr --extra-version='1~deb10u1+rpt2' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-vout-drm --enable-v4l2-request --enable-libudev --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  avformat    configuration: --prefix=/usr --extra-version='1~deb10u1+rpt2' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-vout-drm --enable-v4l2-request --enable-libudev --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  avdevice    configuration: --prefix=/usr --extra-version='1~deb10u1+rpt2' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-vout-drm --enable-v4l2-request --enable-libudev --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  avfilter    configuration: --prefix=/usr --extra-version='1~deb10u1+rpt2' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-vout-drm --enable-v4l2-request --enable-libudev --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  avresample  configuration: --prefix=/usr --extra-version='1~deb10u1+rpt2' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-vout-drm --enable-v4l2-request --enable-libudev --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  swscale     configuration: --prefix=/usr --extra-version='1~deb10u1+rpt2' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-vout-drm --enable-v4l2-request --enable-libudev --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  swresample  configuration: --prefix=/usr --extra-version='1~deb10u1+rpt2' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-vout-drm --enable-v4l2-request --enable-libudev --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  postproc    configuration: --prefix=/usr --extra-version='1~deb10u1+rpt2' --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-neon --enable-rpi --enable-vout-drm --enable-v4l2-request --enable-libudev --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
[mjpeg @ 0x18a79b0] No JPEG data found in image
[mjpeg @ 0x18a79b0] Found EOI before any SOF, ignoring
[mjpeg @ 0x18a79b0] No JPEG data found in image
Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 3716.774220, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 1920x1080, 60 fps, 60 tbr, 1000k tbn, 1000k tbc


    


    now i want to record via FFMPEG as smooth as possible.

    


    therefore i tested and the following command is giving me a good result :

    


    ffmpeg -r 60 -an -i /dev/video0 -preset ultrafast -vcodec copy test.mjpeg 


    


    but the problem is, i get the result in slowmotion. it seems like the mjpeg file is played back in VLC in half speed. Why is this happening ?

    


    thanks a lot,
cheers Rudi

    


    edit : here the output :

    


    [mjpeg @ 0x762250] No JPEG data found in image
[mjpeg @ 0x762250] Found EOI before any SOF, ignoring
[mjpeg @ 0x762250] No JPEG data found in image
Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 5174.036617, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 1920x1080, 60 fps, 60 tbr, 1000k tbn, 1000k tbc
Output #0, mjpeg, to '/home/pi/java_workspace/skycam_data/test14.mjpeg':
  Metadata:
    encoder         : Lavf58.20.100
    Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 1920x1080, q=2-31, 60 fps, 60 tbr, 1000k tbn, 1000k tbc
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
frame=   33 fps=0.0 q=-1.0 size=    2560kB time=00:00:00.51 bitrate=40952.2kbits/s speed=1.01x    
frame=   63 fps= 63 q=-1.0 size=    5120kB time=00:00:01.01 bitrate=41434.6kbits/s speed=   1x    
frame=   94 fps= 62 q=-1.0 size=    7680kB time=00:00:01.53 bitrate=41062.1kbits/s speed=1.01x    
frame=  124 fps= 61 q=-1.0 size=   10496kB time=00:00:02.03 bitrate=42309.4kbits/s speed=1.01x    
frame=  154 fps= 61 q=-1.0 size=   13568kB time=00:00:02.53 bitrate=43890.8kbits/s speed=   1x    
frame=  184 fps= 61 q=-1.0 size=   17152kB time=00:00:03.03 bitrate=46334.8kbits/s speed=   1x    
frame=  214 fps= 61 q=-1.0 size=   20736kB time=00:00:03.53 bitrate=48087.4kbits/s speed=   1x    
frame=  245 fps= 61 q=-1.0 size=   25088kB time=00:00:04.04 bitrate=50763.2kbits/s speed=   1x    


    


    output of ffplay on the same file :

    


    ./ffplay test14.mjpeg 
ffplay version N-106494-g1291568c98-tessus Copyright (c) 2003-2022 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --enable-librtmp --enable-ffplay --enable-sdl2 --disable-ffmpeg --disable-ffprobe
  libavutil      57. 24.101 / 57. 24.101
  libavcodec     59. 25.100 / 59. 25.100
  libavformat    59. 20.101 / 59. 20.101
  libavdevice    59.  6.100 / 59.  6.100
  libavfilter     8. 30.100 /  8. 30.100
  libswscale      6.  6.100 /  6.  6.100
  libswresample   4.  6.100 /  4.  6.100
  libpostproc    56.  5.100 / 56.  5.100
[mjpeg @ 0x7fd70be22500] Format mjpeg detected only with low score of 12, misdetection possible!
[mjpeg @ 0x7fd70be2bfc0] Found EOI before any SOF, ignoring
Input #0, mjpeg, from 'test14.mjpeg':
  Duration: N/A, bitrate: N/A
  Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 1920x1080, 25 tbr, 1200k tbn
[mjpeg @ 0x7fd70bd91600] Found EOI before any SOF, ignoring
[swscaler @ 0x7fd70e043000] [swscaler @ 0x7fd70e7eb000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x7fd70e043000] [swscaler @ 0x7fd70f923000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x7fd70e043000] [swscaler @ 0x7fd70f932000] deprecated pixel format used, make sure you did set range correctly


    


  • Alias Artifacts

    26 avril 2013, par Multimedia Mike — General

    Throughout my own life, I have often observed that my own sense of nostalgia has a window that stretches about 10-15 years past from the current moment. Earlier this year, I discovered the show “Alias” and watched through the entire series thanks to Amazon Prime Instant Video (to be fair, I sort of skimmed the fifth and final season which I found to be horribly dull, or maybe franchise fatigue had set in). The show originally aired from 2001-2006 so I found that it fit well within the aforementioned nostalgia window.


    Alias (TV Series) logo

    But what was it, exactly, about the show that triggered nostalgia ? The computers, of course ! The show revolved around spies and espionage and cutting-edge technology necessarily played a role. The production designer for the series must have decided that Unix/Linux == awesome hacking and so many screenshots featured Linux.

    Since this is still nominally a multimedia blog, I’ll start of the screenshot recon with an old multimedia player. Here is a vintage Mac OS desktop running an ancient web browser (probably Netscape) that’s playing a full-window video (probably QuickTime embedded directly into the browser).


    Old Mac OS with old browser

    Click for larger image


    Let’s jump right into the Linux side of things. This screenshot makes me particularly sentimental since this is exactly what a stock Linux/KDE desktop looked like circa 2001-2003 and is more or less what I would have worked with on my home computer at the time :


    Alias: Linux/KDE desktop

    Click for larger image


    Studying that screenshot, we see that the user logs in as root, even to the desktop environment. Poor security practice ; I would expect better from a bunch of spooks.

    Echelon
    Look at the terminal output in the above screenshot– it’s building a program named Echelon, an omniscient spy tool inspired by a real-world surveillance network of the same name. In the show, Echelon is used to supply plot-convenient intelligence. At one point, some antagonists get their hands on the Echelon source code and seek to compile it. When they do, they will have access to the vast surveillance network. If you know anything about how computers work, don’t think about that too hard.

    Anyway, it’s interesting to note that Echelon is a properly autotool’d program– when the bad guys finally got Echelon, installation was just a ‘make install’ command away. The compilation was very user-friendly, though, as it would pop up a nice dialog box showing build progress :


    Alias: Compiling Echelon

    Click for larger image


    Examining the build lines in both that screenshot and the following lines, we can see that Echelon cares about files such as common/db_err.c and bt_curadj.c :


    Alias: Echelon used Berkeley DB

    Click for larger image


    A little googling reveals that these files both belong to the Berkeley DB library. That works ; I can imagine a program like this leveraging various database packages.

    Computer Languages
    The Echelon source code stuff comes from episode 2.11 : “A Higher Echelon”. While one faction had gotten a hold of the actual Echelon source code, a rival faction had abducted the show’s resident uber-nerd and, learning that they didn’t actually receive the Echelon code, force the nerd to re-write Echelon from scratch. Which he then proceeds to do…


    Alias: Rewriting Echelon

    Click for larger image


    The code he’s examining there appears to be C code that has something to do with joystick programming (JS_X_0, JS_Y_1, etc.). An eagle-eyed IMDb user contributed the trivia that he is looking at the file /usr/include/Linux/joystick.h.

    Getting back to the plot, how could the bad buys possibly expect him to re-write a hugely complex piece of software from scratch ? You might think this is the height of absurdity for a computer-oriented story. You’ll be pleased to know that the writers agreed with that assessment since, when the program was actually executed, it claimed to be Echelon, but that broke into a game of Pong (or some simple game). Suddenly, it makes perfect sense why the guy was looking at the joystick header file.

    This is the first bit of computer-oriented fun that I captured when I was watching the series :


    Alias: Java on the mainframe

    Click for larger image


    This printout purports to be a “mainframe log summary”. After some plot-advancing text about a security issue, it proceeds to dump out some Java source code.

    SSH
    Secure Shell (SSH) frequently showed up. Here’s a screenshot in which a verbose ‘ssh -v’ connection has just been closed, while a telnet command has apparently just been launched (evidenced by “Escape character is ‘^]’.”) :


    Alias: SSH/telnet

    Click for larger image


    This is followed by some good old Hollywood Hacking in which a free-form database command is entered through any available command line interface :


    Alias: Intuitive command line interface

    Click for larger image


    I don’t remember the episode details, but I’m pretty sure the output made perfect sense to the character typing the command. Here’s another screenshot where the SSH client pops up an extra-large GUI dialog element to notify the user that it’s currently negotiating with the host :


    Alias: SSH negotiation dialog

    Click for larger image


    Now that I look at that screenshot a little more closely, it appears to be a Win95/98 program. I wonder if there was an SSH client that actually popped up that gaudy dialog.

    There’s a lot of gibberish in this screenshot and I wish I had written down some details about what it represented according to the episode’s plot :


    Alias: Public key

    Click for larger image


    It almost sounds like they were trying to break into a network computer. Analyzing MD5 structure… public key synthesized. To me, the funniest feature is the 7-digit public key. I’m a bit rusty on the math of the RSA cryptosystem, but intuitively, it seems that the public and private keys need to be of roughly equal lengths. I.e., the private key in this scenario would also be 7 digits long.

    Gadgets
    Various devices and gadgets were seen at various junctures in the show. Here’s a tablet computer from back when tablet computers seemed like fantastical (albeit stylus-requiring) devices– the Fujitsu Stylistic 2300 :


    Alias: Fujitsu Stylistic 2300 tablet

    Click for larger image


    Here’s a videophone from an episode that aired in 2005. The specific model is the Packet8 DV326 (MSRP of US$500). As you can see from the screenshot, it can do 384 kbps both down and up.


    Alias: Packet8 DV326

    Click for larger image


    I really regret not writing down the episode details surrounding this gadget. I just know that it was critical that the good guys get it and keep from falling into the hands of the bad guys.


    Alias: Gadget using Samsung and Lexar chips

    Click for larger image


    As you can see, the (presumably) deadly device contains a Samsung chip and a Lexar chip. I have to wonder what device the production crew salvaged this from (probably just an old cell phone).

    Other Programs

    The GIMP photo editor makes an appearance while scrubbing security camera footage, and serves as the magical Enhance Button (at least they slung around the term “gamma”) :


    Alias: GIMP editor

    Click for larger image


    I have no idea what MacOS-based audio editing program this is. Any ideas ?


    Alias: Apple MacOS-based audio editor

    Click for larger image


    FTP shows up in episode 2.12, “The Getaway”. It’s described as a “secure channel” for communication, which is quite humorous to anyone versed in internet technology.


    Alias: FTP secure channel

    Click for larger image