Recherche avancée

Médias (0)

Mot : - Tags -/upload

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

Autres articles (95)

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

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

Sur d’autres sites (7604)

  • How to Measure Marketing Effectiveness : A Step-by-Step Guide

    22 février 2024, par Erin

    Are you struggling to prove that your marketing efforts are having a measurable impact on your company’s performance ? We get it. 

    You would think that digital marketing would make it easier to track the effectiveness of your marketing efforts. But in many ways, it’s harder than ever. With so many channels and strategies competing against each other, it can feel impossible to pin down the campaign that caused a conversion. 

    That leaves you in a tricky spot as a marketing manager. It can be hard to know which campaigns to persevere with and harder still to prove your worth to stakeholders. 

    Thankfully, there are several strategies you can use to measure the success of your campaigns and put a value on your efforts. So, if you want to learn how you can measure the effectiveness of your marketing, improve the ROI of your efforts and prove your value as an employee, read on. 

    What is marketing effectiveness ?

    Marketing effectiveness measures how successful a marketing strategy or campaign is and the extent to which it achieves goals and business objectives.

    What Is Marketing Effectiveness

    It’s a growing concern for brands, with research showing that 61.2% say measuring marketing effectiveness has become a more prominent factor in decision-making over the last three years. In other words, it’s becoming critical for marketers to know how to measure their effectiveness. 

    But it’s getting harder to do so. A combination of factors, including channel fragmentation, increasingly convoluted customer journeys, and the deprecation of third-party cookies, makes it hard for marketing teams to measure marketing performance. 

    Why you need to measure marketing effectiveness

    Imagine ploughing thousands of dollars into a campaign and not being confident that your efforts bore fruit. It’s unthinkable, right ? If you care about optimising campaigns and improving your worth as a marketer, measuring marketing effectiveness is necessary. 

    Why you need to measure marketing effectiveness

    Optimise marketing campaigns

    Do you know how effectively each campaign generates conversions and drives revenue ? No ? Then, you need to measure marketing effectiveness.

    Doing so could also shine a light on ways to improve your campaigns. One paid ad campaign may suffer from a poor return on ad spend caused by high CPCs. Targeting less competitive keywords could dramatically reduce your costs. 

    Improve ROI

    Today, marketing budgets make up almost 10% of a company’s total revenue, up from 6.4% in 2021. With so much revenue at stake, you’ve got to deliver a return on that investment. 

    Measuring marketing effectiveness can help you identify the campaigns or strategies delivering the highest ROI so you can invest more heavily into them. On the other side of the same coin, you can use the data to strike off any campaigns that aren’t pulling their weight — increasing your ROI even further. 

    Demonstrate value

    Let’s get selfish for a second. Whether you’re an in-house marketing manager or work for an agency, the security of your paycheck depends on your ability to deliver high-ROI campaigns. 

    Measuring your marketing effectiveness lets you showcase your value to your company and clients. It helps you build stronger relationships that can lead to bigger and better opportunities in the future. 

    We should take this opportunity to point out that a good tool for measuring marketing effectiveness is equally important. You probably think Google Analytics will do the job, right ? But when you start implementing the strategies we discuss below, there’s a good chance you’ll have data quality issues. 

    That was the case for full-service marketing agency MHP/Team SI, which found Google Analytics’ data sampling severely limited the quantity and quality of insights they could collect. It was only by switching to Matomo, a platform that doesn’t use data sampling, that the agency could deliver the insights its clients needed to grow. 

    Further reading :

    Try Matomo for Free

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

    No credit card required

    How to measure marketing effectiveness

    Measuring marketing effectiveness is not always easy, especially if you have long buying cycles and a lack of good-quality data. Make things as easy as possible by following the steps below :

    Know what success looks like

    You can’t tell whether your campaigns are effective if you don’t know what you are trying to achieve. That’s why the first step in measuring marketing effectiveness is to set a clear goal. 

    So, ask yourself what success looks like for each campaign you launch. 

    Remember, a campaign doesn’t have to drive leads to be considered effective. If all you wanted to do was raise brand awareness or increase organic traffic, you could achieve both goals without recording a single conversion. 

    We’d wager that’s probably not true for most marketing managers. It’s much more likely you want to achieve something like the following :

    • Generating 100 new customers
    • Increasing revenue by 20%
    • Selling $5,000 of your new product line
    • Reducing customer churn by 50%
    • Achieving a return on ad spend of 150%

    Conventional goal-setting wisdom applies here. So, ensure your goals are measurable, timely, relevant and achievable. 

    Track conversions

    Setting up conversion tracking in your web analytics platform is vital to measuring marketing effectiveness accurately. 

    What you count as a conversion event will depend on the goals you’ve set above. It doesn’t have to be a sale, mind you. Downloading an ebook or signing up for a webinar are worthy conversion goals, especially if you know they increase the chances of a customer converting. 

    A screenshot of the Matomo goals dashboard

    Whichever platform you choose, ensure it can meet your current and future needs. This is one of the reasons open-source content management system Concrete CMS opted for Matomo when choosing a new website analytics platform. The flexibility of the Matomo platform gave Concrete CMS the adaptability it needed for future growth. 

    Try Matomo for Free

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

    No credit card required

    Decide on an attribution model

    Marketing attribution is a way of measuring the impact of different channels and touchpoints across the customer journey. If you can assign a value to each conversion, you can use a marketing attribution model to quantify the value of your channels and campaigns.

    While most web analytics platforms simply credit the last touchpoint, marketing attribution offers a more comprehensive view by considering all interactions along the customer journey. This distinction is important because relying solely on the last touchpoint can lead to skewed insights and misallocation of resources and budget. 

    By adopting a marketing attribution approach, you can make more informed decisions, optimizing your campaigns and maximizing your return on investment.

    Pros and cons of different marketing attribution models.

    There are several different attribution models you can use to give credit to your various campaigns. These include :

    • First interaction : Gives all the credit to the first channel in the customer journey.
    • Last interaction : Gives all the credit to the last channel in the customer journey.
    • Last non-direct attribution : Gives all credit to the final touchpoint in the customer journey, except for direct interactions. In those cases, credit is given to the touchpoint just before the direct one.
    • Linear attribution : Distributes credit equally across all touchpoints.
    • Position-based attribution : Attributes 40% credit to the first and last touchpoints and distributes the remaining 20% evenly across all other touchpoints. 

    Consider carefully which attribution model to use, as this can significantly impact your marketing effectiveness calculation by giving certain campaigns too much credit.

    Try Matomo for Free

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

    No credit card required

    Analyse KPIs

    Tracking KPIs is essential if you want to quantify the impact of your marketing campaigns. But which metrics should you track ?

    To improve brand awareness or traffic, so-called vanity metrics like sessions, returning visitors, and organic traffic may suffice as KPIs. 

    However, that’s not going to be the case for most marketers, whose performance is tied to revenue and ROI. If that’s you, put vanity metrics to one side and focus on the following conversion metrics instead :

    • Conversion rate : the percentage of users who complete a desired action. 
    • Return on ad spend : the revenue earned for every dollar spent on a campaign.
    • Return on investment : a broader calculation than ROAS, typically calculated across all your marketing efforts. 
    • Customer lifetime value : the total amount a customer will spend throughout their relationship with your company.
    • Customer acquisition cost : the cost to acquire each customer on average.
    A screenshot of a conversion report in Matomo

    Your analytics platform and advertising tools should track most of these KPIs by default. Matomo, for instance, automatically calculates your conversion rate in the Goals report

    How to present your marketing effectiveness

    Calculating your marketing effectiveness is one thing, but it’s important to share this information with stakeholders — whether those are executives in your company or your agency’s clients. 

    Follow the steps below to create an insightful and compelling marketing report :

    • Set the scene. There’s no guarantee that the people reading your report will know your goals. So, add context at the start of the reporting by spelling out what you are trying to achieve and why. 
    • Select the right data. You don’t want to overwhelm the reader with facts and figures, but you do need to provide hard evidence of your success. Include the KPIs you used to measure your success and show how these have changed over time. You can also support your report with audience insights such as heatmaps or customer surveys.
    • Tell a story with your presentation. Give your presentation a narrative arc with a beginning, middle, and end. Start with what you want to achieve, describe how you plan to achieve it and end with the results. Support your story with graphs and other visual aids that hold your reader’s attention. 
    • Provide a concise summary. Not everyone will read your presentation cover to cover. With that in mind, provide a summary of your report at the start or end that shows what you achieved and quantifies your marketing effectiveness. 

    How to improve marketing effectiveness

    Don’t settle for simply measuring your marketing effectiveness. Use the following strategies to make future campaigns as effective as possible. 

    Understand customer behaviour

    More effective marketing campaigns start by deeply understanding your customers, who they are, and how they behave. This allows you to take an audience-first approach to your marketing efforts and design campaigns around the unique needs of your customers. 

    Gather as much first-party data as you can. Surveys, focus groups, and other market research techniques can help you learn more about who your customers are, but don’t disregard the quantitative data you can gather from your web analytics platform. 

    Using Heatmaps, Session Recordings and behavioural analytics tools, you can learn exactly how customers behave when they land on your site, where they focus their attention and which pages they look at first. 

    Screenshot of Matomo heatmap feature

    These insights can help you turn an average campaign into an exceptional one. For example, a heatmap may highlight the need to move CTA buttons above the fold to increase conversions. A session recording could pinpoint the problems users have when filling out your website’s forms. 

    Further reading :

    Optimise landing pages

    Developing a culture of testing and experimentation is a great way to improve your marketing effectiveness. Let’s dive into A/B testing.

    By tweaking various elements of your landing pages, you can squeeze every last conversion from your campaigns.

    A screenshot of a Matomo A/B test campaign

    We have a guide on conversion funnel optimisation, which we recommend you check out, but I’ll briefly list some of the optimisations you could test :

    • Making your CTAs actionable and compelling
    • Integrating images and videos
    • Adding testimonials and other forms of social proof
    • Reducing form fields

    Use a different attribution model

    It might be that some campaigns, strategies or traffic sources aren’t getting the love they deserve. By changing your attribution model, you can significantly change the perceived effectiveness of certain campaigns. 

    Let’s say you use a last-touch attribution model, for instance. Only the last channel customers will get credit for each conversion, meaning top-of-the-funnel campaigns like SEO may be deemed less effective than they are. 

    It’s why you must continually test, tweak and validate your chosen model — and why changing it can be so powerful. 

    Measure your marketing effectiveness with Matomo

    Measuring your marketing effectiveness is hard work. But it’s vital to optimise campaigns, improve your ROI and demonstrate your value. 

    The good news is that Matomo makes things a lot easier thanks to its comprehensive conversion tracking, attribution modelling capabilities and behavioural insight features like Heatmaps, A/B Testing and Session Recordings. 

    Take steps today to start measuring (and improving) the effectiveness of your marketing with our 21-day free trial. No credit card required.

  • RTMP server with OpenCV (python)

    12 février 2024, par Overnout

    I'm trying to process an RTMP stream in Python, using OpenCV2 but I'm not able to get OpenCV to capture it (i.e. act as RTMP server).

    


    I can run FFmpeg/FFplay from the command line and receive the stream successfully.
