Recherche avancée

Médias (91)

Autres articles (111)

  • Changer son thème graphique

    22 février 2011, par

    Le thème graphique ne touche pas à la disposition à proprement dite des éléments dans la page. Il ne fait que modifier l’apparence des éléments.
    Le placement peut être modifié effectivement, mais cette modification n’est que visuelle et non pas au niveau de la représentation sémantique de la page.
    Modifier le thème graphique utilisé
    Pour modifier le thème graphique utilisé, il est nécessaire que le plugin zen-garden soit activé sur le site.
    Il suffit ensuite de se rendre dans l’espace de configuration du (...)

  • Les formats acceptés

    28 janvier 2010, par

    Les commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
    ffmpeg -codecs ffmpeg -formats
    Les format videos acceptés en entrée
    Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
    Les formats vidéos de sortie possibles
    Dans un premier temps on (...)

  • Initialisation de MediaSPIP (préconfiguration)

    20 février 2010, par

    Lors de l’installation de MediaSPIP, celui-ci est préconfiguré pour les usages les plus fréquents.
    Cette préconfiguration est réalisée par un plugin activé par défaut et non désactivable appelé MediaSPIP Init.
    Ce plugin sert à préconfigurer de manière correcte chaque instance de MediaSPIP. Il doit donc être placé dans le dossier plugins-dist/ du site ou de la ferme pour être installé par défaut avant de pouvoir utiliser le site.
    Dans un premier temps il active ou désactive des options de SPIP qui ne le (...)

Sur d’autres sites (9974)

  • ffmpeg : fps drop when one -map udp output unreachable [closed]

    14 mai 2024, par user25041039

    I stream a video from a raspberry pi (server) to a splitscreen of 5x5 devices (clients) through an ethernet LAN.

    


    Server

    


    On the server side, I use the following ffmpeg command that :

    


      

    1. reads a video list in loop ;
    2. 


    3. splits it into 25 different streams ;
    4. 


    5. maps each stream to a device through udp.
    6. 


    


    I also have several options to minimize latency and keep the different subscreens in sync.

    


    ffmpeg -loglevel repeat+level+verbose -re -copyts -start_at_zero -rtbufsize 100000k \
    -stream_loop -1 -f concat -i stream.lst -an \
    -filter_complex "\
    [0]crop=iw/5:ih/5:0*iw/5:0*ih/5[11];
    [0]crop=iw/5:ih/5:1*iw/5:0*ih/5[12];
    [...] # truncated for readability
    [0]crop=iw/5:ih/5:4*iw/5:4*ih/5[55]" \
    -map '[11]?' -flush_packets 1 -preset ultrafast -vcodec libx264 -tune zerolatency -f mpegts "udp://100.64.0.11:1234" \
    -map '[12]?' -flush_packets 1 -preset ultrafast -vcodec libx264 -tune zerolatency -f mpegts "udp://100.64.0.12:1234" \
    [...] # truncated for readability
    -map '[55]?' -flush_packets 1 -preset ultrafast -vcodec libx264 -tune zerolatency -f mpegts "udp://100.64.0.55:1234"


    


    Clients

    


    On the client side, I use mpv to read the stream and display it. There are also options for low-latency.

    


    mpv --no-cache --force-seekable=yes --profile=low-latency --untimed --no-audio --video-rotate=90 --fs --no-config --vo=gpu --hwdec=auto udp://100.64.0.1:1234/


    


    My problem

    


    When a device is unreachable through the LAN (eg : powered down), the FPS stated by ffmpeg drops after a short period ( 10 seconds), and the stream is laggy (= some frames, then pause for 1s, ...). What I expect is the stream to go on normally, just having one of the subscreens black.

    


    Here is the full log of ffmpeg when I start the stream normally then power down one of the clients after 15s.

    


    [info] ffmpeg version 5.1.4-0+rpt3+deb12u1 Copyright (c) 2000-2023 the FFmpeg developers
