Recherche avancée

Médias (1)

Mot : - Tags -/stallman

Autres articles (111)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

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

  • Script d’installation automatique de MediaSPIP

    25 avril 2011, par

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

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

Sur d’autres sites (6693)

  • Quick stream from file which exists

    4 mai 2017, par parsa

    I implement live streaming from mp4 video file which exists on the path with ffmpeg under hls format.
    When my video file have the quality greater than hd720 , in encoding there are so many delays for creating .ts fragments.
    I mean the .ts fragments slowly produced on my path,and because of it I have so many delays in showing the stream.
    Here is my ffmpeg code for streaming :

    ffmpeg -re -i 123.mp4 -s cga -f hls -hls_list_size 0 -c:v libx264 -c:a aac 200p/out.m3u8
                 -s nhd -f hls -hls_list_size 0 -c:v libx264 -c:a aac 360p/out.m3u8
                 -s hd480 -f hls -hls_list_size 0 -c:v libx264 -c:a aac 480p/out.m3u8
                 -s hd720 -f hls -hls_list_size 0 -c:v libx264 -c:a aac 720p/out.m3u8
                 -s hd1080 -f hls -hls_list_size 0 -c:v libx264 -c:a aac 1080p/out.m3u8

    And here is the console output :

       ffmpeg -re -i ../files/412-887123464/video/412-887123464.mp4 -s cga -f hls -hls_list_size 0 -c:v libx264 -c:a aac ../fil
           es/412-887123464/video/200p/out.m3u8  -s nhd -f hls -hls_list_size 0 -c:v libx264 -c:a aac ../files/412-887123464/video/360p/out.m3u8 -s hd480 -f hls -
           hls_list_size 0 -c:v libx264 -c:a aac ../files/412-887123464/video/480p/out.m3u8 -s hd720 -f hls -hls_list_size 0 -c:v libx264 -c:a aac ../files/412-88
           7123464/video/720p/out.m3u8 -s hd1080 -f hls -hls_list_size 0 -c:v libx264 -c:a aac ../files/412-887123464/video/1080p/out.m3u8
           ffmpeg version N-82225-gb4e9252 Copyright (c) 2000-2016 the FFmpeg developers
             built with gcc 5.4.0 (GCC)
             configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --e
           nable-libebur128 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcac
           a --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-lib
           opencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr
            --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwa
           vpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zl
           ib
             libavutil      55. 35.100 / 55. 35.100
             libavcodec     57. 66.101 / 57. 66.101
             libavformat    57. 57.100 / 57. 57.100
             libavdevice    57.  2.100 / 57.  2.100
             libavfilter     6. 66.100 /  6. 66.100
             libswscale      4.  3.100 /  4.  3.100
             libswresample   2.  4.100 /  2.  4.100
             libpostproc    54.  2.100 / 54.  2.100
           Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../files/412-887123464/video/412-887123464.mp4':
             Metadata:
               major_brand     : isom
               minor_version   : 512
               compatible_brands: isomiso2avc1mp41
               encoder         : Lavf57.31.100
             Duration: 00:05:04.07, start: 0.000000, bitrate: 3108 kb/s
               Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 2976 kb/s, 25 fps, 25 tbr, 90k tbn, 50
           tbc (default)
               Metadata:
                 handler_name    : VideoHandler
               Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
               Metadata:
                 handler_name    : SoundHandler
           [libx264 @ 0000000001c53f00] using SAR=10/9
           [libx264 @ 0000000001c53f00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
           [libx264 @ 0000000001c53f00] profile High, level 1.3
           Output #0, hls, to '../files/412-887123464/video/200p/out.m3u8':
             Metadata:
               major_brand     : isom
               minor_version   : 512
               compatible_brands: isomiso2avc1mp41
               encoder         : Lavf57.57.100
               Stream #0:0(und): Video: h264 (libx264), yuv420p, 320x200 [SAR 10:9 DAR 16:9], q=-1--1, 25 fps, 90k tbn, 25 tbc (default)
               Metadata:
                 handler_name    : VideoHandler
                 encoder         : Lavc57.66.101 libx264
               Side data:
                 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
               Stream #0:1(und): Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s (default)
               Metadata:
                 handler_name    : SoundHandler
                 encoder         : Lavc57.66.101 aac
           [libx264 @ 0000000001f87180] using SAR=1/1
           [libx264 @ 0000000001f87180] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
           [libx264 @ 0000000001f87180] profile High, level 3.0
           Output #1, hls, to '../files/412-887123464/video/360p/out.m3u8':
             Metadata:
               major_brand     : isom
               minor_version   : 512
               compatible_brands: isomiso2avc1mp41
               encoder         : Lavf57.57.100
               Stream #1:0(und): Video: h264 (libx264), yuv420p, 640x360 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 90k tbn, 25 tbc (default)
               Metadata:
                 handler_name    : VideoHandler
                 encoder         : Lavc57.66.101 libx264
               Side data:
                 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
               Stream #1:1(und): Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s (default)
               Metadata:
                 handler_name    : SoundHandler
                 encoder         : Lavc57.66.101 aac
           [libx264 @ 0000000001c55ba0] using SAR=640/639
           [libx264 @ 0000000001c55ba0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
           [libx264 @ 0000000001c55ba0] profile High, level 3.0
           Output #2, hls, to '../files/412-887123464/video/480p/out.m3u8':
             Metadata:
               major_brand     : isom
               minor_version   : 512
               compatible_brands: isomiso2avc1mp41
               encoder         : Lavf57.57.100
               Stream #2:0(und): Video: h264 (libx264), yuv420p, 852x480 [SAR 640:639 DAR 16:9], q=-1--1, 25 fps, 90k tbn, 25 tbc (default)
               Metadata:
                 handler_name    : VideoHandler
                 encoder         : Lavc57.66.101 libx264
               Side data:
                 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
               Stream #2:1(und): Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s (default)
               Metadata:
                 handler_name    : SoundHandler
                 encoder         : Lavc57.66.101 aac
           [libx264 @ 0000000001ca0220] using SAR=1/1
           [libx264 @ 0000000001ca0220] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
           [libx264 @ 0000000001ca0220] profile High, level 3.1
           Output #3, hls, to '../files/412-887123464/video/720p/out.m3u8':
             Metadata:
               major_brand     : isom
               minor_version   : 512
               compatible_brands: isomiso2avc1mp41
               encoder         : Lavf57.57.100
               Stream #3:0(und): Video: h264 (libx264), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 90k tbn, 25 tbc (default)
               Metadata:
                 handler_name    : VideoHandler
                 encoder         : Lavc57.66.101 libx264
               Side data:
                 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
               Stream #3:1(und): Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s (default)
               Metadata:
                 handler_name    : SoundHandler
                 encoder         : Lavc57.66.101 aac
           [libx264 @ 0000000001ca23e0] using SAR=1/1
           [libx264 @ 0000000001ca23e0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
           [libx264 @ 0000000001ca23e0] profile High, level 4.0
           Output #4, hls, to '../files/412-887123464/video/1080p/out.m3u8':
             Metadata:
               major_brand     : isom
               minor_version   : 512
               compatible_brands: isomiso2avc1mp41
               encoder         : Lavf57.57.100
               Stream #4:0(und): Video: h264 (libx264), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 90k tbn, 25 tbc (default)
               Metadata:
                 handler_name    : VideoHandler
                 encoder         : Lavc57.66.101 libx264
               Side data:
                 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
               Stream #4:1(und): Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s (default)
               Metadata:
                 handler_name    : SoundHandler
                 encoder         : Lavc57.66.101 aac
           Stream mapping:
             Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
             Stream #0:1 -> #0:1 (aac (native) -> aac (native))
             Stream #0:0 -> #1:0 (h264 (native) -> h264 (libx264))
             Stream #0:1 -> #1:1 (aac (native) -> aac (native))
             Stream #0:0 -> #2:0 (h264 (native) -> h264 (libx264))
             Stream #0:1 -> #2:1 (aac (native) -> aac (native))
             Stream #0:0 -> #3:0 (h264 (native) -> h264 (libx264))
             Stream #0:1 -> #3:1 (aac (native) -> aac (native))
             Stream #0:0 -> #4:0 (h264 (native) -> h264 (libx264))
             Stream #0:1 -> #4:1 (aac (native) -> aac (native))
           Press [q] to stop, [?] for help
    frame= 7600 fps= 21 q=-1.0 Lq=-1.0 q=-1.0 q=-1.0 q=-1.0 size=N/A time=00:05:04.06 bitrate=N/A speed=0.835x
    video:294980kB audio:23995kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    [libx264 @ 0000000001d33f00] frame I:33    Avg QP:19.93  size: 11412
    [libx264 @ 0000000001d33f00] frame P:2281  Avg QP:23.72  size:  3112
    [libx264 @ 0000000001d33f00] frame B:5286  Avg QP:28.59  size:   446
    [libx264 @ 0000000001d33f00] consecutive B-frames:  4.3%  6.9%  5.9% 82.8%
    [libx264 @ 0000000001d33f00] mb I  I16..4: 12.9% 42.9% 44.2%
    [libx264 @ 0000000001d33f00] mb P  I16..4:  1.3%  4.4%  2.3%  P16..4: 41.4% 22.0% 15.5%  0.0%  0.0%    skip:13.1%
    [libx264 @ 0000000001d33f00] mb B  I16..4:  0.0%  0.1%  0.0%  B16..8: 35.2%  5.9%  2.1%  direct: 3.0%  skip:53.6%  L0:35.3% L1:48.0% BI:16.8%
    [libx264 @ 0000000001d33f00] 8x8 transform intra:53.4% inter:57.9%
    [libx264 @ 0000000001d33f00] coded y,uvDC,uvAC intra: 70.6% 89.7% 67.6% inter: 18.1% 20.3% 7.2%
    [libx264 @ 0000000001d33f00] i16 v,h,dc,p: 24% 24%  6% 45%
    [libx264 @ 0000000001d33f00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 14% 19%  5%  5%  7%  5% 10%  7%
    [libx264 @ 0000000001d33f00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 31% 15% 15%  6%  6%  7%  6%  8%  6%
    [libx264 @ 0000000001d33f00] i8c dc,h,v,p: 42% 17% 28% 14%
    [libx264 @ 0000000001d33f00] Weighted P-Frames: Y:26.3% UV:12.9%
    [libx264 @ 0000000001d33f00] ref P L0: 58.7% 24.7% 10.9%  4.8%  1.0%
    [libx264 @ 0000000001d33f00] ref B L0: 92.6%  5.8%  1.6%
    [libx264 @ 0000000001d33f00] ref B L1: 96.3%  3.7%
    [libx264 @ 0000000001d33f00] kb/s:258.68
    [aac @ 00000000005fc9e0] Qavg: 686.637
    [libx264 @ 0000000002017180] frame I:31    Avg QP:19.77  size: 29228
    [libx264 @ 0000000002017180] frame P:2040  Avg QP:23.08  size:  8765
    [libx264 @ 0000000002017180] frame B:5529  Avg QP:27.28  size:  1471
    [libx264 @ 0000000002017180] consecutive B-frames:  1.3%  4.2%  2.4% 92.1%
    [libx264 @ 0000000002017180] mb I  I16..4:  8.3% 58.8% 32.9%
    [libx264 @ 0000000002017180] mb P  I16..4:  3.2%  9.5%  2.6%  P16..4: 41.5% 19.5% 11.4%  0.0%  0.0%    skip:12.2%
    [libx264 @ 0000000002017180] mb B  I16..4:  0.2%  0.3%  0.1%  B16..8: 34.5%  5.8%  1.7%  direct: 2.7%  skip:54.7%  L0:35.9% L1:49.5% BI:14.6%
    [libx264 @ 0000000002017180] 8x8 transform intra:61.2% inter:67.3%
    [libx264 @ 0000000002017180] coded y,uvDC,uvAC intra: 55.8% 84.8% 51.3% inter: 15.6% 19.3% 3.9%
    [libx264 @ 0000000002017180] i16 v,h,dc,p: 24% 29%  8% 39%
    [libx264 @ 0000000002017180] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 17% 21%  5%  5%  7%  5%  8%  6%
    [libx264 @ 0000000002017180] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 29% 18% 15%  6%  7%  7%  6%  7%  5%
    [libx264 @ 0000000002017180] i8c dc,h,v,p: 42% 18% 27% 13%
    [libx264 @ 0000000002017180] Weighted P-Frames: Y:22.3% UV:12.2%
    [libx264 @ 0000000002017180] ref P L0: 58.5% 23.4% 12.2%  5.2%  0.8%
    [libx264 @ 0000000002017180] ref B L0: 93.1%  5.3%  1.6%
    [libx264 @ 0000000002017180] ref B L1: 96.6%  3.4%
    [libx264 @ 0000000002017180] kb/s:708.47
    [aac @ 0000000001d35200] Qavg: 686.637
    [libx264 @ 0000000001d35ba0] frame I:31    Avg QP:19.63  size: 41522
    [libx264 @ 0000000001d35ba0] frame P:2025  Avg QP:22.86  size: 13415
    [libx264 @ 0000000001d35ba0] frame B:5544  Avg QP:26.52  size:  2471
    [libx264 @ 0000000001d35ba0] consecutive B-frames:  1.1%  3.9%  2.8% 92.2%
    [libx264 @ 0000000001d35ba0] mb I  I16..4: 10.6% 62.4% 26.9%
    [libx264 @ 0000000001d35ba0] mb P  I16..4:  4.7% 12.4%  2.6%  P16..4: 41.1% 17.8%  9.4%  0.0%  0.0%    skip:11.9%
    [libx264 @ 0000000001d35ba0] mb B  I16..4:  0.3%  0.5%  0.1%  B16..8: 34.0%  5.5%  1.4%  direct: 2.9%  skip:55.3%  L0:36.7% L1:50.2% BI:13.1%
    [libx264 @ 0000000001d35ba0] 8x8 transform intra:61.7% inter:71.6%
    [libx264 @ 0000000001d35ba0] coded y,uvDC,uvAC intra: 48.0% 81.9% 43.3% inter: 14.7% 19.7% 2.6%
    [libx264 @ 0000000001d35ba0] i16 v,h,dc,p: 27% 29%  9% 35%
    [libx264 @ 0000000001d35ba0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 19% 22%  5%  5%  6%  5%  7%  5%
    [libx264 @ 0000000001d35ba0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 25% 16%  5%  6%  7%  6%  6%  4%
    [libx264 @ 0000000001d35ba0] i8c dc,h,v,p: 42% 20% 26% 12%
    [libx264 @ 0000000001d35ba0] Weighted P-Frames: Y:18.1% UV:10.8%
    [libx264 @ 0000000001d35ba0] ref P L0: 59.5% 22.6% 12.6%  4.8%  0.5%
    [libx264 @ 0000000001d35ba0] ref B L0: 93.6%  5.0%  1.4%
    [libx264 @ 0000000001d35ba0] ref B L1: 97.1%  2.9%
    [libx264 @ 0000000001d35ba0] kb/s:1109.23
    [aac @ 0000000001d828a0] Qavg: 686.637
    [libx264 @ 0000000001d7f880] frame I:32    Avg QP:19.45  size: 64737
    [libx264 @ 0000000001d7f880] frame P:2104  Avg QP:22.44  size: 23985
    [libx264 @ 0000000001d7f880] frame B:5464  Avg QP:25.65  size:  4999
    [libx264 @ 0000000001d7f880] consecutive B-frames:  1.2%  7.7%  3.2% 87.8%
    [libx264 @ 0000000001d7f880] mb I  I16..4: 12.5% 70.0% 17.5%
    [libx264 @ 0000000001d7f880] mb P  I16..4:  6.7% 17.1%  1.8%  P16..4: 40.7% 14.9%  6.6%  0.0%  0.0%    skip:12.2%
    [libx264 @ 0000000001d7f880] mb B  I16..4:  0.6%  0.9%  0.1%  B16..8: 32.5%  4.7%  1.0%  direct: 2.9%  skip:57.4%  L0:37.6% L1:51.6% BI:10.8%
    [libx264 @ 0000000001d7f880] 8x8 transform intra:65.7% inter:77.5%
    [libx264 @ 0000000001d7f880] coded y,uvDC,uvAC intra: 39.5% 76.4% 32.4% inter: 13.2% 19.8% 1.5%
    [libx264 @ 0000000001d7f880] i16 v,h,dc,p: 32% 27% 10% 31%
    [libx264 @ 0000000001d7f880] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 18% 23%  4%  5%  5%  4%  5%  4%
    [libx264 @ 0000000001d7f880] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 29% 20% 15%  5%  7%  7%  6%  6%  4%
    [libx264 @ 0000000001d7f880] i8c dc,h,v,p: 42% 19% 27% 12%
    [libx264 @ 0000000001d7f880] Weighted P-Frames: Y:10.5% UV:6.7%
    [libx264 @ 0000000001d7f880] ref P L0: 62.3% 20.4% 12.7%  4.3%  0.3%
    [libx264 @ 0000000001d7f880] ref B L0: 93.4%  5.2%  1.4%
    [libx264 @ 0000000001d7f880] ref B L1: 97.7%  2.3%
    [libx264 @ 0000000001d7f880] kb/s:2101.26
    [aac @ 0000000001d81560] Qavg: 686.637
    [libx264 @ 0000000001d7fd60] frame I:33    Avg QP:18.36  size: 98904
    [libx264 @ 0000000001d7fd60] frame P:3180  Avg QP:21.67  size: 33377
    [libx264 @ 0000000001d7fd60] frame B:4387  Avg QP:24.61  size:  7729
    [libx264 @ 0000000001d7fd60] consecutive B-frames:  2.7% 55.9% 15.6% 25.9%
    [libx264 @ 0000000001d7fd60] mb I  I16..4: 22.4% 66.9% 10.7%
    [libx264 @ 0000000001d7fd60] mb P  I16..4:  9.9% 17.8%  0.7%  P16..4: 40.4%  9.2%  3.0%  0.0%  0.0%    skip:19.0%
    [libx264 @ 0000000001d7fd60] mb B  I16..4:  0.8%  1.3%  0.1%  B16..8: 30.2%  2.6%  0.4%  direct: 1.7%  skip:63.0%  L0:38.1% L1:54.9% BI: 7.0%
    [libx264 @ 0000000001d7fd60] 8x8 transform intra:62.5% inter:82.9%
    [libx264 @ 0000000001d7fd60] coded y,uvDC,uvAC intra: 25.4% 59.5% 11.6% inter: 9.6% 16.3% 0.7%
    [libx264 @ 0000000001d7fd60] i16 v,h,dc,p: 33% 28% 15% 24%
    [libx264 @ 0000000001d7fd60] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 34% 20% 29%  3%  3%  4%  3%  3%  3%
    [libx264 @ 0000000001d7fd60] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 25% 16%  4%  6%  6%  5%  5%  4%
    [libx264 @ 0000000001d7fd60] i8c dc,h,v,p: 39% 21% 28% 12%
    [libx264 @ 0000000001d7fd60] Weighted P-Frames: Y:5.7% UV:3.6%
    [libx264 @ 0000000001d7fd60] ref P L0: 70.0% 18.6%  8.3%  3.1%  0.1%
    [libx264 @ 0000000001d7fd60] ref B L0: 91.4%  7.6%  1.0%
    [libx264 @ 0000000001d7fd60] ref B L1: 99.0%  1.0%
    [libx264 @ 0000000001d7fd60] kb/s:3771.31
    [aac @ 0000000001d823e0] Qavg: 686.637

    But I don’t have any problem for streaming files with creating resolutions from a file which have lower orginal quality than hd1080
    What I can to do ?

  • Can not add tmcd stream using libavcodec to replicate behavior of ffmpeg -timecode option

    2 août, par Sailor Jerry

    I'm trying to replicate option of command line ffmpeg -timecode in my C/C++ code. For some reasons the tcmd stream is not written to the output file. However the av_dump_format shows it in run time

    


    Here is my minimal test

    


    #include <iostream>&#xA;extern "C" {&#xA;#include <libavcodec></libavcodec>avcodec.h>&#xA;#include <libavformat></libavformat>avformat.h>&#xA;#include <libavutil></libavutil>avutil.h>&#xA;#include <libswscale></libswscale>swscale.h>&#xA;#include <libavutil></libavutil>opt.h>&#xA;#include <libavutil></libavutil>imgutils.h>&#xA;#include <libavutil></libavutil>samplefmt.h>&#xA;}&#xA;bool checkProResAvailability() {&#xA;  const AVCodec* codec = avcodec_find_encoder_by_name("prores_ks");&#xA;  if (!codec) {&#xA;    std::cerr &lt;&lt; "ProRes codec not available. Please install FFmpeg with ProRes support." &lt;&lt; std::endl;&#xA;    return false;&#xA;  }&#xA;  return true;&#xA;}&#xA;&#xA;int main(){&#xA;  av_log_set_level(AV_LOG_INFO);&#xA;&#xA;  const char* outputFileName = "test_tmcd.mov";&#xA;  AVFormatContext* formatContext = nullptr;&#xA;  AVCodecContext* videoCodecContext = nullptr;&#xA;&#xA;  if (!checkProResAvailability()) {&#xA;    return -1;&#xA;  }&#xA;&#xA;  std::cout &lt;&lt; "Creating test file with tmcd stream: " &lt;&lt; outputFileName &lt;&lt; std::endl;&#xA;&#xA;  // Allocate the output format context&#xA;  if (avformat_alloc_output_context2(&amp;formatContext, nullptr, "mov", outputFileName) &lt; 0) {&#xA;    std::cerr &lt;&lt; "Failed to allocate output context!" &lt;&lt; std::endl;&#xA;    return -1;&#xA;  }&#xA;&#xA;  if (avio_open(&amp;formatContext->pb, outputFileName, AVIO_FLAG_WRITE) &lt; 0) {&#xA;    std::cerr &lt;&lt; "Failed to open output file!" &lt;&lt; std::endl;&#xA;    avformat_free_context(formatContext);&#xA;    return -1;&#xA;  }&#xA;&#xA;  // Find ProRes encoder&#xA;  const AVCodec* videoCodec = avcodec_find_encoder_by_name("prores_ks");&#xA;  if (!videoCodec) {&#xA;    std::cerr &lt;&lt; "Failed to find the ProRes encoder!" &lt;&lt; std::endl;&#xA;    avio_close(formatContext->pb);&#xA;    avformat_free_context(formatContext);&#xA;    return -1;&#xA;  }&#xA;&#xA;  // Video stream setup&#xA;  AVStream* videoStream = avformat_new_stream(formatContext, nullptr);&#xA;  if (!videoStream) {&#xA;    std::cerr &lt;&lt; "Failed to create video stream!" &lt;&lt; std::endl;&#xA;    avio_close(formatContext->pb);&#xA;    avformat_free_context(formatContext);&#xA;    return -1;&#xA;  }&#xA;&#xA;  videoCodecContext = avcodec_alloc_context3(videoCodec);&#xA;  if (!videoCodecContext) {&#xA;    std::cerr &lt;&lt; "Failed to allocate video codec context!" &lt;&lt; std::endl;&#xA;    avio_close(formatContext->pb);&#xA;    avformat_free_context(formatContext);&#xA;    return -1;&#xA;  }&#xA;&#xA;  videoCodecContext->width = 1920;&#xA;  videoCodecContext->height = 1080;&#xA;  videoCodecContext->pix_fmt = AV_PIX_FMT_YUV422P10;&#xA;  videoCodecContext->time_base = (AVRational){1, 30}; // Set FPS: 30&#xA;  videoCodecContext->bit_rate = 2000000;&#xA;&#xA;  if (avcodec_open2(videoCodecContext, videoCodec, nullptr) &lt; 0) {&#xA;    std::cerr &lt;&lt; "Failed to open ProRes codec!" &lt;&lt; std::endl;&#xA;    avcodec_free_context(&amp;videoCodecContext);&#xA;    avio_close(formatContext->pb);&#xA;    avformat_free_context(formatContext);&#xA;    return -1;&#xA;  }&#xA;&#xA;  if (avcodec_parameters_from_context(videoStream->codecpar, videoCodecContext) &lt; 0) {&#xA;    std::cerr &lt;&lt; "Failed to copy codec parameters to video stream!" &lt;&lt; std::endl;&#xA;    avcodec_free_context(&amp;videoCodecContext);&#xA;    avio_close(formatContext->pb);&#xA;    avformat_free_context(formatContext);&#xA;    return -1;&#xA;  }&#xA;&#xA;  videoStream->time_base = videoCodecContext->time_base;&#xA;&#xA;  // Timecode stream setup&#xA;  AVStream* timecodeStream = avformat_new_stream(formatContext, nullptr);&#xA;  if (!timecodeStream) {&#xA;    std::cerr &lt;&lt; "Failed to create timecode stream!" &lt;&lt; std::endl;&#xA;    avcodec_free_context(&amp;videoCodecContext);&#xA;    avio_close(formatContext->pb);&#xA;    avformat_free_context(formatContext);&#xA;    return -1;&#xA;  }&#xA;&#xA;  timecodeStream->codecpar->codec_type = AVMEDIA_TYPE_DATA;&#xA;  timecodeStream->codecpar->codec_id = AV_CODEC_ID_TIMED_ID3;&#xA;  timecodeStream->codecpar->codec_tag = MKTAG(&#x27;t&#x27;, &#x27;m&#x27;, &#x27;c&#x27;, &#x27;d&#x27;); // Timecode tag&#xA;  timecodeStream->time_base = (AVRational){1, 30}; // FPS: 30&#xA;&#xA;  if (av_dict_set(&amp;timecodeStream->metadata, "timecode", "00:00:30:00", 0) &lt; 0) {&#xA;    std::cerr &lt;&lt; "Failed to set timecode metadata!" &lt;&lt; std::endl;&#xA;    avcodec_free_context(&amp;videoCodecContext);&#xA;    avio_close(formatContext->pb);&#xA;    avformat_free_context(formatContext);&#xA;    return -1;&#xA;  }&#xA;&#xA;  // Write container header&#xA;  if (avformat_write_header(formatContext, nullptr) &lt; 0) {&#xA;    std::cerr &lt;&lt; "Failed to write file header!" &lt;&lt; std::endl;&#xA;    avcodec_free_context(&amp;videoCodecContext);&#xA;    avio_close(formatContext->pb);&#xA;    avformat_free_context(formatContext);&#xA;    return -1;&#xA;  }&#xA;&#xA;  // Encode a dummy video frame&#xA;  AVFrame* frame = av_frame_alloc();&#xA;  if (!frame) {&#xA;    std::cerr &lt;&lt; "Failed to allocate video frame!" &lt;&lt; std::endl;&#xA;    avcodec_free_context(&amp;videoCodecContext);&#xA;    avio_close(formatContext->pb);&#xA;    avformat_free_context(formatContext);&#xA;    return -1;&#xA;  }&#xA;&#xA;  frame->format = videoCodecContext->pix_fmt;&#xA;  frame->width = videoCodecContext->width;&#xA;  frame->height = videoCodecContext->height;&#xA;&#xA;  if (av_image_alloc(frame->data, frame->linesize, frame->width, frame->height, videoCodecContext->pix_fmt, 32) &lt; 0) {&#xA;    std::cerr &lt;&lt; "Failed to allocate frame buffer!" &lt;&lt; std::endl;&#xA;    av_frame_free(&amp;frame);&#xA;    avcodec_free_context(&amp;videoCodecContext);&#xA;    avio_close(formatContext->pb);&#xA;    avformat_free_context(formatContext);&#xA;    return -1;&#xA;  }&#xA;&#xA;  // Fill frame with black&#xA;  memset(frame->data[0], 0, frame->linesize[0] * frame->height); // Y plane&#xA;  memset(frame->data[1], 128, frame->linesize[1] * frame->height / 2); // U plane&#xA;  memset(frame->data[2], 128, frame->linesize[2] * frame->height / 2); // V plane&#xA;&#xA;  // Encode the frame&#xA;  AVPacket packet;&#xA;  av_init_packet(&amp;packet);&#xA;  packet.data = nullptr;&#xA;  packet.size = 0;&#xA;&#xA;  if (avcodec_send_frame(videoCodecContext, frame) == 0) {&#xA;    if (avcodec_receive_packet(videoCodecContext, &amp;packet) == 0) {&#xA;      packet.stream_index = videoStream->index;&#xA;      av_interleaved_write_frame(formatContext, &amp;packet);&#xA;      av_packet_unref(&amp;packet);&#xA;    }&#xA;  }&#xA;&#xA;  av_frame_free(&amp;frame);&#xA;&#xA;  // Write a dummy packet for the timecode stream&#xA;  AVPacket tmcdPacket;&#xA;  av_init_packet(&amp;tmcdPacket);&#xA;  tmcdPacket.stream_index = timecodeStream->index;&#xA;  tmcdPacket.flags |= AV_PKT_FLAG_KEY;&#xA;  tmcdPacket.data = nullptr; // Empty packet for timecode&#xA;  tmcdPacket.size = 0;&#xA;  tmcdPacket.pts = 0; // Set necessary PTS&#xA;  tmcdPacket.dts = 0;&#xA;  av_interleaved_write_frame(formatContext, &amp;tmcdPacket);&#xA;&#xA;  // Write trailer&#xA;  if (av_write_trailer(formatContext) &lt; 0) {&#xA;    std::cerr &lt;&lt; "Failed to write file trailer!" &lt;&lt; std::endl;&#xA;  }&#xA;&#xA;  av_dump_format(formatContext, 0, "test.mov", 1);&#xA;&#xA;  // Cleanup&#xA;  avcodec_free_context(&amp;videoCodecContext);&#xA;  avio_close(formatContext->pb);&#xA;  avformat_free_context(formatContext);&#xA;&#xA;  std::cout &lt;&lt; "Test file with timecode created successfully: " &lt;&lt; outputFileName &lt;&lt; std::endl;&#xA;&#xA;  return 0;&#xA;}&#xA;</iostream>

    &#xA;

    The code output is :

    &#xA;

    Creating test file with tmcd stream: test_tmcd.mov&#xA;[prores_ks @ 0x11ce05790] Autoselected HQ profile to keep best quality. It can be overridden through -profile option.&#xA;[mov @ 0x11ce04f20] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly&#xA;[mov @ 0x11ce04f20] Encoder did not produce proper pts, making some up.&#xA;Output #0, mov, to &#x27;test.mov&#x27;:&#xA;  Metadata:&#xA;    encoder         : Lavf61.7.100&#xA;  Stream #0:0: Video: prores (HQ) (apch / 0x68637061), yuv422p10le, 1920x1080, q=2-31, 2000 kb/s, 15360 tbn&#xA;  Stream #0:1: Data: timed_id3 (tmcd / 0x64636D74)&#xA;      Metadata:&#xA;        timecode        : 00:00:30:00&#xA;Test file with timecode created successfully: test_tmcd.mov&#xA;

    &#xA;

    The ffprobe output is :

    &#xA;

    $ ffprobe  test_tmcd.mov&#xA;ffprobe version 7.1.1 Copyright (c) 2007-2025 the FFmpeg developers&#xA;  built with Apple clang version 16.0.0 (clang-1600.0.26.6)&#xA;  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/7.1.1_3 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags=&#x27;-Wl,-ld_classic&#x27; --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon&#xA;  libavutil      59. 39.100 / 59. 39.100&#xA;  libavcodec     61. 19.101 / 61. 19.101&#xA;  libavformat    61.  7.100 / 61.  7.100&#xA;  libavdevice    61.  3.100 / 61.  3.100&#xA;  libavfilter    10.  4.100 / 10.  4.100&#xA;  libswscale      8.  3.100 /  8.  3.100&#xA;  libswresample   5.  3.100 /  5.  3.100&#xA;  libpostproc    58.  3.100 / 58.  3.100&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;test_tmcd.mov&#x27;:&#xA;  Metadata:&#xA;    major_brand     : qt  &#xA;    minor_version   : 512&#xA;    compatible_brands: qt  &#xA;    encoder         : Lavf61.7.100&#xA;  Duration: N/A, start: 0.000000, bitrate: N/A&#xA;  Stream #0:0[0x1]: Video: prores (HQ) (apch / 0x68637061), yuv422p10le, 1920x1080, 15360 tbn (default)&#xA;      Metadata:&#xA;        handler_name    : VideoHandler&#xA;        vendor_id       : FFMP&#xA;$ &#xA;&#xA;

    &#xA;

    Spent hours with all AI models, no help. Appeal to the human intelligence now

    &#xA;

  • Unwrapping Matomo 5.2.0 – Bringing you enhanced security and performance

    25 décembre 2024, par Daniel Crough — Latest Releases

     As we tie a bow on 2024, we’re delighted to share our final gift of the year. Matomo 5.2.0 comes wrapped with new security features, privacy controls, and performance improvements to enhance your analytics experience.

     Enhanced security and privacy controls

    Image that shows the This Wasn’t Me link in password reset email.

    We’ve strengthened Matomo’s security framework with several key updates :

    • A new installer timestamp mechanism for on-premise installations creates a secure 72-hour installation window, preventing unauthorised access during setup
    • Enhanced account security features including a “This Wasn’t Me” link in password reset emails and location-based login alerts
    • The new Global List of Query URL parameters feature lets you refine tracking by excluding sensitive or unnecessary parameters from collection

    Tag manager improvements for better efficiency

    The Matomo Tag Manager now includes several features to streamline your workflow :

    • New Consent Management Platform (CMP) tags for CookieYes, OneTrust, and Axeptio, simplifying consent tracking implementatio.
    • A new copy feature for containers, tags, and triggers that reduces setup time and ensures consistency across multiple properties
    • Improved management tools for maintaining standardised tracking across websites

    Performance and reliability updates

    We’ve made technical improvements to enhance Matomo’s performance :

    Important to note : This release does not require any major database upgrade, making it easier to implement these improvements.

    Looking forward to 2025

    As we prepare to enter a new year, these updates reflect our ongoing commitment to providing privacy-focused analytics. We’re grateful to all our community contributors who have helped make this release possible. Special thanks to the Matomo community for their contributions to this release.

    Ready to explore these new features ? Update to Matomo 5.2.0 today and start the new year with enhanced security, efficiency, and control over your analytics data.

    From all of us at Matomo, thank you for being part of our journey. Here’s to another year of protecting privacy and empowering insights together !


    For a detailed overview of all changes and improvements, see our complete release notes or join the discussion in our community forums. If you’d like to contribute to making Matomo even better, learn more about getting involved with our open-source project.