Recherche avancée

Médias (0)

Mot : - Tags -/clipboard

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

Autres articles (89)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

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

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

    Explications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
    Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)

Sur d’autres sites (14552)

  • How to Implement Cross-Channel Analytics : A Guide for Marketers

    17 avril 2024, par Erin

    Every modern marketer knows they have to connect with consumers across several channels. But do you know how well Instagram works alongside organic traffic or your email list ? Are you even tracking the impacts of these channels in one place ?

    You need a cross-channel analytics solution if you answered no to either of these questions. 

    In this article, we’ll explain cross-channel analytics, why your company probably needs it and how to set up a cross-channel analytics solution as quickly and easily as possible.

    What is cross-channel analytics ? 

    Cross-channel analytics is a form of marketing analytics that collects and analyses data from every channel and campaign you use.

    The result is a comprehensive view of your customer’s journey and each channel’s role in converting customers. 

    Cross-channel analytics lets you track every channel you use to convert customers, including :

    • Your website
    • Social media profiles
    • Email
    • Paid search
    • E-commerce
    • Retargeting campaigns

    Cross-channel analytics solves one of the most significant issues of cross-channel or multi-channel marketing efforts : measurement. 

    Research shows that only 16% of marketing tech stacks allow for accurate measurement of multi-channel initiatives across channels. 

    That’s a problem, given the staggering number of touchpoints in a typical buyer’s conversion path. However, it can be fixed using a cross-channel analytics approach that lets you measure the performance of every channel and assign a dollar value to its role in every conversion. 

    The difference between cross-channel analytics and multi-channel analytics

    Cross-channel analytics and multi-channel analytics sound very similar, but there’s one key difference you need to know. Multi-channel analytics measures the performance of several channels, but not necessarily all of them, nor the extent to which they work together to drive conversions. Conversely, cross-channel analytics measures the performance of all your marketing channels and how they work together. 

    What are the benefits of cross-channel analytics 

    Cross-channel analytics offers a lot of marketing and business benefits. Here are the ones marketing managers love most.

    Get a complete view of the customer journey

    Implementing a cross-channel analytics solution is the only way to get a complete view of your customer journey. 

    Cross-channel marketing analytics lets you see your customer journey in high definition, allowing you to build comprehensive customer profiles using data from multiple sources across every touchpoint

    A diagram showing how complex customer journeys are

    The result ? You get to understand how every customer behaves at every point of the customer journey, why they convert or leave your funnel, and which channels play the biggest role. 

    In short, you get to see why customers convert so you can learn how to convert more of them.

    Personalise the customer experience

    According to a McKinsey study, customers demand personalisation, and brands that excel at it generate 40% more revenue. Deliver the personalisation they desire and reap the benefits with cross-channel analytics. 

    When you understand the customer journey in detail, it becomes much easier to personalise your website and marketing efforts to their preferences and behaviours.

    Identify your most effective marketing channels

    Cross-channel marketing helps you understand your marketing efforts to see how every channel impacts conversions. 

    Take a look at the screenshot from Matomo below. Cross-channel analytics lets you get incredibly granular — we can see the number of conversions of organic search drives and the performance of individual search engines. 

    A Matomo screenshot showing channel attribution

    This makes it easy to identify your most effective marketing channels and allocate your resources appropriately. It also allows you to ask (and answer) which channels are the most effective.

    Try Matomo for Free

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

    No credit card required

    Attribute conversions accurately 

    An attribution model decides how you assign credit for each customer conversion to different touchpoints on the customer journey. Without a cross-channel analytics solution, you’re stuck using a standard attribution model like first or last click. 

    These models will show you how customers first found your brand or which channel finally convinced them to convert, but it doesn’t help you understand the role all your channels played in the conversion. 

    Cross-channel analytics solves this attribution problem. Rather than attributing a conversion to the touchpoint that directly led to the sale, cross-channel data gives you the real picture and allows you to use multi-touch attribution to understand which touchpoints generate the most revenue.

    How to set up cross-channel analytics

    Now that you know what cross-channel analytics is and why you should use it, here’s how to set up your solution. 

    1. Determine your objectives

    Defining your marketing goals will help you build a more relevant and actionable cross-channel analytics solution. 

    If you want to improve marketing attribution, for example, you can choose a platform with that feature built-in. If you care about personalisation, you could choose a platform with A/B testing capabilities to measure the impact of your personalisation efforts. 

    1. Set relevant KPIs

    You’ll want to track relevant KPIs to measure the marketing effectiveness of each channel. Put top-of-the-funnel metrics aside and focus on conversion metrics

    These include :

    • Conversion rate
    • Average visit duration
    • Bounce rate
    1. Implement tracking and analytics tools

    Gathering customer data from every channel and centralising it in a single location is one of the biggest challenges of cross-channel analytics. Still, it’s made easier with the right tracking tool or analytics platform. 

    The trick is to choose a platform that lets you measure as many of your channels as possible in a single platform. With Matomo, for example, you can track search, paid search, social and email campaigns and your website analytics.

    1. Set up a multi-touch attribution model

    Now that you have all of your data in one place, you can set up a multi-touch attribution model that lets you understand the extent to which each marketing channel contributes to your overall success. 

    There are several attribution models to choose from, including :

    Image of six different attribution models

    Each model has benefits and drawbacks, so choosing the right model for your organisation can be tricky. Rather than take a wild guess, evaluate each model against your marketing objectives, sales length cycle and data availability.

    For example, if you want to focus on optimising customer acquisition costs, a model that prioritises earlier touchpoints will be better. If you care about conversions, you might try a time decay model. 

    1. Turn data into insights with reports

    One of the big benefits of choosing a tool like Matomo, which consolidates data in one place, is that it significantly speeds up and simplifies reporting.

    When all the data is stored in one platform, you don’t need to spend hours combing through your social media platforms and copying and pasting analytics data into a spreadsheet. It’s all there and ready for you to run reports.

    Try Matomo for Free

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

    No credit card required

    1. Take action

    There’s no point implementing a cross-channel analytics system if you aren’t going to take action. 

    But where should you start ?

    Optimising your budgets and prioritising marketing spend is a great starting point. Use your cross-channel insights to find your most effective marketing channels (they’re the ones that convert the most customers or have the highest ROI) and allocate more of your budget to them. 

    You can also optimise the channels that aren’t pulling their weight if social media is letting you down ; for example, experiment with tactics like social commerce that could drive more conversions. Alternatively, you could choose to stop investing entirely in these channels.

    Cross-channel analytics best practices

    If you already have a cross-channel analytics solution, take things to the next level with the following best practices. 

    Use a centralised solution to track everything

    Centralising your data in one analytics tool can streamline your marketing efforts and help you stay on top of your data. It won’t just save you from tabbing between different browsers or copying and pasting everything into a spreadsheet, but it can also make it easier to create reports. 

    Think about consumer privacy 

    If you are looking at a new cross-channel analytics tool, consider how it accounts for data privacy regulations in your area. 

    You’re going to be collecting a lot of data, so it’s important to respect their privacy wishes. 

    It’s best to choose a platform like Matomo that complies with the strictest privacy laws (CCPA, GDPR, etc.).

    Monitor data in real time

    So, you’ve got a holistic view of your marketing efforts by integrating all your channels into a single tool ?

    Great, now go further by monitoring the impact of your marketing efforts in real time.

    A screenshot of Matomo's real-time visitor log

    With a web analytics platform like Matomo, you can see who visits your site, what they do, and where they come from through features like the visits log report, which even lets you view individual user sessions. This lets you measure the impact of posting on a particular social channel or launching a new offer. 

    Try Matomo for Free

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

    No credit card required

    Reallocate marketing budgets based on performance

    When you track every channel, you can use a multi-touch attribution model like position-based or time-decay to give every channel the credit it deserves. But don’t just credit each channel ; turn your valuable insights into action. 

    Use cross-channel attribution analytics data to reallocate your marketing budget to the most profitable channels or spend time optimising the channels that aren’t pulling their weight. 

    Cross-channel analytics platforms to get started with 

    The marketing analytics market is huge. Mordor Intelligence valued it at $6.31 billion in 2024 and expects it to reach $11.54 billion by 2029. Many of these platforms offer cross-channel analytics, but few can track the impact of multiple marketing channels in one place. 

    So, rather than force you to trawl through confusing product pages, we’ve shortlisted three of the best cross-channel analytics solutions. 

    Matomo

    Screenshot example of the Matomo dashboard

    Matomo is a web analytics platform that lets you collect and centralise your marketing data while giving you 100% accurate data. That includes search, social, e-commerce, campaign tracking data and comprehensive website analytics.

    Better still, you get the necessary tools to turn those insights into action. Custom reporting lets you track and visualise the metrics that matter, while conversion optimisation tools like built-in A/B testing, heatmaps, session recordings and more let you test your theories. 

    Google Analytics

    A screenshot of Google Analytics 4 UI

    Google Analytics is the most popular and widely used tool on the market. The level of analysis and customisation you can do with it is impressive for a free tool. That includes tracking just about any event and creating reports from scratch. 

    Google Analytics provides some cross-channel marketing features and lets you track the impact of various channels, such as social and search, but there are a couple of drawbacks. 

    Privacy can be a concern because Google Analytics collects data from your customers for its own remarketing purposes. 

    It also uses data sampling to generate wider insights from a small subset of your data. This lack of accurate data reporting can cause you to generate false insights.

    With Google Analytics, you’ll also need to subscribe to additional tools to gain advanced insights into the user experience. So, consider that while this tool is free, you’ll need to pay for heatmaps, session recording and A/B testing tools to optimise effectively.

    Improvado

    A screenshot of Improvado's homepage

    Improvado is an analytics tool for sales and marketing teams that extracts thousands of metrics from hundreds of sources. It centralises data in data warehouses, from which you can create a range of marketing dashboards.

    While Improvado does have analytics capabilities, it is primarily an ETL (extraction, transform, load) tool for organisations that want to centralise all their data. That means marketers who aren’t familiar with data transformations may struggle to get their heads around the complexity of the platform.

    Make the most of cross-channel analytics with Matomo

    Cross-channel analytics is the only way to get a comprehensive view of your customer journey and understand how your channels work together to drive conversions.

    Then you’re dealing with so many channels and data ; keeping things as simple as possible is the key to success. That’s why over 1 million websites choose Matomo. 

    Our all-in-one analytics solution measures traditional web analytics, behavioural analytics, attribution and SEO, so you have 100% accurate data in one place. 

    Try it free for 21 days. No credit card required.

  • ffmpeg failed to load audio file

    14 avril 2024, par Vaishnav Ghenge
    Failed to load audio: ffmpeg version 5.1.4-0+deb12u1 Copyright (c) Failed to load audio: ffmpeg version 5.1.4-0+deb12u1 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14)
  configuration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
