Recherche avancée

Médias (1)

Mot : - Tags -/remix

Autres articles (60)

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

  • Dépôt de média et thèmes par FTP

    31 mai 2013, par

    L’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
    Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...)

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

Sur d’autres sites (10347)

  • How to Choose the Optimal Multi-Touch Attribution Model for Your Organisation

    13 mars 2023, par Erin — Analytics Tips

    If you struggle to connect the dots on your customer journeys, you are researching the correct solution. 

    Multi-channel attribution models allow you to better understand the users’ paths to conversion and identify key channels and marketing assets that assist them.

    That said, each attribution model has inherent limitations, which make the selection process even harder.

    This guide explains how to choose the optimal multi-touch attribution model. We cover the pros and cons of popular attribution models, main evaluation criteria and how-to instructions for model implementation. 

    Pros and Cons of Different Attribution Models 

    Types of Attribution Models

    First Interaction 

    First Interaction attribution model (also known as first touch) assigns full credit to the conversion to the first channel, which brought in a lead. However, it doesn’t report other interactions the visitor had before converting.

    Marketers, who are primarily focused on demand generation and user acquisition, find the first touch attribution model useful to evaluate and optimise top-of-the-funnel (ToFU). 

    Pros 

    • Reflects the start of the customer journey
    • Shows channels that bring in the best-qualified leads 
    • Helps track brand awareness campaigns

    Cons 

    • Ignores the impact of later interactions at the middle and bottom of the funnel 
    • Doesn’t provide a full picture of users’ decision-making process 

    Last Interaction 

    Last Interaction attribution model (also known as last touch) shifts the entire credit allocation to the last channel before conversion. But it doesn’t account for the contribution of all other channels. 

    If your focus is conversion optimization, the last-touch model helps you determine which channels, assets or campaigns seal the deal for the prospect. 

    Pros 

    • Reports bottom-of-the-funnel events
    • Requires minimal data and configurations 
    • Helps estimate cost-per-lead or cost-per-acquisition

    Cons 

    • No visibility into assisted conversions and prior visitor interactions 
    • Overemphasise the importance of the last channel (which can often be direct traffic) 

    Last Non-Direct Interaction 

    Last Non-Direct attribution excludes direct traffic from the calculation and assigns the full conversion credit to the preceding channel. For example, a paid ad will receive 100% of credit for conversion if a visitor goes directly to your website to buy a product. 

    Last Non-Direct attribution provides greater clarity into the bottom-of-the-funnel (BoFU). events. Yet, it still under-reports the role other channels played in conversion. 

    Pros 

    • Improved channel visibility, compared to Last-Touch 
    • Avoids over-valuing direct visits
    • Reports on lead-generation efforts

    Cons 

    • Doesn’t work for account-based marketing (ABM) 
    • Devalues the quality over quantity of leads 

    Linear Model

    Linear attribution model assigns equal credit for a conversion to all tracked touchpoints, regardless of their impact on the visitor’s decision to convert.

    It helps you understand the full conversion path. But this model doesn’t distinguish between the importance of lead generation activities versus nurturing touches.

    Pros 

    • Focuses on all touch points associated with a conversion 
    • Reflects more steps in the customer journey 
    • Helps analyse longer sales cycles

    Cons 

    • Doesn’t accurately reflect the varying roles of each touchpoint 
    • Can dilute the credit if too many touchpoints are involved 

    Time Decay Model 

    Time decay models assumes that the closer a touchpoint is to the conversion, the greater its influence. Pre-conversion touchpoints get the highest credit, while the first ones are ranked lower (5%-5%-10%-15%-25%-30%).

    This model better reflects real-life customer journeys. However, it devalues the impact of brand awareness and demand-generation campaigns. 

    Pros 

    • Helps track longer sales cycles and reports on each touchpoint involved 
    • Allows customising the half-life of decay to improve reporting 
    • Promotes conversion optimization at BoFu stages

    Cons 

    • Can prompt marketers to curtail ToFU spending, which would translate to fewer qualified leads at lower stages
    • Doesn’t reflect highly-influential events at earlier stages (e.g., a product demo request or free account registration, which didn’t immediately lead to conversion)

    Position-Based Model 

    Position-Based attribution model (also known as the U-shaped model) allocates the biggest credit to the first and the last interaction (40% each). Then distributes the remaining 20% across other touches. 

    For many marketers, that’s the preferred multi-touch attribution model as it allows optimising both ToFU and BoFU channels. 

    Pros 

    • Helps establish the main channels for lead generation and conversion
    • Adds extra layers of visibility, compared to first- and last-touch attribution models 
    • Promotes budget allocation toward the most strategic touchpoints

    Cons 

    • Diminishes the importance of lead nurturing activities as more credit gets assigned to demand-gen and conversion-generation channels
    • Limited flexibility since it always assigns a fixed amount of credit to the first and last touchpoints, and the remaining credit is divided evenly among the other touchpoints

    How to Choose the Right Multi-Touch Attribution Model For Your Business 

    If you’re deciding which attribution model is best for your business, prepare for a heated discussion. Each one has its trade-offs as it emphasises or devalues the role of different channels and marketing activities.

    To reach a consensus, the best strategy is to evaluate each model against three criteria : Your marketing objectives, sales cycle length and data availability. 

    Marketing Objectives 

    Businesses generate revenue in many ways : Through direct sales, subscriptions, referral fees, licensing agreements, one-off or retainer services. Or any combination of these activities. 

    In each case, your marketing strategy will look different. For example, SaaS and direct-to-consumer (DTC) eCommerce brands have to maximise both demand generation and conversion rates. In contrast, a B2B cybersecurity consulting firm is more interested in attracting qualified leads (as opposed to any type of traffic) and progressively nurturing them towards a big-ticket purchase. 

    When selecting a multi-touch attribution model, prioritise your objectives first. Create a simple scoreboard, where your team ranks various channels and campaign types you rely on to close sales. 

    Alternatively, you can survey your customers to learn how they first heard about your company and what eventually triggered their conversion. Having data from both sides can help you cross-validate your assumptions and eliminate some biases. 

    Then consider which model would best reflect the role and importance of different channels in your sales cycle. Speaking of which….

    Sales Cycle Length 

    As shoppers, we spend less time deciding on a new toothpaste brand versus contemplating a new IT system purchase. Factors like industry, business model (B2C, DTC, B2B, B2BC), and deal size determine the average cycle length in your industry. 

    Statistically, low-ticket B2C sales can happen within just several interactions. The average B2B decision-making process can have over 15 steps, spread over several months. 

    That’s why not all multi-touch attribution models work equally well for each business. Time-decay suits better B2B companies, while B2C usually go for position-based or linear attribution. 

    Data Availability 

    Businesses struggle with multi-touch attribution model implementation due to incomplete analytics data. 

    Our web analytics tool captures more data than Google Analytics. That’s because we rely on a privacy-focused tracking mechanism, which allows you to collect analytics without showing a cookie consent banner in markets outside of Germany and the UK. 

    Cookie consent banners are mandatory with Google Analytics. Yet, almost 40% of global consumers reject it. This results in gaps in your analytics and subsequent inconsistencies in multi-touch attribution reports. With Matomo, you can compliantly collect more data for accurate reporting. 

    Some companies also struggle to connect collected insights to individual shoppers. With Matomo, you can cross-attribute users across browning sessions, using our visitors’ tracking feature

    When you already know a user’s identifier (e.g., full name or email address), you can track their on-site behaviours over time to better understand how they interact with your content and complete their purchases. Quick disclaimer, though, visitors’ tracking may not be considered compliant with certain data privacy laws. Please consult with a local authority if you have doubts. 

    How to Implement Multi-Touch Attribution

    Multi-touch attribution modelling implementation is like a “seek and find” game. You have to identify all significant touchpoints in your customers’ journeys. And sometimes also brainstorm new ways to uncover the missing parts. Then figure out the best way to track users’ actions at those stages (aka do conversion and events tracking). 

    Here’s a step-by-step walkthrough to help you get started. 

    Select a Multi-Touch Attribution Tool 

    The global marketing attribution software is worth $3.1 billion. Meaning there are plenty of tools, differing in terms of accuracy, sophistication and price.

    To make the right call prioritise five factors :

    • Available models : Look for a solution that offers multiple options and allows you to experiment with different modelling techniques or develop custom models. 
    • Implementation complexity : Some providers offer advanced data modelling tools for creating custom multi-touch attribution models, but offer few out-of-the-box modelling options. 
    • Accuracy : Check if the shortlisted tool collects the type of data you need. Prioritise providers who are less dependent on third-party cookies and allow you to identify repeat users. 
    • Your marketing stack : Some marketing attribution tools come with useful add-ons such as tag manager, heatmaps, form analytics, user session recordings and A/B testing tools. This means you can collect more data for multi-channel modelling with them instead of investing in extra software. 
    • Compliance : Ensure that the selected multi-attribution analytics software wouldn’t put you at risk of GDPR non-compliance when it comes to user privacy and consent to tracking/analysis. 

    Finally, evaluate the adoption costs. Free multi-channel analytics tools come with data quality and consistency trade-offs. Premium attribution tools may have “hidden” licensing costs and bill you for extra data integrations. 

    Look for a tool that offers a good price-to-value ratio (i.e., one that offers extra perks for a transparent price). 

    Set Up Proper Data Collection 

    Multi-touch attribution requires ample user data. To collect the right type of insights you need to set up : 

    • Website analytics : Ensure that you have all tracking codes installed (and working correctly !) to capture pageviews, on-site actions, referral sources and other data points around what users do on page. 
    • Tags : Add tracking parameters to monitor different referral channels (e.g., “facebook”), campaign types (e.g., ”final-sale”), and creative assets (e.g., “banner-1”). Tags help you get a clearer picture of different touchpoints. 
    • Integrations : To better identify on-site users and track their actions, you can also populate your attribution tool with data from your other tools – CRM system, A/B testing app, etc. 

    Finally, think about the ideal lookback window — a bounded time frame you’ll use to calculate conversions. For example, Matomo has a default windows of 7, 30 or 90 days. But you can configure a custom period to better reflect your average sales cycle. For instance, if you’re selling makeup, a shorter window could yield better results. But if you’re selling CRM software for the manufacturing industry, consider extending it.

    Configure Goals and Events 

    Goals indicate your main marketing objectives — more traffic, conversions and sales. In web analytics tools, you can measure these by tracking specific user behaviours. 

    For example : If your goal is lead generation, you can track :

    • Newsletter sign ups 
    • Product demo requests 
    • Gated content downloads 
    • Free trial account registration 
    • Contact form submission 
    • On-site call bookings 

    In each case, you can set up a unique tag to monitor these types of requests. Then analyse conversion rates — the percentage of users who have successfully completed the action. 

    To collect sufficient data for multi-channel attribution modelling, set up Goal Tracking for different types of touchpoints (MoFU & BoFU) and asset types (contact forms, downloadable assets, etc). 

    Your next task is to figure out how users interact with different on-site assets. That’s when Event Tracking comes in handy. 

    Event Tracking reports notify you about specific actions users take on your website. With Matomo Event Tracking, you can monitor where people click on your website, on which pages they click newsletter subscription links, or when they try to interact with static content elements (e.g., a non-clickable banner). 

    Using in-depth user behavioural reports, you can better understand which assets play a key role in the average customer journey. Using this data, you can localise “leaks” in your sales funnel and fix them to increase conversion rates.

    Test and Validated the Selected Model 

    A common challenge of multi-channel attribution modelling is determining the correct correlation and causality between exposure to touchpoints and purchases. 

    For example, a user who bought a discounted product from a Facebook ad would act differently than someone who purchased a full-priced product via a newsletter link. Their rate of pre- and post-sales exposure will also differ a lot — and your attribution model may not always accurately capture that. 

    That’s why you have to continuously test and tweak the selected model type. The best approach for that is lift analysis. 

    Lift analysis means comparing how your key metrics (e.g., revenue or conversion rates) change among users who were exposed to a certain campaign versus a control group. 

    In the case of multi-touch attribution modelling, you have to monitor how your metrics change after you’ve acted on the model recommendations (e.g., invested more in a well-performing referral channel or tried a new brand awareness Twitter ad). Compare the before and after ROI. If you see a positive dynamic, your model works great. 

    The downside of this approach is that you have to invest a lot upfront. But if your goal is to create a trustworthy attribution model, the best way to validate is to act on its suggestions and then test them against past results. 

    Conclusion

    A multi-touch attribution model helps you measure the impact of different channels, campaign types, and marketing assets on metrics that matter — conversion rate, sales volumes and ROI. 

    Using this data, you can invest budgets into the best-performing channels and confidently experiment with new campaign types. 

    As a Matomo user, you also get to do so without breaching customers’ privacy or compromising on analytics accuracy.

    Start using accurate multi-channel attribution in Matomo. Get your free 21-day trial now. No credit card required.

  • FFMPEG Output File is Empty Nothing was Encoded (for a Picture) ?

    4 mars 2023, par Sarah Szabo

    I have a strange issue effecting one of my programs that does bulk media conversions using ffmpeg from the command line, however this effects me using it directly from the shell as well :

    


    ffmpeg -i INPUT.mkv -ss 0:30 -y -qscale:v 2 -frames:v 1 -f image2 -huffman optimal "OUTPUT.png"