What could cause OpenCV to fail opening the stream in listening mode ?

    


    Here is my code :

    


    import cv2

cap = cv2.VideoCapture("rtmp://0.0.0.0:8000/live", cv2.CAP_FFMPEG)

if not cap.isOpened():
    print("Cannot open video source")
    exit()


    


    And the output :

    


    [tcp @ 00000192c490d640] Connection to tcp://0.0.0.0:8000 failed: Error number -138 occurred
[rtmp @ 00000192c490d580] Cannot open connection tcp://0.0.0.0:8000 
Cannot open video source


    


    edit2 : Output with debug logging turned on :

    


    output of the python script with debug logging on:
[DEBUG:0@0.017] global videoio_registry.cpp:218 cv::`anonymous-namespace'::VideoBackendRegistry::VideoBackendRegistry VIDEOIO: Builtin backends(9): FFMPEG(1000); GSTREAMER(990); INTEL_MFX(980); MSMF(970); DSHOW(960); CV_IMAGES(950); CV_MJPEG(940); UEYE(930); OBSENSOR(920)
[DEBUG:0@0.026] global videoio_registry.cpp:242 cv::`anonymous-namespace'::VideoBackendRegistry::VideoBackendRegistry VIDEOIO: Available backends(9): FFMPEG(1000); GSTREAMER(990); INTEL_MFX(980); MSMF(970); DSHOW(960); CV_IMAGES(950); CV_MJPEG(940); UEYE(930); OBSENSOR(920)
[ INFO:0@0.031] global videoio_registry.cpp:244 cv::`anonymous-namespace'::VideoBackendRegistry::VideoBackendRegistry VIDEOIO: Enabled backends(9, sorted by priority): FFMPEG(1000); GSTREAMER(990); INTEL_MFX(980); MSMF(970); DSHOW(960); CV_IMAGES(950); CV_MJPEG(940); UEYE(930); OBSENSOR(920)
[ WARN:0@0.037] global cap.cpp:132 cv::VideoCapture::open VIDEOIO(FFMPEG): trying capture filename='rtmp://192.168.254.101:8000/live' ...
[ INFO:0@0.040] global backend_plugin.cpp:383 cv::impl::getPluginCandidates Found 2 plugin(s) for FFMPEG
[ INFO:0@0.043] global plugin_loader.impl.hpp:67 cv::plugin::impl::DynamicLib::libraryLoad load C:\Users\me\src\opencv\.venv\Lib\site-packages\cv2\opencv_videoio_ffmpeg490_64.dll => OK
[ INFO:0@0.047] global backend_plugin.cpp:50 cv::impl::PluginBackend::initCaptureAPI Found entry: 'opencv_videoio_capture_plugin_init_v1'
[ INFO:0@0.049] global backend_plugin.cpp:169 cv::impl::PluginBackend::checkCompatibility Video I/O: initialized 'FFmpeg OpenCV Video I/O Capture plugin': built with OpenCV 4.9 (ABI/API = 1/1), current OpenCV version is '4.9.0' (ABI/API = 1/1)
[ INFO:0@0.055] global backend_plugin.cpp:69 cv::impl::PluginBackend::initCaptureAPI Video I/O: plugin is ready to use 'FFmpeg OpenCV Video I/O Capture plugin'
[ INFO:0@0.058] global backend_plugin.cpp:84 cv::impl::PluginBackend::initWriterAPI Found entry: 'opencv_videoio_writer_plugin_init_v1'
[ INFO:0@0.061] global backend_plugin.cpp:169 cv::impl::PluginBackend::checkCompatibility Video I/O: initialized 'FFmpeg OpenCV Video I/O Writer plugin': built with OpenCV 4.9 (ABI/API = 1/1), current OpenCV version is '4.9.0' (ABI/API = 1/1)
[ INFO:0@0.065] global backend_plugin.cpp:103 cv::impl::PluginBackend::initWriterAPI Video I/O: plugin is ready to use 'FFmpeg OpenCV Video I/O Writer plugin'
[tcp @ 00000266b2f0d0c0] Connection to tcp://192.168.254.101:8000 failed: Error number -138 occurred
[rtmp @ 00000266b2f0cfc0] Cannot open connection tcp://192.168.254.101:8000
[ WARN:0@5.630] global cap.cpp:155 cv::VideoCapture::open VIDEOIO(FFMPEG): can't create capture
[DEBUG:0@5.632] global cap.cpp:225 cv::VideoCapture::open VIDEOIO: choosen backend does not work or wrong. Please make sure that your computer support chosen backend and OpenCV built with right flags.
Cannot open video source
[ INFO:1@5.661] global plugin_loader.impl.hpp:74 cv::plugin::impl::DynamicLib::libraryRelease unload C:\Users\me\src\opencv\.venv\Lib\site-packages\cv2\opencv_videoio_ffmpeg490_64.dll


    


    Here is the output of cv2.getBuildInformation()

    


    General configuration for OpenCV 4.9.0 =====================================
  Version control:               4.9.0

  Platform:
    Timestamp:                   2023-12-31T11:21:12Z
    Host:                        Windows 10.0.17763 AMD64
    CMake:                       3.24.2
    CMake generator:             Visual Studio 14 2015
    CMake build tool:            MSBuild.exe
    MSVC:                        1900
    Configuration:               Debug Release

  CPU/HW features:
    Baseline:                    SSE SSE2 SSE3
      requested:                 SSE3
    Dispatched code generation:  SSE4_1 SSE4_2 FP16 AVX AVX2
      requested:                 SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX
      SSE4_1 (16 files):         + SSSE3 SSE4_1
      SSE4_2 (1 files):          + SSSE3 SSE4_1 POPCNT SSE4_2
      FP16 (0 files):            + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX
      AVX (8 files):             + SSSE3 SSE4_1 POPCNT SSE4_2 AVX
      AVX2 (36 files):           + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2

  C/C++:
    Built as dynamic libs?:      NO
    C++ standard:                11
    C++ Compiler:                C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe  (ver 19.0.24247.2)
    C++ flags (Release):         /DWIN32 /D_WINDOWS /W4 /GR  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi  /fp:precise     /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /wd4819 /MP  /O2 /Ob2 /DNDEBUG 
    C++ flags (Debug):           /DWIN32 /D_WINDOWS /W4 /GR  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi  /fp:precise     /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /wd4819 /MP  /Zi /Ob0 /Od /RTC1 
    C Compiler:                  C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
    C flags (Release):           /DWIN32 /D_WINDOWS /W3  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi  /fp:precise     /MP   /O2 /Ob2 /DNDEBUG 
    C flags (Debug):             /DWIN32 /D_WINDOWS /W3  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi  /fp:precise     /MP /Zi /Ob0 /Od /RTC1 
    Linker flags (Release):      /machine:x64  /NODEFAULTLIB:atlthunk.lib /INCREMENTAL:NO  /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:libcpmtd.lib /NODEFAULTLIB:msvcrtd.lib
    Linker flags (Debug):        /machine:x64  /NODEFAULTLIB:atlthunk.lib /debug /INCREMENTAL  /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcpmt.lib /NODEFAULTLIB:msvcrt.lib
    ccache:                      NO
    Precompiled headers:         YES
    Extra dependencies:          wsock32 comctl32 gdi32 ole32 setupapi ws2_32
    3rdparty dependencies:       libprotobuf ade ittnotify libjpeg-turbo libwebp libpng libtiff libopenjp2 IlmImf zlib ippiw ippicv

  OpenCV modules:
    To be built:                 calib3d core dnn features2d flann gapi highgui imgcodecs imgproc ml objdetect photo python3 stitching video videoio
    Disabled:                    java world
    Disabled by dependency:      -
    Unavailable:                 python2 ts
    Applications:                -
    Documentation:               NO
    Non-free algorithms:         NO

  Windows RT support:            NO

  GUI:                           WIN32UI
    Win32 UI:                    YES
    VTK support:                 NO

  Media I/O: 
    ZLib:                        build (ver 1.3)
    JPEG:                        build-libjpeg-turbo (ver 2.1.3-62)
      SIMD Support Request:      YES
      SIMD Support:              NO
    WEBP:                        build (ver encoder: 0x020f)
    PNG:                         build (ver 1.6.37)
    TIFF:                        build (ver 42 - 4.2.0)
    JPEG 2000:                   build (ver 2.5.0)
    OpenEXR:                     build (ver 2.3.0)
    HDR:                         YES
    SUNRASTER:                   YES
    PXM:                         YES
    PFM:                         YES

  Video I/O:
    DC1394:                      NO
    FFMPEG:                      YES (prebuilt binaries)
      avcodec:                   YES (58.134.100)
      avformat:                  YES (58.76.100)
      avutil:                    YES (56.70.100)
      swscale:                   YES (5.9.100)
      avresample:                YES (4.0.0)
    GStreamer:                   NO
    DirectShow:                  YES
    Media Foundation:            YES
      DXVA:                      YES

  Parallel framework:            Concurrency

  Trace:                         YES (with Intel ITT)

  Other third-party libraries:
    Intel IPP:                   2021.11.0 [2021.11.0]
           at:                   D:/a/opencv-python/opencv-python/_skbuild/win-amd64-3.7/cmake-build/3rdparty/ippicv/ippicv_win/icv
    Intel IPP IW:                sources (2021.11.0)
              at:                D:/a/opencv-python/opencv-python/_skbuild/win-amd64-3.7/cmake-build/3rdparty/ippicv/ippicv_win/iw
    Lapack:                      NO
    Eigen:                       NO
    Custom HAL:                  NO
    Protobuf:                    build (3.19.1)
    Flatbuffers:                 builtin/3rdparty (23.5.9)

  OpenCL:                        YES (NVD3D11)
    Include path:                D:/a/opencv-python/opencv-python/opencv/3rdparty/include/opencl/1.2
    Link libraries:              Dynamic load

  Python 3:
    Interpreter:                 C:/hostedtoolcache/windows/Python/3.7.9/x64/python.exe (ver 3.7.9)
    Libraries:                   C:/hostedtoolcache/windows/Python/3.7.9/x64/libs/python37.lib (ver 3.7.9)
    numpy:                       C:/hostedtoolcache/windows/Python/3.7.9/x64/lib/site-packages/numpy/core/include (ver 1.17.0)
    install path:                python/cv2/python-3

  Python (for build):            C:\hostedtoolcache\windows\Python\3.7.9\x64\python.exe

  Java:                          
    ant:                         NO
    Java:                        YES (ver 1.8.0.392)
    JNI:                         C:/hostedtoolcache/windows/Java_Temurin-Hotspot_jdk/8.0.392-8/x64/include C:/hostedtoolcache/windows/Java_Temurin-Hotspot_jdk/8.0.392-8/x64/include/win32 C:/hostedtoolcache/windows/Java_Temurin-Hotspot_jdk/8.0.392-8/x64/include
    Java wrappers:               NO
    Java tests:                  NO

  Install to:                    D:/a/opencv-python/opencv-python/_skbuild/win-amd64-3.7/cmake-install
-----------------------------------------------------------------


    


    edit : Receiving the stream with ffplay from command line :

    


    >ffplay.exe -i "rtmp://0.0.0.0:8000/live"  -listen 1 -f flv
ffplay version 2024-02-04-git-7375a6ca7b-full_build-www.gyan.dev Copyright (c) 2003-2024 the FFmpeg developers
  built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --pkg-config=pkgconf --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      58. 36.101 / 58. 36.101
  libavcodec     60. 38.100 / 60. 38.100
  libavformat    60. 20.100 / 60. 20.100
  libavdevice    60.  4.100 / 60.  4.100
  libavfilter     9. 17.100 /  9. 17.100
  libswscale      7.  6.100 /  7.  6.100
  libswresample   4. 13.100 /  4. 13.100
  libpostproc    57.  4.100 / 57.  4.100
[rtmp @ 0000018a564ed340] Unexpected stream , expecting livef=0/0
    Last message repeated 1 times
Input #0, flv, from 'rtmp://0.0.0.0:8000/live':KB sq=    0B f=0/0
  Metadata:
    fileSize        : 0
    audiochannels   : 2
    2.1             : false
    3.1             : false
    4.0             : false
    4.1             : false
    5.1             : false
    7.1             : false
    encoder         : obs-output module (libobs version 30.0.2)
  Duration: 00:00:00.00, start: 0.000000, bitrate: N/A
  Stream #0:0: Audio: aac (LC), 48000 Hz, stereo, fltp, 163 kb/s
  Stream #0:1: Video: h264 (Constrained Baseline), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 2560 kb/s, 30 fps, 30 tbr, 1k tbn
   7.54 A-V: -0.024 fd=  18 aq=   24KB vq=  498KB sq=    0B f=0/0


    


  • Why does every encoded frame's size increase after I had use to set one frame to be key in intel qsv of ffmpeg

    22 avril 2021, par TONY

    I used intel's qsv to encode h264 video in ffmpeg. My av codec context settings is like as below :

    


     m_ctx->width = m_width;
    m_ctx->height = m_height;
    m_ctx->time_base = { 1, (int)fps };
    m_ctx->qmin = 10;
    m_ctx->qmax = 35;
    m_ctx->gop_size = 3000;
    m_ctx->max_b_frames = 0;
    m_ctx->has_b_frames = false;
    m_ctx->refs = 2;
    m_ctx->slices = 0;
    m_ctx->codec_id = m_encoder->id;
    m_ctx->codec_type = AVMEDIA_TYPE_VIDEO;
    m_ctx->pix_fmt = m_h264InputFormat;
    m_ctx->compression_level = 4;
    m_ctx->flags &= ~AV_CODEC_FLAG_CLOSED_GOP;
    AVDictionary *param = nullptr;
    av_dict_set(&param, "idr_interval", "0", 0);
    av_dict_set(&param, "async_depth", "1", 0);
    av_dict_set(&param, "forced_idr", "1", 0);


    


    and in the encoding, I set the AVFrame to be AV_PICTURE_TYPE_I when key frame is needed :

    


      if(key_frame){
        encodeFrame->pict_type = AV_PICTURE_TYPE_I;
    }else{
        encodeFrame->pict_type = AV_PICTURE_TYPE_NONE;
    }
    avcodec_send_frame(m_ctx, encodeFrame);
    avcodec_receive_packet(m_ctx, m_packet);
   std::cerr<<"packet size is "<size<<",is key frame "<code>

    


    The strange phenomenon is that if I had set one frame to AV_PICTURE_TYPE_I, then every encoded frame's size after the key frame would increase. If I change the h264 encoder to x264, then it's ok.

    


    The packet size is as below before I call "encodeFrame->pict_type = AV_PICTURE_TYPE_I" :

    


    packet size is 26839
packet size is 2766
packet size is 2794
packet size is 2193
packet size is 1820
packet size is 2542
packet size is 2024
packet size is 1692
packet size is 2095
packet size is 2550
packet size is 1685
packet size is 1800
packet size is 2276
packet size is 1813
packet size is 2206
packet size is 2745
packet size is 2334
packet size is 2623
packet size is 2055


    


    If I call "encodeFrame->pict_type = AV_PICTURE_TYPE_I", then the packet size is as below :

    


    packet size is 23720,is key frame 1
packet size is 23771,is key frame 0
packet size is 23738,is key frame 0
packet size is 23752,is key frame 0
packet size is 23771,is key frame 0
packet size is 23763,is key frame 0
packet size is 23715,is key frame 0
packet size is 23686,is key frame 0
packet size is 23829,is key frame 0
packet size is 23774,is key frame 0
packet size is 23850,is key frame 0