[info]   built with gcc 12 (Debian 12.2.0-14)
[info]   configuration: --prefix=/usr --extra-version=0+rpt3+deb12u1 --toolchain=hardened --incdir=/usr/include/aarch64-linux-gnu --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --libdir=/usr/lib/aarch64-linux-gnu --arch=arm64 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
[info]   libavutil      57. 28.100 / 57. 28.100
[info]   libavcodec     59. 37.100 / 59. 37.100
[info]   libavformat    59. 27.100 / 59. 27.100
[info]   libavdevice    59.  7.100 / 59.  7.100
[info]   libavfilter     8. 44.100 /  8. 44.100
[info]   libswscale      6.  7.100 /  6.  7.100
[info]   libswresample   4.  7.100 /  4.  7.100
[info]   libpostproc    56.  6.100 / 56.  6.100
[h264 @ 0x5555f1407de0] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5555f1407720] [info] Auto-inserting h264_mp4toannexb bitstream filter
[h264 @ 0x5555f140eca0] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p
[info] Input #0, concat, from 'stream.lst':
[info]   Duration: N/A, start: 0.000000, bitrate: 47 kb/s
[info]   Stream #0:0(und): Video: h264 (Main), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, bt709, progressive, left), 1920x1080 (1920x1088), 47 kb/s, 24 fps, 24 tbr, 12288 tbn
[info]     Metadata:
[info]       handler_name    : Core Media Video
[info]       vendor_id       : [0][0][0][0]
[info] Stream mapping:
[info]   Stream #0:0 (h264) -> crop:default
... truncated
[info]   Stream #0:0 (h264) -> crop:default
[info]   crop:default -> Stream #0:0 (libx264)
... truncated
[info]   crop:default -> Stream #24:0 (libx264)
[info] Press [q] to stop, [?] for help
[h264 @ 0x5555f13fe050] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p
[graph 0 input from stream 0:0 @ 0x5555f1dfad40] [verbose] w:1920 h:1080 pixfmt:yuv420p tb:1/12288 fr:24/1 sar:0/1
... truncated
[graph 0 input from stream 0:0 @ 0x5555f1e01a50] [verbose] w:1920 h:1080 pixfmt:yuv420p tb:1/12288 fr:24/1 sar:0/1
[Parsed_crop_24 @ 0x5555f1dfa860] [verbose] w:1920 h:1080 sar:0/1 -> w:384 h:216 sar:0/1
... truncated
[Parsed_crop_0 @ 0x5555f1df23e0] [verbose] w:1920 h:1080 sar:0/1 -> w:384 h:216 sar:0/1
[libx264 @ 0x5555f147c220] [info] using cpu capabilities: ARMv8 NEON
[libx264 @ 0x5555f147c220] [info] profile Constrained Baseline, level 1.3, 4:2:0, 8-bit
[mpegts @ 0x5555f148ab70] [verbose] service 1 using PCR in pid=256, pcr_period=83ms
[mpegts @ 0x5555f148ab70] [verbose] muxrate VBR, sdt every 500 ms, pat/pmt every 100 ms
[info] Output #0, mpegts, to 'udp://100.64.0.11:1234':
[info]   Metadata:
[info]     encoder         : Lavf59.27.100
[info]   Stream #0:0: Video: h264, 1 reference frame, yuv420p(tv, bt709, progressive, left), 384x216 (0x0), q=2-31, 24 fps, 90k tbn
[info]     Metadata:
[info]       encoder         : Lavc59.37.100 libx264
[info]     Side data:
[info]       cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
[libx264 @ 0x5555f1428760] [info] using cpu capabilities: ARMv8 NEON
[libx264 @ 0x5555f1428760] [info] profile Constrained Baseline, level 1.3, 4:2:0, 8-bit
[mpegts @ 0x5555f148b080] [verbose] service 1 using PCR in pid=256, pcr_period=83ms
[mpegts @ 0x5555f148b080] [verbose] muxrate VBR, sdt every 500 ms, pat/pmt every 100 ms