fails every run with the error message :
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)

    


    This only happens with very specific videos, and seemingly no other videos. File type is usually .webm. These files have been downloaded properly (usually from yt-dlp), and I have tried re-downloading them just to verify their integrity.

    


    One such file from a colleague was : https://www.dropbox.com/s/xkucr2z5ra1p2oh/Triggerheart%20Execlica%20OST%20%28Arrange%29%20-%20Crueltear%20Ending.mkv?dl=0

    


    Is there a subtle issue with the command string ?

    


    Notes :

    


    removing -huffman optimal had no effect

    


    moving -ss to before -i had no effect

    


    removing -f image2 had no effect

    


    Full Log :

    


    sarah@MidnightStarSign:~/Music/Playlists/Indexing/Indexing Temp$ ffmpeg -i Triggerheart\ Execlica\ OST\ \(Arrange\)\ -\ Crueltear\ Ending.mkv -ss 0:30 -y -qscale:v 2 -frames:v 1 -f image2 -huffman optimal "TEST.png"
ffmpeg version n5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 12.2.0 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-version3 --enable-vulkan
  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
[matroska,webm @ 0x55927f484740] Could not find codec parameters for stream 2 (Attachment: none): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
Input #0, matroska,webm, from 'Triggerheart Execlica OST (Arrange) - Crueltear Ending.mkv':
  Metadata:
    title           : TriggerHeart Exelica PS2 & 360 Arrange ー 16 - Crueltear Ending
    PURL            : https://www.youtube.com/watch?v=zJ0bEa_8xEg
    COMMENT         : https://www.youtube.com/watch?v=zJ0bEa_8xEg
    ARTIST          : VinnyVynce
    DATE            : 20170905
    ENCODER         : Lavf59.27.100
  Duration: 00:00:30.00, start: -0.007000, bitrate: 430 kb/s
  Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, bt709), 720x720, SAR 1:1 DAR 1:1, 25 fps, 25 tbr, 1k tbn (default)
    Metadata:
      DURATION        : 00:00:29.934000000
  Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
    Metadata:
      DURATION        : 00:00:30.001000000
  Stream #0:2: Attachment: none
    Metadata:
      filename        : cover.webp
      mimetype        : image/webp