/tmp/tmpjlchcpdm.wav: Invalid data found when processing input


    


    backend :

    


    
@app.route("/transcribe", methods=["POST"])
def transcribe():
    # Check if audio file is present in the request
    if 'audio_file' not in request.files:
        return jsonify({"error": "No file part"}), 400
    
    audio_file = request.files.get('audio_file')

    # Check if audio_file is sent in files
    if not audio_file:
        return jsonify({"error": "`audio_file` is missing in request.files"}), 400

    # Check if the file is present
    if audio_file.filename == '':
        return jsonify({"error": "No selected file"}), 400

    # Save the file with a unique name
    filename = secure_filename(audio_file.filename)
    unique_filename = os.path.join("uploads", str(uuid.uuid4()) + '_' + filename)
    # audio_file.save(unique_filename)
    
    # Read the contents of the audio file
    contents = audio_file.read()

    max_file_size = 500 * 1024 * 1024
    if len(contents) > max_file_size:
        return jsonify({"error": "File is too large"}), 400

    # Check if the file extension suggests it's a WAV file
    if not filename.lower().endswith('.wav'):
        # Delete the file if it's not a WAV file
        os.remove(unique_filename)
        return jsonify({"error": "Only WAV files are supported"}), 400

    print(f"\033[92m{filename}\033[0m")

    # Call Celery task asynchronously
    result = transcribe_audio.delay(contents)

    return jsonify({
        "task_id": result.id,
        "status": "pending"
    })


