Recherche avancée

Médias (0)

Mot : - Tags -/albums

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

Autres articles (50)

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

  • Script d’installation automatique de MediaSPIP

    25 avril 2011, par

    Afin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
    Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
    La documentation de l’utilisation du script d’installation (...)

  • Encodage et transformation en formats lisibles sur Internet

    10 avril 2011

    MediaSPIP transforme et ré-encode les documents mis en ligne afin de les rendre lisibles sur Internet et automatiquement utilisables sans intervention du créateur de contenu.
    Les vidéos sont automatiquement encodées dans les formats supportés par HTML5 : MP4, Ogv et WebM. La version "MP4" est également utilisée pour le lecteur flash de secours nécessaire aux anciens navigateurs.
    Les documents audios sont également ré-encodés dans les deux formats utilisables par HTML5 :MP3 et Ogg. La version "MP3" (...)

Sur d’autres sites (7003)

  • CRO Testing : The 6-Steps for Maximising Conversion Rates

    10 mars 2024, par Erin

    It’s a nightmare every marketing manager faces. Traffic is soaring after you’ve launched new digital marketing campaigns, but conversions have barely moved.

    Sound familiar ?

    The good news is you’re not alone — loads of marketing managers struggle to get potential customers to purchase. The better news is that you can test dozens of strategies to turn around your site’s fortunes. 

    Conversion rate optimisation testing (CRO testing for short) is the name for this kind of experimentation — and it can send conversion rates and revenue soaring.

    In this article, we’ll explain CRO testing and how you can start doing it today using Matomo. 

    What is CRO Testing ? 

    CRO testing is optimising your site’s conversion funnel using a series of experiments designed to improve conversion rates.

    A CRO test can take several forms, but it usually involves changing one or more elements of your landing page. It looks something like this :

    1. You hypothesise what you expect to happen.
    2. You then run an A/B test using a dedicated CRO platform or tool.
    3. This tool will divide your site’s traffic, sending one segment to one variation and the other segment to another.
    4. The CRO tool will measure conversions, track statistical significance, and declare one variation the winner. 

    A CRO tool isn’t the only software you can use to gather data when running tests. There are several other valuable data sources, including :

    • A web analytics platform : to identify issues with your website
    • User surveys : to find out what your target audience thinks about your site
    • Heatmaps : to learn where users focus their attention
    • Session recordings : to discover how visitors browse your site

    Use as many of these features, tools, and methods as you can when brainstorming hypotheses and measuring results. After all, your CRO test is only as good as your data.

    On that note, we need to mention the importance of data accuracy when researching issues with your website and running CRO tests. If you trust a platform like Google Analytics that uses data sampling (where only a subset of data is analysed), then there’s a risk you make business decisions based on inaccurate reports.

    In practice, that could see you overestimate the effectiveness of a landing page, potentially wasting thousands in ad spend on poorly converting pages. 

    That’s why over a million websites rely on Matomo as their web analytics solution—it doesn’t sample data, providing 100% accurate website traffic insights you can trust to make informed decisions.

    Try Matomo for Free

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

    No credit card required

    Types of CRO Testing 

    There are three core types of CRO tests :

    A/B testing

    A/B testing, or split testing, is when you test two versions of the same page against each other. Usually, the two pages have only one difference, such as a new headline or a different CTA. 

    An A/B test setup in Matomo

    In the test above, for example, we test what happens if we remove one of the affiliate links from a page. We hypothesise that conversions won’t change because these links aren’t effective.

    A/B/n testing

    A/B/n testing is when you test multiple variations of the same element on the same page. 

    Rather than just testing one headline against another, for example, you test multiple different headlines at once.

    A screenshot of A/B test results run using Matomo

    In the test above in Matomo, we’re testing a website’s original header against a wider and smaller version. It turns out the wider header converts significantly better. 

    Multivariate testing

    In a multivariate CRO test, you test multiple different elements at the same time. That could mean testing combining a different headline, CTA button, and image. 

    Multivariate testing can save time because you test multiple elements at once and find the best combination of elements. But you’ll usually need a lot of traffic to find a statistically significant result.

    Why is CRO testing important ?

    Who doesn’t want more conversions, right ? Improving your conversion rate is the core benefit of running a CRO test, but there are a couple of other reasons you should do it, too :

    Why Is CRO Testing Important?

    Improve conversion rates

    How well does your website convert visitors ? The average conversion rate of a typical website is 2.35%, but better-performing websites have significantly higher conversion rates. The top 25% of websites across all industries convert at a rate of 5.31% or higher.

    CRO testing is the best way to improve your site’s conversion rate by tweaking elements of your website and implementing the best results. And because it’s based on data, not your intuition, you’re likely to identify changes that move the needle. 

    Optimise the user experience

    CRO tests are also a great way to improve your site’s user experience. The process of CRO testing forces you to understand how users navigate your website using heatmaps and session recordings and fix the issues they face. 

    You could simplify your form fields to make them easier to fill in, for example, or make your pages easier to navigate. In both cases, your actions will also increase conversion rates.

    Decrease acquisition costs

    Improving your conversion rate using CRO testing will usually mean a decrease in customer acquisition costs and other conversion metrics

    After all, if the cost of your PPC ads stays the same but you convert more traffic, then each new customer will cost less to acquire.

    How to do CRO testing in 6 steps 

    Ready to get your hands dirty ? Follow these six steps to set up your first CRO test :

    Have a clear goal

    Don’t jump straight into testing. You need to be clear about what you want to achieve ; otherwise, you risk wasting time on irrelevant experiments. 

    If you’re unsure what to focus on, look back through your web analytics data and other tools like heatmaps, form analytics, and session recordings to get a feel for some of your site’s biggest conversion roadblocks. 

    Maybe there’s a page with a much lower conversion rate, for example — or a form that most users fail to complete. 

    If it’s the former, then your goal could be to increase the conversion rate of this specific landing page by 25%, bringing it in line with your site’s average. 

    The Goals dashboard in Matomo

    Make sure your new conversion goal is set up properly in your website analytics platform, too. This will ensure you’re tracking conversions accurately. 

    Set a hypothesis

    Now you’ve got a goal, it’s time to create a hypothesis. Based on your available research, a hypothesis is an assumption you make about your conversion rate optimisation test.

    A heatmap of your poorly converting landing page may show that users aren’t focusing on your CTA button because it’s hidden below the fold. 

    You could hypothesise that by placing the CTA button directly under your headline above the fold, your conversion rate should increase. 

    Whatever your goal, you can use the following template to write a hypothesis :

    If we [make this specific change], then [this specific outcome] will occur because [reason].

    Design your test elements

    Most marketing managers won’t be able to run CRO tests independently. A team of talented experts must create the assets you need for a successful experimentation. This includes designers, copywriters, and web developers. 

    Don’t just have them create one new element at a time. Accelerate the process by having your team create dozens of designs simultaneously. That way, you can run a new CRO test as soon as your current test has finished. 

    Create and launch the test

    It’s time to launch your test. Use a CRO tool to automate building your test and tracking results. 

    With Matomo’s A/B Testing feature, it’s as easy as giving your test a name, writing a hypothesis and description, and uploading the URLs of your page variants.

    How to create a new A/B test in Matomo

    Matomo handles everything else, giving you a detailed breakdown at the end of the test with the winning variant. 

    Try Matomo for Free

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

    No credit card required

    Analyse the results

    You can only review the results of your CRO test once it has reached statistical significance — which means the observed outcome isn’t the result of chance.

    In the same way you wouldn’t say a die is unbiased after three rolls, you need thousands of visitors to see your landing pages and take action before deciding which is better. 

    Luckily, most CRO testing platforms, including Matomo, will highlight when a test reaches statistical significance. That means you only need to look at the result to see if your hypothesis is correct. 

    Implement and repeat

    Was your test a success ? Great, you can implement the results and test a new element. 

    Yep, that’s right. There’s no time to rest on your laurels. Continuous CRO testing is necessary to squeeze every conversion possible from your website. Just like fashion trends, website effectiveness changes over time. What works today might not work tomorrow, making ongoing CRO testing beneficial and necessary.

    That’s why it’s a good idea to choose a CRO testing platform like Matomo with no data limits.

    Try Matomo for Free

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

    No credit card required

    CRO testing examples you can run today 

    There’s no shortage of CRO tests you can run. Here are some experiments to get started with :

    Change your CTA design and copy

    Calls to action (CTAs) are the best elements to optimise during your first CRO test. You can change many things about them ; even the smallest optimisation can have a huge impact. 

    Just take a look at the image below to see how diverse your CTAs could be :

    A range of different CTA buttons

    Changing your CTA’s copy is a great place to start, especially if you have generic instructions like “Apply Now.”

    Try a more specific instruction like “Download your free trial” or “Buy now to get 30% off.” Or test benefit-led instructions like “Reduce your ad spend today” or “Take back control of your data.”

    Changing the colour of your CTAs can also yield more conversions. Bright colours are always a good bet. Just make sure your button stands out from the rest of your page. 

    Move the CTA button placement

    The placement of your CTA can be just as important as its copy or colour. If it’s down at the bottom of your page, there’s a good chance most of your visitors will miss it. 

    Try moving it above the fold to see if that makes a difference. Then, test multiple CTA buttons as opposed to just one. 

    Heatmaps and session recordings can identify whether this test is worthwhile. If users rarely focus on your CTA or just don’t scroll far enough to find it, then it’s a good bet you could see an uptick in conversions by moving it. 

    Try different headlines

    Your website’s headlines are another great place to start CRO testing. These are usually the first (and sometimes only) things visitors read, so optimising them as much as possible makes sense. 

    There are entire books written about creating persuasive headlines, but start with one of the following tactics :

    • Include a benefit
      • “Achieve radiant skin—discover the secret !”
    • Add numbers
      • “3 foolproof methods for saving money on your next vacation”
    • Using negative words instead of positive ones
      • “Avoid these 7 mistakes to unlock your potential for personal growth”
    • Shortening or lengthening your headline
      • Shortened : “Crush your fitness goals : Expert tips for success”
      • Lengthened : “Embark on your fitness journey : Learn from experts with proven tips to crush your wellness goals”

    Add more trust signals

    Adding trust signals to your website, such as brand logos, customer reviews, and security badges, can increase your conversion rate.

    We use it at Matomo by adding the logos of well-known clients like the United Nations and Amnesty International underneath our CTAs.

    Trust signals on the Matomo website

    It’s incredibly effective, too. Research by Edelman finds that trust is among the top three most important buying decision factors, above brand likeability.

    Start CRO testing with Matomo

    CRO testing is a data-backed method to improve your site’s conversion rate, making it more user-friendly and decreasing customer acquisition costs. Even a small improvement will be worth the cost of the tools and your time. 

    Fortunately, there’s no need to allocate hundreds of dollars monthly for multiple specialised testing tools. With Matomo, you get a comprehensive platform offering web analytics, user behaviour insights, and CRO testing – all conveniently bundled into one solution. Matomo’s pricing starts from just $19 per month, making it accessible to businesses of all sizes.

    Plus, rest assured knowing that you are GDPR compliant and the data provided is 100% accurate, ethically empowering you to make informed decisions with confidence.

    Take the first step on your CRO testing journey by trying Matomo free for 21 days ; no credit card required.

  • Linear Attribution Model : What Is It and How Does It Work ?

    16 février 2024, par Erin

    Want a more in-depth way to understand the effectiveness of your marketing campaigns ? Then, the linear attribution model could be the answer.

    Although you can choose from several different attribution models, a linear model is ideal for giving value to every touchpoint along the customer journey. It can help you identify your most effective marketing channels and optimise your campaigns. 

    So, without further ado, let’s explore what a linear attribution model is, when you should use it and how you can get started. 

    What is a linear attribution model ?

    A linear attribution model is a multi-touch method of marketing attribution where equal credit is given to each touchpoint. Every marketing channel used across the entire customer journey gets credit, and each is considered equally important. 

    So, if a potential customer has four interactions before converting, each channel gets 25% of the credit.

    The linear attribution model shares credit equally between each touchpoint

    Let’s look at how linear attribution works in practice using a hypothetical example of a marketing manager, Sally, who is looking for an alternative to Google Analytics. 

    Sally starts her conversion path by reading a Matomo article comparing Matomo to Google Analytics she finds when searching on Google. A few days later she signs up for a webinar she saw on Matomo’s LinkedIn page. Two weeks later, Sally gets a sign-off from her boss and decides to go ahead with Matomo. She visits the website and starts a free trial by clicking on one of the paid Google Ads. 

    Using a linear attribution model, we credit each of the channels Sally uses (organic traffic, organic social, and paid ads), ensuring no channel is overlooked in our marketing analysis. 

    Are there other types of attribution models ?

    Absolutely. There are several common types of attribution models marketing managers can use to measure the impact of channels in different ways. 

    Pros & Cons of Different Marketing Attribution Models
    • First interaction : Also called a first-touch attribution model, this method gives all the credit to the first channel in the customer journey. This model is great for optimising the top of your sales funnel.
    • Last interaction : Also called a last-touch attribution model, this approach gives all the credit to the last channel the customer interacts with. It’s a great model for optimising the bottom of your marketing funnel. 
    • Last non-direct interaction : This attribution model excludes direct traffic and credits the previous touchpoint. This is a fantastic alternative to a last-touch attribution model, especially if most customers visit your website before converting. 
    • Time decay attribution model : This model adjusts credit according to the order of the touchpoints. Those nearest the conversion get weighted the highest. 
    • Position-based attribution model : This model allocates 40% of the credit to the first and last touchpoints and splits the remaining 20% evenly between every other interaction.

    Why use a linear attribution model ?

    Marketing attribution is vital if you want to understand which parts of your marketing strategy are working. All of the attribution models described above can help you achieve this to some degree, but there are several reasons to choose a linear attribution model in particular. 

    It uses multi-touch attribution

    Unlike single-touch attribution models like first and last interaction, linear attribution is a multi-touch attribution model that considers every touchpoint. This is vital to get a complete picture of the modern customer journey, where customers interact with companies between 20 and 500 times

    Single-touch attribution models can be misleading by giving conversion credit to a single channel, especially if it was the customer’s last use. In our example above, Sally’s last interaction with our brand was through a paid ad, but it was hardly the most important. 

    It’s easy to understand

    Attribution models can be complicated, but linear attribution is easy to understand. Every touchpoint gets the same credit, allowing you to see how your entire marketing function works. This simplicity also makes it easy for marketers to take action. 

    It’s great for identifying effective marketing channels

    Because linear attribution is one of the few models that provides a complete view of the customer journey, it’s easy to identify your most common and influential touchpoints. 

    It accounts for the top and bottom of your funnel, so you can also categorise your marketing channels more effectively and make more informed decisions. For example, PPC ads may be a more common bottom-of-the-full touchpoint and should, therefore, not be used to target broad, top-of-funnel search terms.

    Are there any reasons not to use linear attribution ?

    Linear attribution isn’t perfect. Like all attribution models, it has its weaknesses. Specifically, linear attribution can be too simple, dilute conversion credit and unsuitable for long sales cycles.

    What are the reasons not to use linear attribution

    It can be too simple

    Linear attribution lacks nuance. It only considers touchpoints while ignoring other factors like brand image and your competitors. This is true for most attribution models, but it’s still important to point it out. 

    It can dilute conversion credit

    In reality, not every touchpoint impacts conversions to the same extent. In the example above, the social media post promoting the webinar may have been the most effective touchpoint, but we have no way of measuring this. 

    The risk with using a linear model is that credit can be underestimated and overestimated — especially if you have a long sales cycle. 

    It’s unsuitable for very long sales cycles

    Speaking of long sales cycles, linear attribution models won’t add much value if your customer journey contains dozens of different touchpoints. Credit will get diluted to the point where analysis becomes impossible, and the model will also struggle to measure the precise ways certain touchpoints impact conversions. 

    Should you use a linear attribution model ?

    A linear attribution model is a great choice for any company with shorter sales cycles or a reasonably straightforward customer journey that uses multiple marketing channels. In these cases, it helps you understand the contribution of each touchpoint and find your best channels. 

    It’s also a practical choice for small businesses and startups that don’t have a team of data scientists on staff or the budget to hire outside help. Because it’s so easy to set up and understand, anyone can start generating insights using this model. 

    How to set up a linear attribution model

    Are you sold on the idea of using a linear attribution model ? Then follow the steps below to get started :

    Set up marketing attribution in four steps

    Choose a marketing attribution tool

    Given the market is worth $3.1 billion, you won’t be surprised to learn there are plenty of tools to choose from. But choose carefully. The tool you pick can significantly impact your success with attribution modelling. 

    Take Google Analytics, for instance. While GA4 offers several marketing attribution models for free, including linear attribution, it lacks accuracy due to cookie consent rejection and data sampling. 

    Accurate marketing attribution is included as a feature in Matomo Cloud and is available as a plugin for Matomo On-Premise users. We support a full range of attribution models that use 100% accurate data because we don’t use data sampling, and cookie consent isn’t an issue (with the exception of Germany and the UK). That means you can trust our insights.

    Matomo’s marketing attribution is available out of the box, and we also provide access to raw data, allowing you to develop your custom attribution model. 

    Collect data

    The quality of your marketing attribution also depends on the quality and quantity of your data. It’s why you need to avoid a platform that uses data sampling. 

    This should include :

    • General data from your analytics platform, like pages visited and forms filled
    • Goals and conversions, which we’ll discuss in more detail in the next step
    • Campaign tracking data so you can monitor the behaviour of traffic from different referral channels
    • Behavioural data from features like Heatmaps or Session Recordings

    Set up goals and conversions

    You can’t assign conversion values to customer journey touchpoints if you don’t have conversion goals in place. That’s why the next step of the process is to set up conversion tracking in your web analytics platform. 

    Depending on your type of business and the product you sell, conversions could take one of the following forms :

    • A product purchase
    • Signing up for a webinar
    • Downloading an ebook
    • Filling in a form
    • Starting a free trial

    Setting up these kinds of goals is easy if you use Matomo. 

    Just head to the Goals section of the dashboard, click Manage Goals and then click the green Add A New Goal button. 

    Fill in the screen below, and add a Goal Revenue at the bottom of the page. Doing so will mean Matomo can automatically calculate the value of each touchpoint when using your attribution model. 

    A screenshot of Matomo's conversion dashboard

    If your analytics platform allows it, make sure you also set up Event Tracking, which will allow you to analyse how many users start to take a desired action (like filling in a form) but never complete the task. 

    Try Matomo for Free

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

    No credit card required

    Test and validate

    As we’ve explained, linear attribution is a great model in some scenarios, but it can fall short if you have a long or complex sales funnel. Even if you’re sure it’s the right model for your company, testing and validating is important. 

    Ideally, your chosen attribution tool should make this process pretty straightforward. For example, Matomo’s Marketing Attribution feature makes comparing and contrasting three different attribution models easy. 

    Here we compare the performance of three attribution models—linear, first-touch, and last-non-direct—in Matomo’s Marketing Attribution dashboard, providing straightforward analysis.

    If you think linear attribution accurately reflects the value of your channels, you can start to analyse the insights it generates. If not, then consider using another attribution model.

    Don’t forget to take action from your marketing efforts, either. Linear attribution helps you spot the channels that contribute most to conversions, so allocate more resources to those channels and see if you can improve your conversion rate or boost your ROI. 

    Make the most of marketing attribution with Matomo

    A linear attribution model lets you measure every touchpoint in your customer journey. It’s an easy attribution model to start with and lets you identify and optimise your most effective marketing channels. 

    However, accurate data is essential if you want to benefit the most from marketing attribution data. If your web analytics solution doesn’t play nicely with cookies or uses sampled data, then your linear model isn’t going to tell you the whole story. 

    That’s why over 1 million sites trust Matomo’s privacy-focused web analytics, ensuring accurate data for a comprehensive understanding of customer journeys.

    Now you know what linear attribution modelling is, start employing the model today by signing up for a free 21-day trial, no credit card required. 

  • ffmpeg GRAY16 stream over network

    28 novembre 2023, par Norbert P.

    Im working in a school project where we need to use depth cameras. The camera produces color and depth (in other words 16bit grayscale image). We decided to use ffmpeg, as later on compression could be very useful. For now we got some basic stream running form one PC to other. These settings include :

    


      

    • rtmp
    • 


    • flv as container
    • 


    • pixel format AV_PIX_FMT_YUV420P
    • 


    • codec AV_CODEC_ID_H264
    • 


    


    The problem we are having is with grayscale image. Not every codec is able to cope with this format, so as not every protocol able to work with given codec. I got some settings "working" but receiver side is just stuck on avformat_open_input() method.