Codec AVOption huffman (Huffman table strategy) specified for output file #0 (TEST.png) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
Stream mapping:
  Stream #0:0 -> #0:0 (vp9 (native) -> png (native))
Press [q] to stop, [?] for help
Output #0, image2, to 'TEST.png':
  Metadata:
    title           : TriggerHeart Exelica PS2 & 360 Arrange ー 16 - Crueltear Ending
    PURL            : https://www.youtube.com/watch?v=zJ0bEa_8xEg
    COMMENT         : https://www.youtube.com/watch?v=zJ0bEa_8xEg
    ARTIST          : VinnyVynce
    DATE            : 20170905
    encoder         : Lavf59.27.100
  Stream #0:0(eng): Video: png, rgb24, 720x720 [SAR 1:1 DAR 1:1], q=2-31, 200 kb/s, 25 fps, 25 tbn (default)
    Metadata:
      DURATION        : 00:00:29.934000000
      encoder         : Lavc59.37.100 png
frame=    0 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A speed=   0x    
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)


    


    Manjaro OS System Specs :

    


    System:&#xA;  Kernel: 6.1.12-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 12.2.1&#xA;    parameters: BOOT_IMAGE=/@/boot/vmlinuz-6.1-x86_64&#xA;    root=UUID=f11386cf-342d-47ac-84e6-484b7b2f377d rw rootflags=subvol=@&#xA;    radeon.modeset=1 nvdia-drm.modeset=1 quiet&#xA;    cryptdevice=UUID=059df4b4-5be4-44d6-a23a-de81135eb5b4:luks-disk&#xA;    root=/dev/mapper/luks-disk apparmor=1 security=apparmor&#xA;    resume=/dev/mapper/luks-swap udev.log_priority=3&#xA;  Desktop: KDE Plasma v: 5.26.5 tk: Qt v: 5.15.8 wm: kwin_x11 vt: 1 dm: SDDM&#xA;    Distro: Manjaro Linux base: Arch Linux&#xA;Machine:&#xA;  Type: Desktop Mobo: ASUSTeK model: PRIME X570-PRO v: Rev X.0x&#xA;    serial: <superuser required="required"> UEFI: American Megatrends v: 4408&#xA;    date: 10/27/2022&#xA;Battery:&#xA;  Message: No system battery data found. Is one present?&#xA;Memory:&#xA;  RAM: total: 62.71 GiB used: 27.76 GiB (44.3%)&#xA;  RAM Report: permissions: Unable to run dmidecode. Root privileges required.&#xA;CPU:&#xA;  Info: model: AMD Ryzen 9 5950X bits: 64 type: MT MCP arch: Zen 3&#x2B; gen: 4&#xA;    level: v3 note: check built: 2022 process: TSMC n6 (7nm) family: 0x19 (25)&#xA;    model-id: 0x21 (33) stepping: 0 microcode: 0xA201016&#xA;  Topology: cpus: 1x cores: 16 tpc: 2 threads: 32 smt: enabled cache:&#xA;    L1: 1024 KiB desc: d-16x32 KiB; i-16x32 KiB L2: 8 MiB desc: 16x512 KiB&#xA;    L3: 64 MiB desc: 2x32 MiB&#xA;  Speed (MHz): avg: 4099 high: 4111 min/max: 2200/6358 boost: disabled&#xA;    scaling: driver: acpi-cpufreq governor: schedutil cores: 1: 4099 2: 4095&#xA;    3: 4102 4: 4100 5: 4097 6: 4100 7: 4110 8: 4111 9: 4083 10: 4099 11: 4100&#xA;    12: 4094 13: 4097 14: 4101 15: 4100 16: 4099 17: 4100 18: 4097 19: 4098&#xA;    20: 4095 21: 4100 22: 4099 23: 4099 24: 4105 25: 4098 26: 4100 27: 4100&#xA;    28: 4092 29: 4103 30: 4101 31: 4100 32: 4099 bogomips: 262520&#xA;  Flags: 3dnowprefetch abm adx aes aperfmperf apic arat avic avx avx2 bmi1&#xA;    bmi2 bpext cat_l3 cdp_l3 clflush clflushopt clwb clzero cmov cmp_legacy&#xA;    constant_tsc cpb cpuid cqm cqm_llc cqm_mbm_local cqm_mbm_total&#xA;    cqm_occup_llc cr8_legacy cx16 cx8 de decodeassists erms extapic&#xA;    extd_apicid f16c flushbyasid fma fpu fsgsbase fsrm fxsr fxsr_opt ht&#xA;    hw_pstate ibpb ibrs ibs invpcid irperf lahf_lm lbrv lm mba mca mce&#xA;    misalignsse mmx mmxext monitor movbe msr mtrr mwaitx nonstop_tsc nopl npt&#xA;    nrip_save nx ospke osvw overflow_recov pae pat pausefilter pclmulqdq&#xA;    pdpe1gb perfctr_core perfctr_llc perfctr_nb pfthreshold pge pku pni popcnt&#xA;    pse pse36 rapl rdpid rdpru rdrand rdseed rdt_a rdtscp rep_good sep sha_ni&#xA;    skinit smap smca smep ssbd sse sse2 sse4_1 sse4_2 sse4a ssse3 stibp succor&#xA;    svm svm_lock syscall tce topoext tsc tsc_scale umip v_spec_ctrl&#xA;    v_vmsave_vmload vaes vgif vmcb_clean vme vmmcall vpclmulqdq wbnoinvd wdt&#xA;    x2apic xgetbv1 xsave xsavec xsaveerptr xsaveopt xsaves&#xA;  Vulnerabilities:&#xA;  Type: itlb_multihit status: Not affected&#xA;  Type: l1tf status: Not affected&#xA;  Type: mds status: Not affected&#xA;  Type: meltdown status: Not affected&#xA;  Type: mmio_stale_data status: Not affected&#xA;  Type: retbleed status: Not affected&#xA;  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via&#xA;    prctl&#xA;  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer&#xA;    sanitization&#xA;  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, IBRS_FW,&#xA;    STIBP: always-on, RSB filling, PBRSB-eIBRS: Not affected&#xA;  Type: srbds status: Not affected&#xA;  Type: tsx_async_abort status: Not affected&#xA;Graphics:&#xA;  Device-1: NVIDIA GA104 [GeForce RTX 3070] vendor: ASUSTeK driver: nvidia&#xA;    v: 525.89.02 alternate: nouveau,nvidia_drm non-free: 525.xx&#x2B;&#xA;    status: current (as of 2023-02) arch: Ampere code: GAxxx&#xA;    process: TSMC n7 (7nm) built: 2020-22 pcie: gen: 4 speed: 16 GT/s lanes: 8&#xA;    link-max: lanes: 16 bus-ID: 0b:00.0 chip-ID: 10de:2484 class-ID: 0300&#xA;  Device-2: AMD Cape Verde PRO [Radeon HD 7750/8740 / R7 250E]&#xA;    vendor: VISIONTEK driver: radeon v: kernel alternate: amdgpu arch: GCN-1&#xA;    code: Southern Islands process: TSMC 28nm built: 2011-20 pcie: gen: 3&#xA;    speed: 8 GT/s lanes: 8 link-max: lanes: 16 ports: active: DP-3,DP-4&#xA;    empty: DP-1, DP-2, DP-5, DP-6 bus-ID: 0c:00.0 chip-ID: 1002:683f&#xA;    class-ID: 0300 temp: 54.0 C&#xA;  Device-3: Microdia USB 2.0 Camera type: USB driver: snd-usb-audio,uvcvideo&#xA;    bus-ID: 9-2:3 chip-ID: 0c45:6367 class-ID: 0102 serial: <filter>&#xA;  Display: x11 server: X.Org v: 21.1.7 with: Xwayland v: 22.1.8&#xA;    compositor: kwin_x11 driver: X: loaded: modesetting,nvidia dri: radeonsi&#xA;    gpu: radeon display-ID: :0 screens: 1&#xA;  Screen-1: 0 s-res: 5760x2160 s-dpi: 80 s-size: 1829x686mm (72.01x27.01")&#xA;    s-diag: 1953mm (76.91")&#xA;  Monitor-1: DP-1 pos: 1-2 res: 1920x1080 dpi: 93&#xA;    size: 527x296mm (20.75x11.65") diag: 604mm (23.8") modes: N/A&#xA;  Monitor-2: DP-1-3 pos: 2-1 res: 1920x1080 dpi: 82&#xA;    size: 598x336mm (23.54x13.23") diag: 686mm (27.01") modes: N/A&#xA;  Monitor-3: DP-1-4 pos: 1-1 res: 1920x1080 dpi: 93&#xA;    size: 527x296mm (20.75x11.65") diag: 604mm (23.8") modes: N/A&#xA;  Monitor-4: DP-3 pos: primary,2-2 res: 1920x1080 dpi: 82&#xA;    size: 598x336mm (23.54x13.23") diag: 686mm (27.01") modes: N/A&#xA;  Monitor-5: DP-4 pos: 2-4 res: 1920x1080 dpi: 82&#xA;    size: 598x336mm (23.54x13.23") diag: 686mm (27.01") modes: N/A&#xA;  Monitor-6: HDMI-0 pos: 1-3 res: 1920x1080 dpi: 93&#xA;    size: 527x296mm (20.75x11.65") diag: 604mm (23.8") modes: N/A&#xA;  API: OpenGL v: 4.6.0 NVIDIA 525.89.02 renderer: NVIDIA GeForce RTX&#xA;    3070/PCIe/SSE2 direct-render: Yes&#xA;Audio:&#xA;  Device-1: NVIDIA GA104 High Definition Audio vendor: ASUSTeK&#xA;    driver: snd_hda_intel bus-ID: 5-1:2 v: kernel chip-ID: 30be:1019 pcie:&#xA;    class-ID: 0102 gen: 4 speed: 16 GT/s lanes: 8 link-max: lanes: 16&#xA;    bus-ID: 0b:00.1 chip-ID: 10de:228b class-ID: 0403&#xA;  Device-2: AMD Oland/Hainan/Cape Verde/Pitcairn HDMI Audio [Radeon HD 7000&#xA;    Series] vendor: VISIONTEK driver: snd_hda_intel v: kernel pcie: gen: 3&#xA;    speed: 8 GT/s lanes: 8 link-max: lanes: 16 bus-ID: 0c:00.1&#xA;    chip-ID: 1002:aab0 class-ID: 0403&#xA;  Device-3: AMD Starship/Matisse HD Audio vendor: ASUSTeK&#xA;    driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16&#xA;    bus-ID: 0e:00.4 chip-ID: 1022:1487 class-ID: 0403&#xA;  Device-4: Schiit Audio Unison Universal Dac type: USB driver: snd-usb-audio&#xA;  Device-5: JMTek LLC. Plugable USB Audio Device type: USB&#xA;    driver: hid-generic,snd-usb-audio,usbhid bus-ID: 5-2:3 chip-ID: 0c76:120b&#xA;    class-ID: 0300 serial: <filter>&#xA;  Device-6: ASUSTek ASUS AI Noise-Cancelling Mic Adapter type: USB&#xA;    driver: hid-generic,snd-usb-audio,usbhid bus-ID: 5-4:4 chip-ID: 0b05:194e&#xA;    class-ID: 0300 serial: <filter>&#xA;  Device-7: Microdia USB 2.0 Camera type: USB driver: snd-usb-audio,uvcvideo&#xA;    bus-ID: 9-2:3 chip-ID: 0c45:6367 class-ID: 0102 serial: <filter>&#xA;  Sound API: ALSA v: k6.1.12-1-MANJARO running: yes&#xA;  Sound Interface: sndio v: N/A running: no&#xA;  Sound Server-1: PulseAudio v: 16.1 running: no&#xA;  Sound Server-2: PipeWire v: 0.3.65 running: yes&#xA;Network:&#xA;  Device-1: Intel I211 Gigabit Network vendor: ASUSTeK driver: igb v: kernel&#xA;    pcie: gen: 1 speed: 2.5 GT/s lanes: 1 port: f000 bus-ID: 07:00.0&#xA;    chip-ID: 8086:1539 class-ID: 0200&#xA;  IF: enp7s0 state: up speed: 1000 Mbps duplex: full mac: <filter>&#xA;  IP v4: <filter> type: dynamic noprefixroute scope: global&#xA;    broadcast: <filter>&#xA;  IP v6: <filter> type: noprefixroute scope: link&#xA;  IF-ID-1: docker0 state: down mac: <filter>&#xA;  IP v4: <filter> scope: global broadcast: <filter>&#xA;  WAN IP: <filter>&#xA;Bluetooth:&#xA;  Device-1: Cambridge Silicon Radio Bluetooth Dongle (HCI mode) type: USB&#xA;    driver: btusb v: 0.8 bus-ID: 5-5.3:7 chip-ID: 0a12:0001 class-ID: e001&#xA;  Report: rfkill ID: hci0 rfk-id: 0 state: up address: see --recommends&#xA;Logical:&#xA;  Message: No logical block device data found.&#xA;  Device-1: luks-c847cf9f-c6b5-4624-a25e-4531e318851a maj-min: 254:2&#xA;    type: LUKS dm: dm-2 size: 3.64 TiB&#xA;  Components:&#xA;  p-1: sda1 maj-min: 8:1 size: 3.64 TiB&#xA;  Device-2: luks-swap maj-min: 254:1 type: LUKS dm: dm-1 size: 12 GiB&#xA;  Components:&#xA;  p-1: nvme0n1p2 maj-min: 259:2 size: 12 GiB&#xA;  Device-3: luks-disk maj-min: 254:0 type: LUKS dm: dm-0 size: 919.01 GiB&#xA;  Components:&#xA;  p-1: nvme0n1p3 maj-min: 259:3 size: 919.01 GiB&#xA;RAID:&#xA;  Message: No RAID data found.&#xA;Drives:&#xA;  Local Storage: total: 9.1 TiB used: 2.79 TiB (30.6%)&#xA;  SMART Message: Unable to run smartctl. Root privileges required.&#xA;  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital&#xA;    model: WDS100T3X0C-00SJG0 size: 931.51 GiB block-size: physical: 512 B&#xA;    logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD serial: <filter>&#xA;    rev: 111110WD temp: 53.9 C scheme: GPT&#xA;  ID-2: /dev/nvme1n1 maj-min: 259:4 vendor: Western Digital&#xA;    model: WDS100T2B0C-00PXH0 size: 931.51 GiB block-size: physical: 512 B&#xA;    logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD serial: <filter>&#xA;    rev: 211070WD temp: 46.9 C scheme: GPT&#xA;  ID-3: /dev/sda maj-min: 8:0 vendor: Western Digital&#xA;    model: WD4005FZBX-00K5WB0 size: 3.64 TiB block-size: physical: 4096 B&#xA;    logical: 512 B speed: 6.0 Gb/s type: HDD rpm: 7200 serial: <filter>&#xA;    rev: 1A01 scheme: GPT&#xA;  ID-4: /dev/sdb maj-min: 8:16 vendor: Western Digital&#xA;    model: WD4005FZBX-00K5WB0 size: 3.64 TiB block-size: physical: 4096 B&#xA;    logical: 512 B speed: 6.0 Gb/s type: HDD rpm: 7200 serial: <filter>&#xA;    rev: 1A01 scheme: GPT&#xA;  ID-5: /dev/sdc maj-min: 8:32 type: USB vendor: SanDisk&#xA;    model: Gaming Xbox 360 size: 7.48 GiB block-size: physical: 512 B&#xA;    logical: 512 B type: N/A serial: <filter> rev: 8.02 scheme: MBR&#xA;  SMART Message: Unknown USB bridge. Flash drive/Unsupported enclosure?&#xA;  Message: No optical or floppy data found.&#xA;Partition:&#xA;  ID-1: / raw-size: 919.01 GiB size: 919.01 GiB (100.00%)&#xA;    used: 611.14 GiB (66.5%) fs: btrfs dev: /dev/dm-0 maj-min: 254:0&#xA;    mapped: luks-disk label: N/A uuid: N/A&#xA;  ID-2: /boot/efi raw-size: 512 MiB size: 511 MiB (99.80%)&#xA;    used: 40.2 MiB (7.9%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1 label: EFI&#xA;    uuid: 8922-E04D&#xA;  ID-3: /home raw-size: 919.01 GiB size: 919.01 GiB (100.00%)&#xA;    used: 611.14 GiB (66.5%) fs: btrfs dev: /dev/dm-0 maj-min: 254:0&#xA;    mapped: luks-disk label: N/A uuid: N/A&#xA;  ID-4: /run/media/sarah/ConvergentRefuge raw-size: 3.64 TiB&#xA;    size: 3.64 TiB (100.00%) used: 2.19 TiB (60.1%) fs: btrfs dev: /dev/dm-2&#xA;    maj-min: 254:2 mapped: luks-c847cf9f-c6b5-4624-a25e-4531e318851a&#xA;    label: ConvergentRefuge uuid: 7d295e73-4143-4eb1-9d22-75a06b1d2984&#xA;  ID-5: /run/media/sarah/MSS_EXtended raw-size: 475.51 GiB&#xA;    size: 475.51 GiB (100.00%) used: 1.48 GiB (0.3%) fs: btrfs&#xA;    dev: /dev/nvme1n1p1 maj-min: 259:5 label: MSS EXtended&#xA;    uuid: f98b3a12-e0e4-48c7-91c2-6e3aa6dcd32c&#xA;Swap:&#xA;  Kernel: swappiness: 60 (default) cache-pressure: 100 (default)&#xA;  ID-1: swap-1 type: partition size: 12 GiB used: 6.86 GiB (57.2%)&#xA;    priority: -2 dev: /dev/dm-1 maj-min: 254:1 mapped: luks-swap label: SWAP&#xA;    uuid: c8991364-85a7-4e6c-8380-49cd5bd7a873&#xA;Unmounted:&#xA;  ID-1: /dev/nvme1n1p2 maj-min: 259:6 size: 456 GiB fs: ntfs label: N/A&#xA;    uuid: 5ECA358FCA356485&#xA;  ID-2: /dev/sdb1 maj-min: 8:17 size: 3.64 TiB fs: ntfs&#xA;    label: JerichoVariance uuid: 1AB22D5664889CBD&#xA;  ID-3: /dev/sdc1 maj-min: 8:33 size: 3.57 GiB fs: iso9660&#xA;  ID-4: /dev/sdc2 maj-min: 8:34 size: 4 MiB fs: vfat label: MISO_EFI&#xA;    uuid: 5C67-4BF8&#xA;USB:&#xA;  Hub-1: 1-0:1 info: Hi-speed hub with single TT ports: 4 rev: 2.0&#xA;    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900&#xA;  Hub-2: 1-2:2 info: Hitachi ports: 4 rev: 2.1 speed: 480 Mb/s&#xA;    chip-ID: 045b:0209 class-ID: 0900&#xA;  Device-1: 1-2.4:3 info: Microsoft Xbox One Controller (Firmware 2015)&#xA;    type: <vendor specific="specific"> driver: xpad interfaces: 3 rev: 2.0 speed: 12 Mb/s&#xA;    power: 500mA chip-ID: 045e:02dd class-ID: ff00 serial: <filter>&#xA;  Hub-3: 2-0:1 info: Super-speed hub ports: 4 rev: 3.0 speed: 5 Gb/s&#xA;    chip-ID: 1d6b:0003 class-ID: 0900&#xA;  Hub-4: 2-2:2 info: Hitachi ports: 4 rev: 3.0 speed: 5 Gb/s&#xA;    chip-ID: 045b:0210 class-ID: 0900&#xA;  Hub-5: 3-0:1 info: Hi-speed hub with single TT ports: 1 rev: 2.0&#xA;    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900&#xA;  Hub-6: 3-1:2 info: VIA Labs Hub ports: 4 rev: 2.1 speed: 480 Mb/s&#xA;    power: 100mA chip-ID: 2109:3431 class-ID: 0900&#xA;  Hub-7: 3-1.2:3 info: VIA Labs VL813 Hub ports: 4 rev: 2.1 speed: 480 Mb/s&#xA;    chip-ID: 2109:2813 class-ID: 0900&#xA;  Hub-8: 4-0:1 info: Super-speed hub ports: 4 rev: 3.0 speed: 5 Gb/s&#xA;    chip-ID: 1d6b:0003 class-ID: 0900&#xA;  Hub-9: 4-2:2 info: VIA Labs VL813 Hub ports: 4 rev: 3.0 speed: 5 Gb/s&#xA;    chip-ID: 2109:0813 class-ID: 0900&#xA;  Hub-10: 5-0:1 info: Hi-speed hub with single TT ports: 6 rev: 2.0&#xA;    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900&#xA;  Device-1: 5-1:2 info: Schiit Audio Unison Universal Dac type: Audio&#xA;    driver: snd-usb-audio interfaces: 2 rev: 2.0 speed: 480 Mb/s power: 500mA&#xA;    chip-ID: 30be:1019 class-ID: 0102&#xA;  Device-2: 5-2:3 info: JMTek LLC. Plugable USB Audio Device type: Audio,HID&#xA;    driver: hid-generic,snd-usb-audio,usbhid interfaces: 4 rev: 1.1&#xA;    speed: 12 Mb/s power: 100mA chip-ID: 0c76:120b class-ID: 0300&#xA;    serial: <filter>&#xA;  Device-3: 5-4:4 info: ASUSTek ASUS AI Noise-Cancelling Mic Adapter&#xA;    type: Audio,HID driver: hid-generic,snd-usb-audio,usbhid interfaces: 4&#xA;    rev: 1.1 speed: 12 Mb/s power: 100mA chip-ID: 0b05:194e class-ID: 0300&#xA;    serial: <filter>&#xA;  Hub-11: 5-5:5 info: Genesys Logic Hub ports: 4 rev: 2.0 speed: 480 Mb/s&#xA;    power: 100mA chip-ID: 05e3:0608 class-ID: 0900&#xA;  Device-1: 5-5.3:7 info: Cambridge Silicon Radio Bluetooth Dongle (HCI mode)&#xA;    type: Bluetooth driver: btusb interfaces: 2 rev: 2.0 speed: 12 Mb/s&#xA;    power: 100mA chip-ID: 0a12:0001 class-ID: e001&#xA;  Hub-12: 5-6:6 info: Genesys Logic Hub ports: 4 rev: 2.0 speed: 480 Mb/s&#xA;    power: 100mA chip-ID: 05e3:0608 class-ID: 0900&#xA;  Hub-13: 6-0:1 info: Super-speed hub ports: 4 rev: 3.1 speed: 10 Gb/s&#xA;    chip-ID: 1d6b:0003 class-ID: 0900&#xA;  Hub-14: 7-0:1 info: Hi-speed hub with single TT ports: 6 rev: 2.0&#xA;    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900&#xA;  Device-1: 7-2:2 info: SanDisk Cruzer Micro Flash Drive type: Mass Storage&#xA;    driver: usb-storage interfaces: 1 rev: 2.0 speed: 480 Mb/s power: 200mA&#xA;    chip-ID: 0781:5151 class-ID: 0806 serial: <filter>&#xA;  Device-2: 7-4:3 info: ASUSTek AURA LED Controller type: HID&#xA;    driver: hid-generic,usbhid interfaces: 2 rev: 2.0 speed: 12 Mb/s power: 16mA&#xA;    chip-ID: 0b05:18f3 class-ID: 0300 serial: <filter>&#xA;  Hub-15: 8-0:1 info: Super-speed hub ports: 4 rev: 3.1 speed: 10 Gb/s&#xA;    chip-ID: 1d6b:0003 class-ID: 0900&#xA;  Hub-16: 9-0:1 info: Hi-speed hub with single TT ports: 4 rev: 2.0&#xA;    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900&#xA;  Hub-17: 9-1:2 info: Terminus FE 2.1 7-port Hub ports: 7 rev: 2.0&#xA;    speed: 480 Mb/s power: 100mA chip-ID: 1a40:0201 class-ID: 0900&#xA;  Device-1: 9-1.1:4 info: Sunplus Innovation Gaming mouse [Philips SPK9304]&#xA;    type: Mouse driver: hid-generic,usbhid interfaces: 1 rev: 2.0 speed: 1.5 Mb/s&#xA;    power: 98mA chip-ID: 1bcf:08a0 class-ID: 0301&#xA;  Device-2: 9-1.5:6 info: Microdia Backlit Gaming Keyboard&#xA;    type: Keyboard,Mouse driver: hid-generic,usbhid interfaces: 2 rev: 2.0&#xA;    speed: 12 Mb/s power: 400mA chip-ID: 0c45:652f class-ID: 0301&#xA;  Device-3: 9-1.6:7 info: HUION H420 type: Mouse,HID driver: uclogic,usbhid&#xA;    interfaces: 3 rev: 1.1 speed: 12 Mb/s power: 100mA chip-ID: 256c:006e&#xA;    class-ID: 0300&#xA;  Hub-18: 9-1.7:8 info: Terminus Hub ports: 4 rev: 2.0 speed: 480 Mb/s&#xA;    power: 100mA chip-ID: 1a40:0101 class-ID: 0900&#xA;  Device-1: 9-2:3 info: Microdia USB 2.0 Camera type: Video,Audio&#xA;    driver: snd-usb-audio,uvcvideo interfaces: 4 rev: 2.0 speed: 480 Mb/s&#xA;    power: 500mA chip-ID: 0c45:6367 class-ID: 0102 serial: <filter>&#xA;  Device-2: 9-4:11 info: VKB-Sim &#xA9; Alex Oz 2021 VKBsim Gladiator EVO L&#xA;    type: HID driver: hid-generic,usbhid interfaces: 1 rev: 2.0 speed: 12 Mb/s&#xA;    power: 500mA chip-ID: 231d:0201 class-ID: 0300&#xA;  Hub-19: 10-0:1 info: Super-speed hub ports: 4 rev: 3.1 speed: 10 Gb/s&#xA;    chip-ID: 1d6b:0003 class-ID: 0900&#xA;Sensors:&#xA;  System Temperatures: cpu: 38.0 C mobo: 41.0 C&#xA;  Fan Speeds (RPM): fan-1: 702 fan-2: 747 fan-3: 938 fan-4: 889 fan-5: 3132&#xA;    fan-6: 0 fan-7: 0&#xA;  GPU: device: nvidia screen: :0.0 temp: 49 C fan: 0% device: radeon&#xA;    temp: 53.0 C&#xA;Info:&#xA;  Processes: 842 Uptime: 3h 11m wakeups: 0 Init: systemd v: 252&#xA;  default: graphical tool: systemctl Compilers: gcc: 12.2.1 alt: 10/11&#xA;  clang: 15.0.7 Packages: 2158 pm: pacman pkgs: 2110 libs: 495 tools: pamac,yay&#xA;  pm: flatpak pkgs: 31 pm: snap pkgs: 17 Shell: Bash v: 5.1.16&#xA;  running-in: yakuake inxi: 3.3.25&#xA;</filter></filter></filter></filter></filter></filter></vendor></filter></filter></filter></filter></filter></filter></filter></filter></filter></filter></filter></filter></filter></filter></filter></filter></filter></superuser>

    &#xA;

  • What permission ffmpeg-static need in AWS Lambda ?

    17 février 2023, par János

    I have this code. It download a image, made a video from it and upload it to S3. It runs on Lambda. Added packages, intalled, zipped, uploaded.

    &#xA;

    npm install --production&#xA;zip -r my-lambda-function.zip ./&#xA;

    &#xA;

    But get an error code 126

    &#xA;

    2023-02-17T09:27:55.236Z    5c845bb6-02c1-41b0-8759-4459591b57b0    INFO    Error: ffmpeg exited with code 126&#xA;    at ChildProcess.<anonymous> (/var/task/node_modules/fluent-ffmpeg/lib/processor.js:182:22)&#xA;    at ChildProcess.emit (node:events:513:28)&#xA;    at ChildProcess._handle.onexit (node:internal/child_process:291:12)&#xA;2023-02-17T09:27:55.236Z 5c845bb6-02c1-41b0-8759-4459591b57b0 INFO Error: ffmpeg exited with code 126 at ChildProcess.<anonymous> (/var/task/node_modules/fluent-ffmpeg/lib/processor.js:182:22) at ChildProcess.emit (node:events:513:28) at ChildProcess._handle.onexit (node:internal/child_process:291:12)&#xA;</anonymous></anonymous>

    &#xA;

    Do I need to set a specific premission for ffmpeg ?

    &#xA;

    import { PutObjectCommand, S3Client } from &#x27;@aws-sdk/client-s3&#x27;&#xA;import { fromNodeProviderChain } from &#x27;@aws-sdk/credential-providers&#x27;&#xA;import axios from &#x27;axios&#x27;&#xA;import pathToFfmpeg from &#x27;ffmpeg-static&#x27;&#xA;import ffmpeg from &#x27;fluent-ffmpeg&#x27;&#xA;import fs from &#x27;fs&#x27;&#xA;ffmpeg.setFfmpegPath(pathToFfmpeg)&#xA;const credentials = fromNodeProviderChain({&#xA;    clientConfig: {&#xA;        region: &#x27;eu-central-1&#x27;,&#xA;    },&#xA;})&#xA;const client = new S3Client({ credentials })&#xA;&#xA;export const handler = async (event, context) => {&#xA;    try {&#xA;        let body&#xA;        let statusCode = 200&#xA;        const query = event?.queryStringParameters&#xA;        if (!query?.imgId &amp;&amp; !query?.video1Id &amp;&amp; !query?.video2Id) {&#xA;            return&#xA;        }&#xA;&#xA;        const imgId = query?.imgId&#xA;        const video1Id = query?.video1Id&#xA;        const video2Id = query?.video2Id&#xA;        console.log(&#xA;            `Parameters received, imgId: ${imgId}, video1Id: ${video1Id}, video2Id: ${video2Id}`&#xA;        )&#xA;        const imgURL = getFileURL(imgId)&#xA;        const video1URL = getFileURL(`${video1Id}.mp4`)&#xA;        const video2URL = getFileURL(`${video2Id}.mp4`)&#xA;        const imagePath = `/tmp/${imgId}`&#xA;        const video1Path = `/tmp/${video1Id}.mp4`&#xA;        const video2Path = `/tmp/${video2Id}.mp4`&#xA;        const outputPath = `/tmp/${imgId}.mp4`&#xA;        await Promise.all([&#xA;            downloadFile(imgURL, imagePath),&#xA;            downloadFile(video1URL, video1Path),&#xA;            downloadFile(video2URL, video2Path),&#xA;        ])&#xA;        await new Promise((resolve, reject) => {&#xA;            console.log(&#x27;Input files downloaded&#x27;)&#xA;            ffmpeg()&#xA;                .input(imagePath)&#xA;                .inputFormat(&#x27;image2&#x27;)&#xA;                .inputFPS(30)&#xA;                .loop(1)&#xA;                .size(&#x27;1080x1080&#x27;)&#xA;                .videoCodec(&#x27;libx264&#x27;)&#xA;                .format(&#x27;mp4&#x27;)&#xA;                .outputOptions([&#xA;                    &#x27;-tune animation&#x27;,&#xA;                    &#x27;-pix_fmt yuv420p&#x27;,&#xA;                    &#x27;-profile:v baseline&#x27;,&#xA;                    &#x27;-level 3.0&#x27;,&#xA;                    &#x27;-preset medium&#x27;,&#xA;                    &#x27;-crf 23&#x27;,&#xA;                    &#x27;-movflags &#x2B;faststart&#x27;,&#xA;                    &#x27;-y&#x27;,&#xA;                ])&#xA;                .output(outputPath)&#xA;                .on(&#x27;end&#x27;, () => {&#xA;                    console.log(&#x27;Output file generated&#x27;)&#xA;                    resolve()&#xA;                })&#xA;                .on(&#x27;error&#x27;, (e) => {&#xA;                    console.log(e)&#xA;                    reject()&#xA;                })&#xA;                .run()&#xA;            &#xA;        })&#xA;        await uploadFile(outputPath, imgId &#x2B; &#x27;.mp4&#x27;)&#xA;            .then((url) => {&#xA;                body = JSON.stringify({&#xA;                    url,&#xA;                })&#xA;            })&#xA;            .catch((error) => {&#xA;                console.error(error)&#xA;                statusCode = 400&#xA;                body = error?.message ?? error&#xA;            })&#xA;        console.log(`File uploaded to S3`)&#xA;        const headers = {&#xA;            &#x27;Content-Type&#x27;: &#x27;application/json&#x27;,&#xA;            &#x27;Access-Control-Allow-Headers&#x27;: &#x27;Content-Type&#x27;,&#xA;            &#x27;Access-Control-Allow-Origin&#x27;: &#x27;https://tikex.com, https://borespiac.hu&#x27;,&#xA;            &#x27;Access-Control-Allow-Methods&#x27;: &#x27;GET&#x27;,&#xA;        }&#xA;        return {&#xA;            statusCode,&#xA;            body,&#xA;            headers,&#xA;        }&#xA;    } catch (error) {&#xA;        console.error(error)&#xA;        return {&#xA;            statusCode: 500,&#xA;            body: JSON.stringify(&#x27;Error fetching data&#x27;),&#xA;        }&#xA;    }&#xA;}&#xA;&#xA;const downloadFile = async (url, path) => {&#xA;    try {&#xA;        console.log(`Download will start: ${url}`)&#xA;        const response = await axios(url, {&#xA;            responseType: &#x27;stream&#x27;,&#xA;        })&#xA;        if (response.status !== 200) {&#xA;            throw new Error(&#xA;                `Failed to download file, status code: ${response.status}`&#xA;            )&#xA;        }&#xA;        response.data&#xA;            .pipe(fs.createWriteStream(path))&#xA;            .on(&#x27;finish&#x27;, () => console.log(`File downloaded to ${path}`))&#xA;            .on(&#x27;error&#x27;, (e) => {&#xA;                throw new Error(`Failed to save file: ${e}`)&#xA;            })&#xA;    } catch (e) {&#xA;        console.error(`Error downloading file: ${e}`)&#xA;    }&#xA;}&#xA;const uploadFile = async (path, id) => {&#xA;    const buffer = fs.readFileSync(path)&#xA;    const params = {&#xA;        Bucket: &#x27;t44-post-cover&#x27;,&#xA;        ACL: &#x27;public-read&#x27;,&#xA;        Key: id,&#xA;        ContentType: &#x27;video/mp4&#x27;,&#xA;        Body: buffer,&#xA;    }&#xA;    await client.send(new PutObjectCommand(params))&#xA;    return getFileURL(id)&#xA;}&#xA;const getFileURL = (id) => {&#xA;    const bucket = &#x27;t44-post-cover&#x27;&#xA;    const url = `https://${bucket}.s3.eu-central-1.amazonaws.com/${id}`&#xA;    return url&#xA;}&#xA;

    &#xA;

    Added AWSLambdaBasicExecutionRole-16e770c8-05fa-4c42-9819-12c468cb5b49 permission, with policy :

    &#xA;

    {&#xA;    "Version": "2012-10-17",&#xA;    "Statement": [&#xA;        {&#xA;            "Effect": "Allow",&#xA;            "Action": "logs:CreateLogGroup",&#xA;            "Resource": "arn:aws:logs:eu-central-1:634617701827:*"&#xA;        },&#xA;        {&#xA;            "Effect": "Allow",&#xA;            "Action": [&#xA;                "logs:CreateLogStream",&#xA;                "logs:PutLogEvents"&#xA;            ],&#xA;            "Resource": [&#xA;                "arn:aws:logs:eu-central-1:634617701827:log-group:/aws/lambda/promo-video-composer-2:*"&#xA;            ]&#xA;        },&#xA;        {&#xA;            "Effect": "Allow",&#xA;            "Action": [&#xA;                "s3:GetObject",&#xA;                "s3:PutObject",&#xA;                "s3:ListBucket"&#xA;            ],&#xA;            "Resource": [&#xA;                "arn:aws:s3:::example-bucket",&#xA;                "arn:aws:s3:::example-bucket/*"&#xA;            ]&#xA;        },&#xA;        {&#xA;            "Effect": "Allow",&#xA;            "Action": [&#xA;                "logs:CreateLogGroup",&#xA;                "logs:CreateLogStream",&#xA;                "logs:PutLogEvents"&#xA;            ],&#xA;            "Resource": [&#xA;                "arn:aws:logs:*:*:*"&#xA;            ]&#xA;        },&#xA;        {&#xA;            "Effect": "Allow",&#xA;            "Action": [&#xA;                "ec2:DescribeNetworkInterfaces"&#xA;            ],&#xA;            "Resource": [&#xA;                "*"&#xA;            ]&#xA;        },&#xA;        {&#xA;            "Effect": "Allow",&#xA;            "Action": [&#xA;                "sns:*"&#xA;            ],&#xA;            "Resource": [&#xA;                "*"&#xA;            ]&#xA;        },&#xA;        {&#xA;            "Effect": "Allow",&#xA;            "Action": [&#xA;                "cloudwatch:*"&#xA;            ],&#xA;            "Resource": [&#xA;                "*"&#xA;            ]&#xA;        },&#xA;        {&#xA;            "Effect": "Allow",&#xA;            "Action": [&#xA;                "kms:Decrypt"&#xA;            ],&#xA;            "Resource": [&#xA;                "*"&#xA;            ]&#xA;        }&#xA;    ]&#xA;}&#xA;

    &#xA;

    What do I miss ?

    &#xA;

    janoskukoda@Janoss-MacBook-Pro promo-video-composer-2 % ls -l $(which ffmpeg)&#xA;lrwxr-xr-x  1 janoskukoda  admin  35 Feb 10 12:50 /opt/homebrew/bin/ffmpeg -> ../Cellar/ffmpeg/5.1.2_4/bin/ffmpeg&#xA;

    &#xA;