... truncated
[info] Output #24, mpegts, to 'udp://100.64.0.55:1234':
[info]   Metadata:
[info]     encoder         : Lavf59.27.100
[info]   Stream #24:0: Video: h264, 1 reference frame, yuv420p(tv, bt709, progressive, left), 384x216 (0x0), q=2-31, 24 fps, 90k tbn
[info]     Metadata:
[info]       encoder         : Lavc59.37.100 libx264
[info]     Side data:
[info]       cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
[info] frame=    1 fps=0.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 size=   [info] frame=    9 fps=0.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=13.0 q=12.0 size=   [info] frame=   22 fps= 21 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=   34 fps= 22 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=   46 fps= 22 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=   58 fps= 23 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [AVIOContext @ 0x5555f140fa70] [verbose] Statistics: 19517 bytes read, 0 seeks
[h264 @ 0x5555f1407de0] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5555f1407720] [info] Auto-inserting h264_mp4toannexb bitstream filter
[info] frame=   70 fps= 23 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=   83 fps= 23 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=   95 fps= 23 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  107 fps= 23 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  119 fps= 23 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  132 fps= 23 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [AVIOContext @ 0x5555f140fa70] [verbose] Statistics: 19240 bytes read, 0 seeks
[h264 @ 0x5555f1407de0] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5555f1407720] [info] Auto-inserting h264_mp4toannexb bitstream filter
[info] frame=  144 fps= 23 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  156 fps= 23 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  168 fps= 23 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  180 fps= 23 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  193 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=13.0 q=12.0 q=12.0 q=27.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  205 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=13.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [AVIOContext @ 0x5555f140fa70] [verbose] Statistics: 19218 bytes read, 0 seeks
[h264 @ 0x5555f1407de0] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5555f1407720] [info] Auto-inserting h264_mp4toannexb bitstream filter
[h264 @ 0x5555f17af150] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p
[concat @ 0x5555f13febf0] [warning] New audio stream 0:1 at pos:68549 and DTS:8.99977s
[info] frame=  217 fps= 24 q=14.0 q=20.0 q=14.0 q=26.0 q=25.0 q=17.0 q=19.0 q=13.0 q=25.0 q=25.0 q=22.0 q=19.0 q=14.0 q=25.0 q=22.0 q=22.0 q=19.0 q=14.0 q=22.0 q=13.0 q=23.0 q=20.0 q=13.0 q=22.0 q=14.0 size=   [info] frame=  229 fps= 24 q=14.0 q=22.0 q=14.0 q=26.0 q=24.0 q=18.0 q=21.0 q=15.0 q=25.0 q=24.0 q=20.0 q=22.0 q=15.0 q=25.0 q=21.0 q=21.0 q=22.0 q=15.0 q=23.0 q=12.0 q=22.0 q=22.0 q=12.0 q=23.0 q=14.0 size=   [info] frame=  241 fps= 24 q=16.0 q=22.0 q=15.0 q=26.0 q=25.0 q=17.0 q=22.0 q=18.0 q=25.0 q=24.0 q=20.0 q=22.0 q=17.0 q=25.0 q=22.0 q=21.0 q=23.0 q=17.0 q=23.0 q=15.0 q=21.0 q=23.0 q=17.0 q=23.0 q=15.0 size=   [info] frame=  253 fps= 24 q=18.0 q=24.0 q=19.0 q=26.0 q=25.0 q=17.0 q=23.0 q=20.0 q=26.0 q=25.0 q=21.0 q=23.0 q=19.0 q=26.0 q=23.0 q=22.0 q=22.0 q=19.0 q=23.0 q=15.0 q=23.0 q=22.0 q=19.0 q=22.0 q=16.0 size=   [info] frame=  265 fps= 24 q=20.0 q=23.0 q=19.0 q=27.0 q=26.0 q=19.0 q=25.0 q=18.0 q=27.0 q=25.0 q=23.0 q=25.0 q=18.0 q=26.0 q=22.0 q=24.0 q=23.0 q=17.0 q=22.0 q=14.0 q=16.0 q=19.0 q=14.0 q=18.0 q=14.0 size=   [info] frame=  278 fps= 24 q=12.0 q=22.0 q=25.0 q=21.0 q=15.0 q=12.0 q=24.0 q=24.0 q=25.0 q=13.0 q=12.0 q=25.0 q=23.0 q=24.0 q=12.0 q=12.0 q=25.0 q=26.0 q=24.0 q=12.0 q=12.0 q=17.0 q=22.0 q=17.0 q=12.0 size=   [info] frame=  290 fps= 24 q=13.0 q=22.0 q=22.0 q=22.0 q=16.0 q=18.0 q=22.0 q=22.0 q=22.0 q=18.0 q=19.0 q=22.0 q=22.0 q=21.0 q=18.0 q=16.0 q=22.0 q=21.0 q=21.0 q=17.0 q=12.0 q=22.0 q=21.0 q=22.0 q=14.0 size=   [info] frame=  302 fps= 24 q=18.0 q=21.0 q=22.0 q=21.0 q=19.0 q=20.0 q=21.0 q=21.0 q=21.0 q=20.0 q=20.0 q=21.0 q=21.0 q=21.0 q=19.0 q=20.0 q=21.0 q=21.0 q=22.0 q=19.0 q=17.0 q=22.0 q=21.0 q=21.0 q=17.0 size=   [info] frame=  314 fps= 24 q=19.0 q=21.0 q=21.0 q=21.0 q=20.0 q=20.0 q=21.0 q=21.0 q=21.0 q=20.0 q=20.0 q=21.0 q=21.0 q=21.0 q=20.0 q=20.0 q=21.0 q=20.0 q=21.0 q=20.0 q=19.0 q=21.0 q=21.0 q=21.0 q=19.0 size=   [info] frame=  326 fps= 24 q=20.0 q=21.0 q=21.0 q=20.0 q=21.0 q=21.0 q=21.0 q=20.0 q=21.0 q=21.0 q=21.0 q=21.0 q=20.0 q=21.0 q=21.0 q=21.0 q=21.0 q=20.0 q=21.0 q=21.0 q=20.0 q=21.0 q=21.0 q=21.0 q=20.0 size=   [info] frame=  339 fps= 24 q=20.0 q=20.0 q=21.0 q=20.0 q=21.0 q=21.0 q=20.0 q=19.0 q=21.0 q=21.0 q=21.0 q=21.0 q=20.0 q=20.0 q=21.0 q=20.0 q=21.0 q=20.0 q=20.0 q=21.0 q=20.0 q=21.0 q=20.0 q=21.0 q=20.0 size=   [info] frame=  351 fps= 24 q=21.0 q=20.0 q=21.0 q=20.0 q=20.0 q=20.0 q=20.0 q=19.0 q=21.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=21.0 q=21.0 q=21.0 q=20.0 q=20.0 q=20.0 q=21.0 q=21.0 q=21.0 q=21.0 q=20.0 size=   [info] frame=  363 fps= 24 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=19.0 q=20.0 q=20.0 q=21.0 q=20.0 q=20.0 q=20.0 q=21.0 q=21.0 q=21.0 q=20.0 q=20.0 q=21.0 q=21.0 q=21.0 q=20.0 q=21.0 q=21.0 size=   [info] frame=  375 fps= 24 q=20.0 q=20.0 q=20.0 q=19.0 q=20.0 q=20.0 q=20.0 q=19.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=19.0 q=21.0 q=21.0 q=20.0 q=20.0 q=20.0 q=21.0 q=20.0 q=21.0 q=20.0 q=21.0 q=21.0 size=   [info] frame=  387 fps= 24 q=20.0 q=20.0 q=20.0 q=19.0 q=20.0 q=20.0 q=19.0 q=19.0 q=20.0 q=20.0 q=20.0 q=20.0 q=20.0 q=19.0 q=21.0 q=21.0 q=20.0 q=19.0 q=19.0 q=20.0 q=21.0 q=21.0 q=19.0 q=21.0 q=20.0 size=   [info] frame=  400 fps= 24 q=20.0 q=20.0 q=20.0 q=19.0 q=20.0 q=20.0 q=18.0 q=18.0 q=19.0 q=20.0 q=20.0 q=19.0 q=20.0 q=19.0 q=20.0 q=20.0 q=20.0 q=19.0 q=19.0 q=20.0 q=20.0 q=21.0 q=19.0 q=19.0 q=20.0 size=   [info] frame=  412 fps= 24 q=20.0 q=19.0 q=19.0 q=19.0 q=19.0 q=20.0 q=18.0 q=18.0 q=19.0 q=19.0 q=20.0 q=19.0 q=20.0 q=19.0 q=19.0 q=20.0 q=20.0 q=19.0 q=19.0 q=19.0 q=20.0 q=21.0 q=19.0 q=19.0 q=19.0 size=   [info] frame=  424 fps= 24 q=20.0 q=19.0 q=20.0 q=20.0 q=19.0 q=20.0 q=18.0 q=19.0 q=19.0 q=19.0 q=20.0 q=19.0 q=20.0 q=19.0 q=19.0 q=20.0 q=20.0 q=19.0 q=19.0 q=19.0 q=21.0 q=21.0 q=19.0 q=19.0 q=19.0 size=   [info] frame=  436 fps= 24 q=20.0 q=18.0 q=19.0 q=20.0 q=18.0 q=20.0 q=18.0 q=18.0 q=19.0 q=18.0 q=20.0 q=19.0 q=20.0 q=19.0 q=19.0 q=20.0 q=19.0 q=19.0 q=19.0 q=18.0 q=21.0 q=21.0 q=19.0 q=19.0 q=19.0 size=   [info] frame=  448 fps= 24 q=19.0 q=18.0 q=19.0 q=20.0 q=18.0 q=19.0 q=18.0 q=18.0 q=19.0 q=18.0 q=19.0 q=19.0 q=20.0 q=19.0 q=18.0 q=20.0 q=19.0 q=19.0 q=19.0 q=18.0 q=21.0 q=21.0 q=19.0 q=19.0 q=19.0 size=   [info] frame=  460 fps= 24 q=19.0 q=18.0 q=19.0 q=20.0 q=18.0 q=19.0 q=18.0 q=18.0 q=19.0 q=18.0 q=19.0 q=19.0 q=20.0 q=19.0 q=18.0 q=20.0 q=19.0 q=19.0 q=20.0 q=18.0 q=20.0 q=21.0 q=19.0 q=19.0 q=18.0 size=   [info] frame=  472 fps= 24 q=19.0 q=18.0 q=19.0 q=20.0 q=18.0 q=19.0 q=18.0 q=18.0 q=19.0 q=18.0 q=19.0 q=19.0 q=19.0 q=19.0 q=18.0 q=19.0 q=19.0 q=19.0 q=20.0 q=18.0 q=20.0 q=21.0 q=19.0 q=19.0 q=18.0 size=   [info] frame=  484 fps= 24 q=19.0 q=18.0 q=19.0 q=20.0 q=18.0 q=19.0 q=18.0 q=18.0 q=19.0 q=18.0 q=19.0 q=19.0 q=19.0 q=19.0 q=18.0 q=19.0 q=19.0 q=19.0 q=19.0 q=18.0 q=20.0 q=21.0 q=19.0 q=20.0 q=18.0 size=   [info] frame=  496 fps= 24 q=21.0 q=20.0 q=21.0 q=21.0 q=18.0 q=20.0 q=21.0 q=21.0 q=21.0 q=18.0 q=20.0 q=21.0 q=22.0 q=21.0 q=18.0 q=21.0 q=21.0 q=21.0 q=21.0 q=18.0 q=21.0 q=21.0 q=21.0 q=20.0 q=19.0 size=   [info] frame=  509 fps= 24 q=21.0 q=20.0 q=22.0 q=21.0 q=17.0 q=21.0 q=22.0 q=22.0 q=22.0 q=18.0 q=20.0 q=22.0 q=22.0 q=22.0 q=17.0 q=21.0 q=22.0 q=22.0 q=22.0 q=18.0 q=21.0 q=22.0 q=22.0 q=20.0 q=18.0 size=   [info] frame=  521 fps= 24 q=20.0 q=21.0 q=22.0 q=21.0 q=17.0 q=21.0 q=22.0 q=23.0 q=22.0 q=17.0 q=20.0 q=22.0 q=23.0 q=22.0 q=17.0 q=21.0 q=22.0 q=22.0 q=22.0 q=17.0 q=21.0 q=22.0 q=22.0 q=21.0 q=18.0 size=   [info] frame=  533 fps= 24 q=20.0 q=20.0 q=22.0 q=21.0 q=15.0 q=20.0 q=22.0 q=23.0 q=22.0 q=16.0 q=19.0 q=22.0 q=23.0 q=22.0 q=16.0 q=21.0 q=22.0 q=22.0 q=22.0 q=16.0 q=21.0 q=22.0 q=22.0 q=21.0 q=17.0 size=   [AVIOContext @ 0x5555f140fa70] [verbose] Statistics: 3205712 bytes read, 2 seeks
[h264 @ 0x5555f1df2c00] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5555f1407720] [info] Auto-inserting h264_mp4toannexb bitstream filter
[h264 @ 0x5555f1949030] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p
[info] frame=  546 fps= 24 q=16.0 q=17.0 q=18.0 q=18.0 q=13.0 q=17.0 q=18.0 q=18.0 q=18.0 q=13.0 q=16.0 q=18.0 q=19.0 q=18.0 q=14.0 q=17.0 q=19.0 q=18.0 q=18.0 q=14.0 q=18.0 q=19.0 q=18.0 q=18.0 q=14.0 size=   [info] frame=  558 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=14.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  570 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  582 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  594 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  606 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  618 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  631 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  643 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  655 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [AVIOContext @ 0x5555f140fa70] [verbose] Statistics: 120365 bytes read, 2 seeks
[h264 @ 0x5555f1df2c00] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5555f1407720] [info] Auto-inserting h264_mp4toannexb bitstream filter
[h264 @ 0x5555f1949030] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p
[info] frame=  667 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  679 fps= 24 q=20.0 q=12.0 q=12.0 q=12.0 q=12.0 q=20.0 q=12.0 q=25.0 q=12.0 q=12.0 q=21.0 q=20.0 q=24.0 q=12.0 q=12.0 q=20.0 q=19.0 q=22.0 q=13.0 q=13.0 q=13.0 q=14.0 q=17.0 q=12.0 q=12.0 size=   [info] frame=  691 fps= 24 q=17.0 q=12.0 q=21.0 q=12.0 q=12.0 q=15.0 q=13.0 q=23.0 q=12.0 q=12.0 q=16.0 q=19.0 q=21.0 q=17.0 q=12.0 q=15.0 q=12.0 q=21.0 q=13.0 q=13.0 q=12.0 q=12.0 q=13.0 q=12.0 q=12.0 size=   [info] frame=  703 fps= 24 q=19.0 q=12.0 q=21.0 q=12.0 q=12.0 q=16.0 q=12.0 q=23.0 q=12.0 q=12.0 q=14.0 q=17.0 q=21.0 q=15.0 q=12.0 q=13.0 q=12.0 q=20.0 q=13.0 q=13.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  715 fps= 24 q=20.0 q=12.0 q=20.0 q=15.0 q=12.0 q=18.0 q=22.0 q=23.0 q=23.0 q=12.0 q=16.0 q=17.0 q=22.0 q=17.0 q=12.0 q=15.0 q=21.0 q=22.0 q=13.0 q=13.0 q=12.0 q=14.0 q=13.0 q=12.0 q=12.0 size=   [info] frame=  728 fps= 24 q=18.0 q=12.0 q=12.0 q=12.0 q=12.0 q=16.0 q=14.0 q=23.0 q=12.0 q=12.0 q=16.0 q=19.0 q=22.0 q=13.0 q=12.0 q=15.0 q=19.0 q=21.0 q=13.0 q=12.0 q=12.0 q=12.0 q=14.0 q=12.0 q=12.0 size=   [info] frame=  740 fps= 24 q=17.0 q=12.0 q=12.0 q=12.0 q=12.0 q=15.0 q=14.0 q=22.0 q=12.0 q=12.0 q=14.0 q=18.0 q=21.0 q=12.0 q=12.0 q=15.0 q=19.0 q=20.0 q=13.0 q=13.0 q=12.0 q=13.0 q=16.0 q=12.0 q=12.0 size=   [info] frame=  752 fps= 24 q=23.0 q=14.0 q=14.0 q=14.0 q=14.0 q=21.0 q=16.0 q=25.0 q=14.0 q=14.0 q=21.0 q=20.0 q=23.0 q=16.0 q=20.0 q=22.0 q=21.0 q=23.0 q=22.0 q=20.0 q=22.0 q=24.0 q=24.0 q=23.0 q=23.0 size=   [info] frame=  764 fps= 24 q=16.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=14.0 q=23.0 q=12.0 q=12.0 q=14.0 q=18.0 q=22.0 q=12.0 q=12.0 q=13.0 q=16.0 q=18.0 q=13.0 q=13.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  776 fps= 24 q=21.0 q=14.0 q=19.0 q=12.0 q=12.0 q=20.0 q=23.0 q=23.0 q=19.0 q=12.0 q=15.0 q=23.0 q=23.0 q=21.0 q=12.0 q=16.0 q=16.0 q=20.0 q=13.0 q=13.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  788 fps= 24 q=22.0 q=12.0 q=19.0 q=18.0 q=13.0 q=21.0 q=12.0 q=23.0 q=24.0 q=16.0 q=19.0 q=12.0 q=24.0 q=26.0 q=23.0 q=15.0 q=12.0 q=27.0 q=25.0 q=16.0 q=13.0 q=13.0 q=16.0 q=12.0 q=12.0 size=   [info] frame=  800 fps= 24 q=21.0 q=12.0 q=12.0 q=12.0 q=12.0 q=18.0 q=12.0 q=12.0 q=12.0 q=12.0 q=13.0 q=12.0 q=15.0 q=15.0 q=12.0 q=13.0 q=12.0 q=14.0 q=17.0 q=13.0 q=13.0 q=12.0 q=13.0 q=12.0 q=12.0 size=   [AVIOContext @ 0x5555f140fa70] [verbose] Statistics: 984786 bytes read, 2 seeks
[h264 @ 0x5555f1407de0] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5555f1407720] [info] Auto-inserting h264_mp4toannexb bitstream filter
[h264 @ 0x5555f187c0c0] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p
[info] frame=  812 fps= 24 q=21.0 q=12.0 q=12.0 q=12.0 q=12.0 q=18.0 q=13.0 q=12.0 q=12.0 q=12.0 q=13.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=16.0 q=15.0 q=12.0 q=12.0 q=12.0 q=13.0 q=16.0 q=12.0 size=   [info] frame=  824 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  836 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  848 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  861 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=13.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=24.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  873 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  885 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=23.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=13.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  897 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  909 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=13.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=25.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  922 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  934 fps= 24 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  938 fps= 23 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [AVIOContext @ 0x5555f140fa70] [verbose] Statistics: 29154 bytes read, 0 seeks
[h264 @ 0x5555f1407de0] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5555f1407720] [info] Auto-inserting h264_mp4toannexb bitstream filter
[h264 @ 0x5555f17af150] [verbose] Reinit context to 1920x1088, pix_fmt: yuv420p
[info] frame=  963 fps= 23 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=15.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  967 fps= 22 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=17.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  994 fps= 22 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=15.0 q=19.0 q=12.0 q=12.0 q=12.0 q=17.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame=  997 fps= 21 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=15.0 q=19.0 q=12.0 q=12.0 q=12.0 q=18.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame= 1023 fps= 21 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=14.0 q=20.0 q=18.0 q=15.0 q=15.0 q=14.0 q=13.0 q=13.0 q=13.0 q=13.0 q=13.0 q=13.0 size=   [info] frame= 1029 fps= 20 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=14.0 q=20.0 q=15.0 q=14.0 q=15.0 q=15.0 q=13.0 q=13.0 q=14.0 q=14.0 q=14.0 q=13.0 size=   [info] frame= 1055 fps= 21 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=15.0 q=19.0 q=15.0 q=14.0 q=15.0 q=16.0 q=12.0 q=13.0 q=13.0 q=13.0 q=13.0 q=12.0 size=   [info] frame= 1060 fps= 20 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=16.0 q=19.0 q=15.0 q=14.0 q=15.0 q=16.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=   [info] frame= 1086 fps= 20 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=13.0 q=16.0 q=15.0 q=14.0 q=14.0 q=12.0 q=13.0 q=13.0 q=13.0 q=13.0 q=12.0 size=   [info] frame= 1092 fps= 19 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=13.0 q=16.0 q=13.0 q=13.0 q=13.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 q=12.0 size=


    


    What I tried & My guesses

    


    My best guess is that the issue comes from one of the data buffers between the two applications (ffmpeg -> mpv). There are several buffers and I don't know exactly which ones, but there is at least a UDP buffer at the output of the server and another one at the input of the client.

    


    When a client is unreachable, the server's UDP buffer seems to fill up and thus don't continue streaming for other clients.

    


    I tried to tweak several parameters of ffmpeg concerning buffers but without success.

    


      

    • udp://100.64.0.32:1234?buffer_size=1024&connect=0&fifo_size=10&overrun_nonfatal=0
    • 


    • fps_mode
    • 


    • thread_queue_size
    • 


    


    Any help is welcome !

    


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

  • What is last click attribution ? A beginner’s guide

    10 mars 2024, par Erin

    Imagine you just finished a successful marketing campaign. You reached new highs in campaign revenue. Your conversion was higher than ever. And you did it without dramatically increasing your marketing budget.

    So, you start planning your next campaign with a bigger budget.

    But what do you do ? Where do you invest the extra money ?

    You used several marketing tactics and channels in the last campaign. To solve this problem, you need to track marketing attribution — where you give conversion credit to a channel (or channels) that acted as a touchpoint along the buyer’s journey.

    One of the most popular attribution models is last click attribution.

    In this article, we’ll break down what last click attribution is, its advantages and disadvantages, and examples of how you can use it to gain insights into the marketing strategies driving your growth.

    What is last click attribution ?

    Last click, or last interaction, is a marketing attribution model that seeks to give all credit for a conversion to the final touchpoint in the buyer’s journey. It assumes the customer’s last interaction with your brand (before the sale) was the most influential marketing channel for the conversion decision.

    What is last click attribution?

    Example of last click attribution

    Let’s say a woman named Jill stumbles across a fitness equipment website through an Instagram ad. She explores the website, looking at a few fitness bands and equipment, but she doesn’t buy anything.

    A few days later, Jill was doing a workout but wished she had equipment to use.

    So, she Googles the name of the company she checked out earlier to take a look at the fitness bands it offers. She’s not sure which one to get, but she signs up for a 10% discount by entering her email.

    A few days later, she sees an ad on Facebook and visits the site but exits before purchasing. 

    The next day, Jill gets an email from the store stating that her discount code is expiring. She clicks on the link, plugs in the discount code, and buys a fitness band for $49.99.

    Under the last click attribution model, the fitness company would attribute full credit for the sale to their email campaign while ignoring all other touchpoints (the Instagram ad, Jill’s organic Google search, and the Facebook ad).

    3 advantages of last click attribution

    Last click attribution is one of the most popular methods to credit a conversion. Here are the primary advantages of using it to measure your marketing efforts :

    Advantages of Last Click Attribution

    1. Easiest attribution method for beginners

    If something’s too complicated, many people simply won’t touch it.

    So, when you start diving into attribution, you might want to keep it simple. Fortunately, last click attribution is a wonderful method for beginner marketers to try out. And when you first begin tracking your marketing efforts, it’s one of the easiest methods to grasp. 

    2. It can have more impact on revenue

    Attribution and conversions go hand in hand. But conversions aren’t just about making a sale or generating more revenue. We often need to track the conversions that take place before a sale.

    This could include gaining a new follower on Instagram or capturing an email subscriber with a new lead magnet.

    If you’re trying to attribute why someone converted into a follower or lead, you may want to ditch last click for something else.

    But when you’re looking strictly at revenue-generating conversions, last click can be one of the most impactful methods for giving credit to a conversion.

    3. It helps you understand bottom-of-funnel conversions

    If SEO is your focus, chances are pretty good that you aren’t looking for a direct sale right out of the gate. You likely want to build your authority, inform and educate your audience, and then maybe turn them into a lead.

    However, when your primary focus isn’t generating traffic or leads but turning your leads into customers, then you’re focused on the bottom of your sales funnel.

    Last click can be helpful to use in bottom-of-funnel (BoFu) conversions since it often means following a paid ad or sales email that allows you to convert your warm audience member.

    If you’re strictly after revenue, you may not need to pay as much attention to the person who reads your latest blog post. After they read the article, they may have seen a social media post. And then, maybe they saw your email with a discount to buy now — which converted them into a paying customer.

    3 challenges of last click attribution

    Last click attribution is a simple way to start analysing the channels that impact your conversions. But it’s not perfect.

    Here are a few challenges of last click attribution you should keep in mind :

    Challenges of last click attribution.

    1. It ignores all other touchpoints

    Last click attribution is a single-touch attribution model. This type of model declares that a single channel gets 100% of the credit for a sale.

    But this can overlook impactful contributions from other channels.

    Multi-touch attribution seeks to give credit to multiple channels for each conversion. This is a more holistic approach.

    2. It fragments the customer journey

    Most customers need a few touchpoints before they’ll make a purchase.

    Maybe it’s reading a blog post via Google, checking out a social media post on Instagram, and receiving a nurture email.

    If you look only at the last touchpoint before a sale, then you ignore the impact of the other channels. This leads to a fragmented customer journey. 

    Imagine this : You tell your marketing leaders that Facebook ads are responsible for your success because they were the last touch for 65% of conversions. So, you pour your entire budget into Facebook ads.

    What happens ?

    Your sales drop by 60% in one month. This happens because you ignored the traffic you were generating from SEO blog posts that led to that conversion — the nurturing that took place in email marketing.

    3. Say goodbye to brand awareness marketing

    Without a brand, you can’t have a sustainable business.

    Some marketing activities, like brand awareness campaigns, are meant to fuel brand awareness to build a business that lasts for years.

    But if you’re going to use last click attribution to measure the effectiveness of your marketing efforts, then you’re going to diminish the impact of brand awareness.

    Your brand, as a whole, has the ability to generate multiples of your current revenue by simply reaching more people and creating unique brand experiences with new audiences.

    Last click attribution can’t easily measure brand awareness activities, which means their importance is often ignored.

    Last click attribution vs. other attribution models

    Last click attribution is just one type of attribution model. Here are five other common marketing attribution models you might want to consider :

    Image of six different attribution models

    First interaction

    We’ve already touched on last click interaction as a marketing attribution model. But one of the most common models does the opposite.

    First interaction, or first touch, gives full credit to the first channel that brought a lead in. 

    First interaction is best used for top-of-funnel (ToFU) conversions, like user acquisition.

    Last non-direct interaction

    A similar model to last click attribution is one called last non-direct interaction. But one major difference is that it excludes all direct traffic from the calculation. Instead, it assigns full conversion credit to the channel that precedes it.

    For instance, let’s say you see someone comes to your website via a Facebook ad but doesn’t purchase. Then one week later, they go directly to your website through a bookmark they saved and they complete a purchase. Instead of giving attribution to the direct traffic touchpoint (entering your site through a saved bookmark), you attribute the conversion to the previous channel.

    In this case, the Facebook ad gets the credit.

    Last non-direct attribution is best used for BoFu conversions.

    Linear

    Another common attribution model is called linear attribution. Here, you split the credit for a conversion equally across every single touchpoint.

    This means if someone clicks on your blog post in Google, TikTok post, email, and a Facebook ad, then the credit for the conversion is equally split between each of these channels.

    This model is helpful for looking at both BoFu and ToFu activities.

    Time decay

    Time decay is an attribution model that more accurately credits conversions across different touchpoints. This means the closer a channel is to a conversion, the more weight is given to it.

    The time decay model assumes that the closer a channel is to a conversion, the greater that channel’s impact is on a sale.

    Position based

    Position-based, also called U-shaped attribution, is an interesting model that gives multiple channels credit for a conversion.

    But it doesn’t give equal credit to channels or weighted credit to the channels closest to the conversion.

    Instead, it gives the most credit to the first and last interactions.

    In other words, it emphasises the conversion of someone to a lead and, eventually, a customer.

    It gives the first and last interaction 40% of the credit for a conversion and then splits the remaining 20% across the other touchpoints in the customer journey.

    If you’re ever unsure about which attribution model to use, with Matomo, you can compare them to determine the one that best aligns with your goals and accurately reflects conversion paths. 

    Matomo comparing linear, first click, and last click attribution models in the marketing attribution dashboard

    In the above screenshot from Matomo, you can see how last-click compares to first-click and linear models to understand their respective impacts on conversions.

    Try Matomo for Free

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

    No credit card required

    Use Matomo to track last click attribution

    If you want to improve your marketing, you need to start tracking your efforts. Without marketing attribution, you will never be certain which marketing activities are pushing your business forward.

    Last click attribution is one of the most popular ways to get started with attribution since it, very simply, gives full credit to the last interaction for a conversion.

    If you want to start tracking last click attribution (or any other previously mentioned attribution model), sign up for Matomo’s 21-day free trial today. No credit card required.