@celery_app.task
def transcribe_audio(contents):
    # Transcribe the audio
    try:
        # Create a temporary file to save the audio data
        with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as temp_audio:
            temp_path = temp_audio.name
            temp_audio.write(contents)

            print(f"\033[92mFile temporary path: {temp_path}\033[0m")
            transcribe_start_time = time.time()

            # Transcribe the audio
            transcription = transcribe_with_whisper(temp_path)
            
            transcribe_end_time = time.time()
            print(f"\033[92mTranscripted text: {transcription}\033[0m")

            return transcription, transcribe_end_time - transcribe_start_time

    except Exception as e:
        print(f"\033[92mError: {e}\033[0m")
        return str(e)


    


    frontend :

    


        useEffect(() => {
        const init = () => {
            navigator.mediaDevices.getUserMedia({audio: true})
                .then((audioStream) => {
                    const recorder = new MediaRecorder(audioStream);

                    recorder.ondataavailable = e => {
                        if (e.data.size > 0) {
                            setChunks(prevChunks => [...prevChunks, e.data]);
                        }
                    };

                    recorder.onerror = (e) => {
                        console.log("error: ", e);
                    }

                    recorder.onstart = () => {
                        console.log("started");
                    }

                    recorder.start();

                    setStream(audioStream);
                    setRecorder(recorder);
                });
        }

        init();

        return () => {
            if (recorder && recorder.state === 'recording') {
                recorder.stop();
            }

            if (stream) {
                stream.getTracks().forEach(track => track.stop());
            }
        }
    }, []);

    useEffect(() => {
        // Send chunks of audio data to the backend at regular intervals
        const intervalId = setInterval(() => {
            if (recorder && recorder.state === 'recording') {
                recorder.requestData(); // Trigger data available event
            }
        }, 8000); // Adjust the interval as needed


        return () => {
            if (intervalId) {
                console.log("Interval cleared");
                clearInterval(intervalId);
            }
        };
    }, [recorder]);

    useEffect(() => {
        const processAudio = async () => {
            if (chunks.length > 0) {
                // Send the latest chunk to the server for transcription
                const latestChunk = chunks[chunks.length - 1];

                const audioBlob = new Blob([latestChunk]);
                convertBlobToAudioFile(audioBlob);
            }
        };

        void processAudio();
    }, [chunks]);

    const convertBlobToAudioFile = useCallback((blob: Blob) => {
        // Convert Blob to audio file (e.g., WAV)
        // This conversion may require using a third-party library or service
        // For example, you can use the MediaRecorder API to record audio in WAV format directly
        // Alternatively, you can use a library like recorderjs to perform the conversion
        // Here's a simplified example using recorderjs:

        const reader = new FileReader();
        reader.onload = () => {
            const audioBuffer = reader.result; // ArrayBuffer containing audio data

            // Send audioBuffer to Flask server or perform further processing
            sendAudioToFlask(audioBuffer as ArrayBuffer);
        };

        reader.readAsArrayBuffer(blob);
    }, []);

    const sendAudioToFlask = useCallback((audioBuffer: ArrayBuffer) => {
        const formData = new FormData();
        formData.append('audio_file', new Blob([audioBuffer]), `speech_audio.wav`);

        console.log(formData.get("audio_file"));

        fetch('http://34.87.75.138:8000/transcribe', {
            method: 'POST',
            body: formData
        })
            .then(response => response.json())
            .then((data: { task_id: string, status: string }) => {
                pendingTaskIdsRef.current.push(data.task_id);
            })
            .catch(error => {
                console.error('Error sending audio to Flask server:', error);
            });
    }, []);


    


    I was trying to pass the audio from frontend to whisper model which is in flask app

    


  • How to transcode to another video parameters ? [on hold]

    23 mai 2014, par user3668381

    Google, man pages and any docs I found didn t shown anything relevant so...

    I want to be able to concatene video with ffmpeg, this part is simple, but fail (freeze or massive frame dropping) if the videos don t have the same properties.

    But for now, I didn t found anything else but trying to set a lot of options, expecting to get the good properties... But when they aren t rounded down (or up), you just can t set them (tbr, tbn...).

    So my question is, is there any hidden option in ffmpeg to take the properties of another video (so -copy won t work) as the properties of the transcode.

    Illustration :

    This is the video from which I wan t to copy the parameters :

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'cdr.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       creation_time   : 2013-07-04 11:04:27
       encoder         : Lavf54.11.100
     Duration: 00:06:26.96, start: 0.000000, bitrate: 804 kb/s
       Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 854x480 [SAR 1280:1281 DAR 16:9], 753 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc (default)
       Metadata:
         creation_time   : 2013-07-04 11:04:27
         handler_name    : VideoHandler
       Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 44 kb/s (default)
       Metadata:
         creation_time   : 2013-07-04 11:04:27
         handler_name    : SoundHandler
    At least one output file must be specified

    For now, my command is ffmpeg -i video.mp4 -c:v h264 -c:a libfdk_aac -aspect 16:9 -b:v 753k -b:a 44k output.mp4

    But it turn out that output.mp4 reveal :

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf55.21.100
     Duration: 00:00:07.11, start: 0.046440, bitrate: 685 kb/s
       Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 854x480 [SAR 1280:1281 DAR 16:9], 637 kb/s, 15 fps, 15 tbr, 15360 tbn, 30 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 45 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    At least one output file must be specified

    As we can see, audio bitrate is rounded, tbn is off the chart, general bitrate isn t the same and on and on and on...

    Is there any better way but to add options again and again and hope that nothing will be rounded ? Something like ffmpeg -i video.mp4 -use_properties_of model.mp4 output.mp4 ?