I have also tested it with commandline where ffmpeg is listening for connection and same happens.

    


    I include a minimum "working" example of client code. Server can be tested with "ffmpeg.exe -f apng -listen 1 -i rtmp ://localhost:9999/stream/stream1 -c copy -f apng -listen 1 rtmp ://localhost:2222/live/l" or code below. I get no warnings, ffmpeg is newest version installed with "vcpkg install —triplet x64-windows ffmpeg[ffmpeg,ffprobe,zlib]" on windows or packet manager on linux.

    


    The question : Did I miss something ? How do I get it to work ? If you have any better ideas I would very gladly consider them. In the end I need 16 bits of lossless transmission, could be split between channels etc. which I also tried with same effect.

    


    Client code that would have camera and connect to server :

    


    extern "C" {&#xA;#include <libavutil></libavutil>opt.h>&#xA;#include <libavcodec></libavcodec>avcodec.h>&#xA;#include <libavutil></libavutil>channel_layout.h>&#xA;#include <libavutil></libavutil>common.h>&#xA;#include <libavformat></libavformat>avformat.h>&#xA;#include <libavcodec></libavcodec>avcodec.h>&#xA;#include <libavutil></libavutil>imgutils.h>&#xA;}&#xA;&#xA;int main() {&#xA;&#xA;    std::string container = "apng";&#xA;    AVCodecID codec_id = AV_CODEC_ID_APNG;&#xA;    AVPixelFormat pixFormat = AV_PIX_FMT_GRAY16BE;&#xA;&#xA;    AVFormatContext* format_ctx;&#xA;    AVCodec* out_codec;&#xA;    AVStream* out_stream;&#xA;    AVCodecContext* out_codec_ctx;&#xA;    AVFrame* frame;&#xA;    uint8_t* data;&#xA;&#xA;    std::string server = "rtmp://localhost:9999/stream/stream1";&#xA;&#xA;    int width = 1280, height = 720, fps = 30, bitrate = 1000000;&#xA;&#xA;    //initialize format context for output with flv and no filename&#xA;    avformat_alloc_output_context2(&amp;format_ctx, nullptr, container.c_str(), server.c_str());&#xA;    if (!format_ctx) {&#xA;        return 1;&#xA;    }&#xA;&#xA;    //AVIOContext for accessing the resource indicated by url&#xA;    if (!(format_ctx->oformat->flags &amp; AVFMT_NOFILE)) {&#xA;        int avopen_ret = avio_open(&amp;format_ctx->pb, server.c_str(),&#xA;            AVIO_FLAG_WRITE);// , nullptr, nullptr);&#xA;        if (avopen_ret &lt; 0) {&#xA;            fprintf(stderr, "failed to open stream output context, stream will not work\n");&#xA;            return 1;&#xA;        }&#xA;    }&#xA;&#xA;&#xA;    const AVCodec* tmp_out_codec = avcodec_find_encoder(codec_id);&#xA;    //const AVCodec* tmp_out_codec = avcodec_find_encoder_by_name("hevc");&#xA;    out_codec = const_cast(tmp_out_codec);&#xA;    if (!(out_codec)) {&#xA;        fprintf(stderr, "Could not find encoder for &#x27;%s&#x27;\n",&#xA;            avcodec_get_name(codec_id));&#xA;&#xA;        return 1;&#xA;    }&#xA;&#xA;    out_stream = avformat_new_stream(format_ctx, out_codec);&#xA;    if (!out_stream) {&#xA;        fprintf(stderr, "Could not allocate stream\n");&#xA;        return 1;&#xA;    }&#xA;&#xA;    out_codec_ctx = avcodec_alloc_context3(out_codec);&#xA;&#xA;    const AVRational timebase = { 60000, fps };&#xA;    const AVRational dst_fps = { fps, 1 };&#xA;    av_log_set_level(AV_LOG_VERBOSE);&#xA;    //codec_ctx->codec_tag = 0;&#xA;    //codec_ctx->codec_id = codec_id;&#xA;    out_codec_ctx->codec_type = AVMEDIA_TYPE_VIDEO;&#xA;    out_codec_ctx->width = width;&#xA;    out_codec_ctx->height = height;&#xA;    out_codec_ctx->gop_size = 1;&#xA;    out_codec_ctx->time_base = timebase;&#xA;    out_codec_ctx->pix_fmt = pixFormat;&#xA;    out_codec_ctx->framerate = dst_fps;&#xA;    out_codec_ctx->time_base = av_inv_q(dst_fps);&#xA;    out_codec_ctx->bit_rate = bitrate;&#xA;    //if (fctx->oformat->flags &amp; AVFMT_GLOBALHEADER)&#xA;    //{&#xA;    //    codec_ctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;&#xA;    //}&#xA;&#xA;    out_stream->time_base = out_codec_ctx->time_base; //will be set afterwards by avformat_write_header to 1/1000&#xA;&#xA;    int ret = avcodec_parameters_from_context(out_stream->codecpar, out_codec_ctx);&#xA;    if (ret &lt; 0)&#xA;    {&#xA;        fprintf(stderr, "Could not initialize stream codec parameters!\n");&#xA;        return 1;&#xA;    }&#xA;&#xA;    AVDictionary* codec_options = nullptr;&#xA;    av_dict_set(&amp;codec_options, "tune", "zerolatency", 0);&#xA;&#xA;    // open video encoder&#xA;    ret = avcodec_open2(out_codec_ctx, out_codec, &amp;codec_options);&#xA;    if (ret &lt; 0)&#xA;    {&#xA;        fprintf(stderr, "Could not open video encoder!\n");&#xA;        return 1;&#xA;    }&#xA;    av_dict_free(&amp;codec_options);&#xA;&#xA;    out_stream->codecpar->extradata_size = out_codec_ctx->extradata_size;&#xA;    out_stream->codecpar->extradata = static_cast(av_mallocz(out_codec_ctx->extradata_size));&#xA;    memcpy(out_stream->codecpar->extradata, out_codec_ctx->extradata, out_codec_ctx->extradata_size);&#xA;&#xA;    av_dump_format(format_ctx, 0, server.c_str(), 1);&#xA;&#xA;    frame = av_frame_alloc();&#xA;&#xA;    int sz = av_image_get_buffer_size(pixFormat, width, height, 32);&#xA;#ifdef _WIN32&#xA;    data = (uint8_t*)_aligned_malloc(sz, 32);&#xA;    if (data == NULL)&#xA;        return ENOMEM;&#xA;#else&#xA;    ret = posix_memalign(reinterpret_cast(&amp;data), 32, sz);&#xA;#endif&#xA;    av_image_fill_arrays(frame->data, frame->linesize, data, pixFormat, width, height, 32);&#xA;    frame->format = pixFormat;&#xA;    frame->width = width;&#xA;    frame->height = height;&#xA;    frame->pts = 1;&#xA;    if (avformat_write_header(format_ctx, nullptr) &lt; 0) //Header making problems!!!&#xA;    {&#xA;        fprintf(stderr, "Could not write header!\n");&#xA;        return 1;&#xA;    }&#xA;&#xA;    printf("stream time base = %d / %d \n", out_stream->time_base.num, out_stream->time_base.den);&#xA;&#xA;    double inv_stream_timebase = (double)out_stream->time_base.den / (double)out_stream->time_base.num;&#xA;    printf("Init OK\n");&#xA;    /*  Init phase end*/&#xA;    int dts = 0;&#xA;    int frameNo = 0;&#xA;&#xA;    while (true) {&#xA;        //Fill dummy frame with something&#xA;        for (int y = 0; y &lt; height; y&#x2B;&#x2B;) {&#xA;            uint16_t color = ((y &#x2B; frameNo) * 256) % (256 * 256);&#xA;            for (int x = 0; x &lt; width; x&#x2B;&#x2B;) {&#xA;                data[x&#x2B;y*width] = color;&#xA;            }&#xA;        }&#xA;&#xA;        memcpy(frame->data[0], data, 1280 * 720 * sizeof(uint16_t));&#xA;        AVPacket* pkt = av_packet_alloc();&#xA;&#xA;        int ret = avcodec_send_frame(out_codec_ctx, frame);&#xA;        if (ret &lt; 0)&#xA;        {&#xA;            fprintf(stderr, "Error sending frame to codec context!\n");&#xA;            return ret;&#xA;        }&#xA;        while (ret >= 0) {&#xA;            ret = avcodec_receive_packet(out_codec_ctx, pkt);&#xA;            if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)&#xA;                break;&#xA;            else if (ret &lt; 0) {&#xA;                fprintf(stderr, "Error during encoding\n");&#xA;                break;&#xA;            }&#xA;            pkt->dts = dts;&#xA;            pkt->pts = dts;&#xA;            dts &#x2B;= 33;&#xA;            av_write_frame(format_ctx, pkt);&#xA;            frameNo&#x2B;&#x2B;;&#xA;            av_packet_unref(pkt);&#xA;        }&#xA;        printf("Streamed %d frames\n", frameNo);&#xA;    }&#xA;    return 0;&#xA;}&#xA;

    &#xA;

    And part of server that should receive. code where is stops and waits

    &#xA;

    extern "C" {&#xA;#include <libavcodec></libavcodec>avcodec.h>&#xA;#include <libavformat></libavformat>avformat.h>&#xA;#include <libavformat></libavformat>avio.h>&#xA;}&#xA;&#xA;int main() {&#xA;    AVFormatContext* fmt_ctx = NULL;&#xA;    av_log_set_level(AV_LOG_VERBOSE);&#xA;    AVDictionary* options = nullptr;&#xA;    av_dict_set(&amp;options, "protocol_whitelist", "file,udp,rtp,tcp,rtmp,rtsp,hls", 0);&#xA;    av_dict_set(&amp;options, "timeout", "500000", 0); // Timeout in microseconds &#xA;&#xA;//Next Line hangs   &#xA;    int ret = avformat_open_input(&amp;fmt_ctx, "rtmp://localhost:9999/stream/stream1", NULL, &amp;options);&#xA;    if (ret != 0) {&#xA;        fprintf(stderr, "Could not open RTMP stream\n");&#xA;        return -1;&#xA;    }&#xA;&#xA;    // Find the first video stream&#xA;    ret = avformat_find_stream_info(fmt_ctx, nullptr);&#xA;    if (ret &lt; 0) {&#xA;        return ret;&#xA;    }&#xA;    //...&#xA;} &#xA;&#xA;

    &#xA;

    Edit :&#xA;I tried to just create a animated png and tried to stream that from the console to another console window to avoid any programming mistakes on my side. It was the same, I just could not get 16 PNG encoded stream to work. I hung trying to receive and closed when the file ended with in total zero frames received.

    &#xA;

    I managed to get other thing working :&#xA;To not encode gray frames with YUV420, I installed ffmpeg with libx264 support (was thinking is the same as H264, which in code is, but it adds support to new pixel formats). Used H264 again but with GRAY8 with doubled image width and reconstructing the image on the other side.

    &#xA;

    Maybe as a side note, I could not get any other formats to work. Is "flv" the only option here ? Could I get more performance if I changed it to... what ?

    &#xA;