Recherche avancée

Médias (0)

Mot : - Tags -/optimisation

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

Autres articles (99)

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

  • HTML5 audio and video support

    13 avril 2011, par

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

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

Sur d’autres sites (7575)

  • FFMPEG Incredibly Slow On Windows Server 2016

    1er août 2019, par Ben Gardner

    I have a t2.small (2GB RAM, 1 vCPU) Amazon EC2 instance running a process using FFMPEG. It runs just fine ( 30 fps) on my computer (i7, 12GB RAM), but at around 2 fps on the server. Here’s the command :

    rescale_command = f'ffmpeg -i {srcVideo} -filter_complex \"scale={owidth}:{oheight}, setsar=1:1, pad={dim[0]}:{dim[1]}:{oofx}:{oofy}\" {destVideo}'

    I’ve tried uninstalling and reinstalling ffmpeg/ffprobe

    Edited per llogan’s request, I’ve also discovered that it’s relatively speedy towards the beginning (I’m rescaling 100 times over the course of the program) and slows down towards the end.

    It utilizes 100% of the CPU even from the beginning, though.

    Example command/output :
    ffmpeg -i media/8-1-2019/hi/dl-107.mp4 -filter_complex "scale=607:1080, setsar=1:1, pad=1920:1080:656:0" media/8-1-2019/hi/sl-107.mp4

    ffmpeg version 3.2 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 --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-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-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
     libavutil      55. 34.100 / 55. 34.100
     libavcodec     57. 64.100 / 57. 64.100
     libavformat    57. 56.100 / 57. 56.100
     libavdevice    57.  1.100 / 57.  1.100
     libavfilter     6. 65.100 /  6. 65.100
     libswscale      4.  2.100 /  4.  2.100
     libswresample   2.  3.100 /  2.  3.100
     libpostproc    54.  1.100 / 54.  1.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'media/8-1-2019/hi/dl-107.mp4':
     Metadata:
       minor_version   : 512
       major_brand     : isom
       compatible_brands: isomiso2avc1mp41
       comment         : vid:v09044ce0000bks3802jqrog167l3rf0
       encoder         : Lavf58.20.100
     Duration: 00:00:15.12, start: 0.000000, bitrate: 1046 kb/s
       Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 540x960 [SAR 1:1 DAR 9:16], 972 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 64 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    [Parsed_setsar_1 @ 00000000023ac840] num:den syntax is deprecated, please use num/den or named options instead
    [Parsed_setsar_1 @ 00000000023ad2c0] num:den syntax is deprecated, please use num/den or named options instead
    [libx264 @ 00000000023ad800] using SAR=1/1
    [libx264 @ 00000000023ad800] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
    [libx264 @ 00000000023ad800] profile High, level 4.0
    [libx264 @ 00000000023ad800] 264 - core 148 r2721 72d53ab - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'media/8-1-2019/hi/sl-107.mp4':
     Metadata:
       minor_version   : 512
       major_brand     : isom
       compatible_brands: isomiso2avc1mp41
       comment         : vid:v09044ce0000bks3802jqrog167l3rf0
       encoder         : Lavf57.56.100
       Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 29.97 fps, 30k tbn, 29.97 tbc (default)
       Metadata:
         encoder         : Lavc57.64.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
       Stream #0:1(und): Audio: aac (LC) ([64][0][0][0] / 0x0040), 44100 Hz, stereo, fltp, 128 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
         encoder         : Lavc57.64.100 aac
    Stream mapping:
     Stream #0:0 (h264) -> scale (graph 0)
     pad (graph 0) -> Stream #0:0 (libx264)
     Stream #0:1 -> #0:1 (aac (native) -> aac (native))
    Press [q] to stop, [?] for help
    frame=  453 fps=3.6 q=29.0 Lsize=    3016kB time=00:00:15.01 bitrate=1645.7kbits/s speed=0.12x
    video:2763kB audio:237kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.576820%
    [libx264 @ 00000000023ad800] frame I:6     Avg QP:20.93  size: 38467
    [libx264 @ 00000000023ad800] frame P:118   Avg QP:23.12  size: 11624
    [libx264 @ 00000000023ad800] frame B:329   Avg QP:25.19  size:  3725
    [libx264 @ 00000000023ad800] consecutive B-frames:  1.8%  2.6%  4.6% 90.9%
    [libx264 @ 00000000023ad800] mb I  I16..4: 16.4% 76.7%  6.9%
    [libx264 @ 00000000023ad800] mb P  I16..4:  2.3%  5.8%  0.9%  P16..4:  9.8%  3.8%  1.6%  0.0%  0.0%    skip:75.7%
    [libx264 @ 00000000023ad800] mb B  I16..4:  0.4%  0.7%  0.1%  B16..8:  9.5%  1.6%  0.3%  direct: 0.6%  skip:86.8%  L0:43.0% L1:50.8% BI: 6.2%
    [libx264 @ 00000000023ad800] 8x8 transform intra:67.4% inter:78.3%
    [libx264 @ 00000000023ad800] coded y,uvDC,uvAC intra: 32.5% 40.1% 9.4% inter: 2.7% 3.9% 0.1%
    [libx264 @ 00000000023ad800] i16 v,h,dc,p: 50% 25%  6% 19%
    [libx264 @ 00000000023ad800] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 38% 11% 27%  3%  3%  5%  3%  6%  3%
    [libx264 @ 00000000023ad800] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 43% 11% 12%  5%  7%  9%  4%  7%  3%
    [libx264 @ 00000000023ad800] i8c dc,h,v,p: 62% 11% 22%  5%
    [libx264 @ 00000000023ad800] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 00000000023ad800] ref P L0: 64.4% 14.3% 16.1%  5.2%
    [libx264 @ 00000000023ad800] ref B L0: 90.6%  7.5%  2.0%
    [libx264 @ 00000000023ad800] ref B L1: 97.7%  2.3%
    [libx264 @ 00000000023ad800] kb/s:1496.84
    [aac @ 0000000000628120] Qavg: 754.761
  • Interview de l'auteur du Livre sur Piwik : Ronan Chardonneau

    20 juillet 2012, par Piwik team — Community

    Ronan Chardonneau, auteur de Piwik : L'alternative Open Source en web analytique aux éditions ENI, répond aux questions de Matthieu Aubry le créateur de Piwik !


    Qu'est ce qui t'a poussé à écrire ce livre ?

    En fait il y a eu plusieurs choses. Tout d'abord je travaille au sein d'une structure un peu spéciale, notre agence web, inextcom travaille physiquement sur un plateau regroupant la plupart des acteurs de la ville de Nantes qui utilisent des logiciels libres. Toutes ses entreprises sont adhérentes d'une association qui s'appelle Alliance Libre. Quand je suis arrivé au sein de cette structure j'étais le seul à venir du monde du webmarketing. Le webmarketing tourne beaucoup autour de Google du coup je n'étais pas forcément vu d'un très bon oeil. Du coup j'ai voulu m'ouvrir sur ce qui se passait en dehors de Google Analytics est c'est ainsi que j'ai découvert Piwik. J'ai pas mal accroché sur cette technologie car elle est très intuitive.

    Je me suis penché sur cette solution et ai décidé de la proposer en tant que formation. Quelques mois après son apparition dans notre catalogue de formation nous avons été contacté par un grand compte français pour donner un formation. J'avais vraiment à cœur de fournir une formation de qualité, en un week end mon support de cours avait dépassé les 50 pages. Je suis arrivé le lundi matin au travail et j'ai dit, les gars on va écrire un livre sur Piwik. J'ai regardé ce qui s'était déjà fait à droite à gauche et il n'y avait qu'un seul livre au monde semble t il écrit sur le sujet. Je me suis dit qu'il pouvait être intéressant de démocratiser l'outil… et au revoir jolis petits week end et bonjour les nuits blanches :)

    Je voulais également être l'un des premiers auteurs sur cette solution car trop souvent ces ouvrages sont écrits par des anciens ingénieurs ou développeurs qui ont ensuite basculé dans le monde du marketing. Dans mon cas c'est le contraire je viens du marketing et ai basculé dans l'informatique, du coup ma vision du logiciel est purement orienté sur la façon dont je vais pouvoir extraire les informations pour mon analyse et non pas l'ensemble des fonctionnalités qui ont été développées pour le logiciel.

    Combien de temps ce projet de livre Piwik a t'il pris ?

    En fait j'adore écrire, et j'ai eu l'écriture plutôt facile pour ce livre. Le temps me manquait du coup j'ai décidé de l'écrire avec l'un de mes collègues : Germain Butrot. Le plus pénible dans l'écriture est que nous ne sommes pas développeurs du coup on a perdu pas mal de temps sur des soucis d'installation. Je dirai que rédiger ce livre nous a pris deux mois de travail.

    Combien de clients as tu introduits à Piwik ?

    Pas énormément, en fait les clients ont déjà fait leur choix de cette solution avant de s'engager chez nous, simplement qu'ils ne savent pas l'installer, le configurer, gérer la base de données etc. En fait il y a les clients qui n'ont pas encore réalisé oh combien la confidentialité de leurs données est critique et qu'il est dangereux de les confier à des tiers, ce qui représente 97% des sites Internet. Les 3% restants sont des entreprises qui en effet souhaitent se rapprocher au maximum du risque 0 en ce qui concerne la confidentialité des données. Nous introduisons la plupart de nos clients à Piwik, cependant ces derniers ont au final le choix entre une solution gratuite que tout le monde utilise et un hébergement de données payant pour atteindre un niveau de sécurité qu'ils ne considèrent pas comme critique.

    Ronan séance de dédicaces

    Le web analytique étant une discipline peu enseignée en France, le plus gros du travail est de faire réaliser aux webmasters que la notion de confidentialité est extrêmement importante. Je pense sincèrement que de plus en plus d'utilisateurs migreront sur des solutions telles que Piwik, tout simplement parce que le web analytique est une discipline en développement et que l'on commence à récupérer des données de plus en plus précieuses, il va donc falloir commencer à les protéger au maximum.

    Si tu avais le droit à un vœu, quelle serait la nouvelle fonctionnalité qui te plairait le plus dans Piwik ?

    Bonne question, en fait je pense qu'il y en a deux, personnellement je souhaiterais que l'on puisse créer les rapports de son choix en sélectionnant uniquement les données désirées. Cependant je pense que la fonctionnalité qui ferait beaucoup de bien pour la démocratisation de Piwik serait de pouvoir uniquement insérer le tagging dans les pages pour que Piwik commence à récolter les données. C'est principalement ce que je décris dans le livre, l'installation de Piwik est encore assez technique pour des personnes qui n'y connaissent rien. Les gens n'ayant pas encore saisi l'importance du web analytique sont à la recherche d'un outil qui en peu d'efforts peu être installé.

    Tu as beaucoup d’expérience en web marketing. Que nous conseilles tu pour le futur en terme de Marketing pour Piwik ?

    Je pense que Piwik a un potentiel énorme tout comme la plupart des projets open source populaires. Le problème c'est que ces projets ne savent pas encore communiquer auprès des personnes spécialisées dans le marketing. Le concept de l'open source n'est pas du coup connu du monde du marketing. Ce qui fait que lorsqu'un projet open source débarque sur le marché on a l'impression que seuls des personnes avec des connaissances en développement peuvent contribuer à ce projet alors qu'il existe énormément de missions que des personnes du marketing peuvent occuper au sein d'un tel projet : traduction, réalisation de bannières publicitaires, réalisation de pages de contenu pour en faire la promotion, remontée de fonctions importantes à intégrer etc

    De tous les projets Open Source que je connais je trouve que le CMS WordPress s'en sort le mieux, l'outil est très facile à prendre en main, assez intuitif, du coup nombreux sont les personnes du marketing a s'être familiarisé avec l'outil et à en faire des retours pour des développements de modules, de templates etc au final la communauté WordPress est énorme et le nombre de plugin impressionnant.

    Pour Piwik je pense qu'il pourrait être intéressant d'interroger des utilisateurs influents dans le monde du web analytique, de les inviter à utiliser Piwik et de nous faire un retour sur les fonctionnalités éventuelles à installer.


    Le livre sera t-il traduit ?

    Le livre devrait être traduit en espagnol et disponible sur ce marché d'ici 6 mois. Concernant les autres langues je suis actuellement à la recherche de traducteurs dans toutes les autres langues. Je suis prêt à céder mes droits de traduction à un prix modique, ce qui m'intéresse avant tout c'est la démocratisation de l'outil. Aussi n'hésitez pas à me faire si vous êtes volontaire ou avez des personnes volontaires dans votre entourage.

    Y aura t-il une version 2 du livre ?

    Très certainement une version avancée du livre verra le jour dans les prochaines années, tout dépend principalement des retours qui me seront fait par rapport à cet ouvrage, les demandes de personnalisation de code dont on m'aura fait la demande, le développement de Piwik…

    Merci Ronan pour ton travail de démocratisation sur Piwik, ton livre va vraiment permettre au projet de trouver une nouvelle cible en France… et on espère voir une Version 2 du livre dans quelques mois ! Je te souhate de bonnes ventes pour le livre et bonne contination pour tous tes projets.

    Le livre est en vente sur la FNAC, Amazon.fr, le site de l'éditeur.

    A voir aussi : Grand Jeu Concours 10 Livres Piwik à gagner !

  • FFmpeg encoding produces slightly incompatible MKV/MP4 container

    11 juin 2018, par james2048

    I’ve been using the FFmpeg libraries to read and write media files using the C API.

    So far, reading seems to be pretty straightforward. I am able to read frames which I can then process, convert to RGB, process, and then convert back to YUV420 to be encoded.

    The encoded files play back with VLC media player fine, and Windows Media Player if I have a codec pack installed. However, they do behave strangely : the stock Windows 10 player won’t play them, same for Adobe Premiere. Also thumbnailers don’t work on it.
    Basically it seems like nothing other than VLC or FFmpeg itself can play/process the file. I have seen this with both MP4 and MKV, so it is not a format-specific issue.

    The problems go away once you remux the file with FFmpeg, for example "ffmpeg -i input.mkv -c copy output.mkv". Everything can play the file correctly.
    Also, the "remuxing.c" sample from the official samples works as well, with the same library version and compilers that I’m using (Visual Studio 2017, FFmpeg compiled with MinGW). It will fix the file and make it playable in all software.

    I’m not sure what could be causing this. I also don’t understand what the remuxing "fixed". It must be a container issue as the frames aren’t touched by remuxing.
    I have analysed the output MKVs with FFprobe -show_packets. It seems to have budged the packet timestamps a little constant factor, and the output stream now has
    is_avc=true and nal_length_size=4 instead of is_avc=false and nal_length_size=0, but apart from that the files are identical.

    Now here’s the output of FFprobe with the 3 last test packets, stream info and format info for both streams. As you can see, they are identical except for a couple of field. But something in here must have been "fixed" during remuxing to make it work.

    [PACKET]
    codec_type=video
    stream_index=0
    pts=59050
    pts_time=59.050000
    dts=58890
    dts_time=58.890000
    duration=1
    duration_time=0.001000
    convergence_duration=N/A
    convergence_duration_time=N/A
    size=427
    pos=277358
    flags=__
    [/PACKET]
    [PACKET]
    codec_type=video
    stream_index=0
    pts=58970
    pts_time=58.970000
    dts=58970
    dts_time=58.970000
    duration=1
    duration_time=0.001000
    convergence_duration=N/A
    convergence_duration_time=N/A
    size=205
    pos=277792
    flags=__
    [/PACKET]
    [PACKET]
    codec_type=video
    stream_index=0
    pts=59130
    pts_time=59.130000
    dts=59050
    dts_time=59.050000
    duration=1
    duration_time=0.001000
    convergence_duration=N/A
    convergence_duration_time=N/A
    size=268
    pos=278004
    flags=__
    [/PACKET]
    [STREAM]
    index=0
    codec_name=h264
    codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
    profile=Main
    codec_type=video
    codec_time_base=1/2000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    width=720
    height=576
    coded_width=720
    coded_height=576
    has_b_frames=2
    sample_aspect_ratio=N/A
    display_aspect_ratio=N/A
    pix_fmt=yuv420p
    level=50
    color_range=unknown
    color_space=unknown
    color_transfer=unknown
    color_primaries=unknown
    chroma_location=left
    field_order=progressive
    timecode=N/A
    refs=1
    is_avc=false
    nal_length_size=0
    id=N/A
    r_frame_rate=299/12
    avg_frame_rate=1000/1
    time_base=1/1000
    start_pts=0
    start_time=0.000000
    duration_ts=N/A
    duration=N/A
    bit_rate=N/A
    max_bit_rate=N/A
    bits_per_raw_sample=8
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=737
    DISPOSITION:default=1
    DISPOSITION:dub=0
    DISPOSITION:original=0
    DISPOSITION:comment=0
    DISPOSITION:lyrics=0
    DISPOSITION:karaoke=0
    DISPOSITION:forced=0
    DISPOSITION:hearing_impaired=0
    DISPOSITION:visual_impaired=0
    DISPOSITION:clean_effects=0
    DISPOSITION:attached_pic=0
    DISPOSITION:timed_thumbnails=0
    TAG:DURATION=00:00:59.211000000
    [/STREAM]
    [FORMAT]
    filename=testEncLeft.mkv
    nb_streams=1
    nb_programs=0
    format_name=matroska,webm
    format_long_name=Matroska / WebM
    start_time=0.000000
    duration=59.211000
    size=278349
    bit_rate=37607
    probe_score=100
    TAG:COMMENT=Slickline Player Export
    TAG:ENCODER=Lavf57.83.100
    [/FORMAT]

    And the info after remuxing, which works :

    [PACKET]
    codec_type=video
    stream_index=0
    pts=59050
    pts_time=59.050000
    dts=58890
    dts_time=58.890000
    duration=1
    duration_time=0.001000
    convergence_duration=N/A
    convergence_duration_time=N/A
    size=427
    pos=277418
    flags=__
    [/PACKET]
    [PACKET]
    codec_type=video
    stream_index=0
    pts=58970
    pts_time=58.970000
    dts=58970
    dts_time=58.970000
    duration=1
    duration_time=0.001000
    convergence_duration=N/A
    convergence_duration_time=N/A
    size=205
    pos=277852
    flags=__
    [/PACKET]
    [PACKET]
    codec_type=video
    stream_index=0
    pts=59130
    pts_time=59.130000
    dts=59050
    dts_time=59.050000
    duration=1
    duration_time=0.001000
    convergence_duration=N/A
    convergence_duration_time=N/A
    size=268
    pos=278064
    flags=__
    [/PACKET]
    [STREAM]
    index=0
    codec_name=h264
    codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
    profile=Main
    codec_type=video
    codec_time_base=1/2000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    width=720
    height=576
    coded_width=720
    coded_height=576
    has_b_frames=2
    sample_aspect_ratio=N/A
    display_aspect_ratio=N/A
    pix_fmt=yuv420p
    level=50
    color_range=unknown
    color_space=unknown
    color_transfer=unknown
    color_primaries=unknown
    chroma_location=left
    field_order=progressive
    timecode=N/A
    refs=1
    is_avc=true
    nal_length_size=4
    id=N/A
    r_frame_rate=299/12
    avg_frame_rate=1000/1
    time_base=1/1000
    start_pts=0
    start_time=0.000000
    duration_ts=N/A
    duration=N/A
    bit_rate=N/A
    max_bit_rate=N/A
    bits_per_raw_sample=8
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=737
    DISPOSITION:default=1
    DISPOSITION:dub=0
    DISPOSITION:original=0
    DISPOSITION:comment=0
    DISPOSITION:lyrics=0
    DISPOSITION:karaoke=0
    DISPOSITION:forced=0
    DISPOSITION:hearing_impaired=0
    DISPOSITION:visual_impaired=0
    DISPOSITION:clean_effects=0
    DISPOSITION:attached_pic=0
    DISPOSITION:timed_thumbnails=0
    TAG:DURATION=00:00:59.212000000
    [/STREAM]
    [FORMAT]
    filename=fixedLeft.mkv
    nb_streams=1
    nb_programs=0
    format_name=matroska,webm
    format_long_name=Matroska / WebM
    start_time=0.000000
    duration=59.212000
    size=278409
    bit_rate=37615
    probe_score=100
    TAG:COMMENT=Slickline Player Export
    TAG:ENCODER=Lavf58.12.100
    [/FORMAT]

    Here is how I’m setting up the output context, for reference : it’s pretty standard, following the sample code.

    int ret;

    avformat_alloc_output_context2(&outputFormatCtx, nullptr, nullptr, outFilePath.c_str());

    av_dict_set(&outputFormatCtx->metadata, "comment", "FFmpeg Export", 0);

    if (!outputFormatCtx)
    {
       LOG_AND_THROW("Could not allocate output context");
    }

    outputVideoStream = avformat_new_stream(outputFormatCtx, nullptr);
    outputVideoStream->time_base = AVRational{ 1, AV_TIME_BASE }; // Stream timebase will be used by codec

    if (!outputVideoStream)
    {
       LOG_AND_THROW("Failed allocating output stream");
    }

    // defaults to "libx264"
    AVCodec *outCodec = avcodec_find_encoder_by_name(selectedCodecName.c_str());

    if (!outCodec)
    {
       LOG_AND_THROW("Failed finding output codec");
    }

    AVDictionary *opts = nullptr;

    if (selectedCodecName == "libx264")
    {
       opts = getX264CodecOptions();
    }

    encoderCtx = avcodec_alloc_context3(outCodec);

    if (!encoderCtx)
    {
       LOG_AND_THROW("Failed to allocate the encoder context");
    }

    encoderCtx->width = width;
    encoderCtx->height = height;
    encoderCtx->pix_fmt = AV_PIX_FMT_YUV420P;
    // time base for the frames we will provide to the encoder
    encoderCtx->time_base = AVRational{ 1, AV_TIME_BASE };
    // convert framerate from double to rational
    encoderCtx->framerate = AVRational{ (int)(frameRate * AV_TIME_BASE), AV_TIME_BASE};

    // Match encoderCtx time base for the stream
    outputVideoStream->time_base = encoderCtx->time_base;

    ret = avcodec_open2(encoderCtx, outCodec, &opts);

    if (ret < 0)
    {
       LOG_AND_THROW_PARAM("Cannot open video encoder for stream: %d", ret);
    }

    // Fill in some params for MP4 stream, details about encoder
    ret = avcodec_parameters_from_context(outputVideoStream->codecpar, encoderCtx);

    if (ret < 0)
    {
       LOG_AND_THROW_PARAM("Failed to copy encoder parameters to output stream: %d", ret);
    }

    if (outputFormatCtx->oformat->flags & AVFMT_GLOBALHEADER)
    {
       encoderCtx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
    }

    av_dump_format(outputFormatCtx, 0, filePath.c_str(), 1);

    // End of encoder settings, setting up MP4
    if (!(outputFormatCtx->oformat->flags & AVFMT_NOFILE))
    {
       ret = avio_open(&outputFormatCtx->pb, outFilePath.c_str(), AVIO_FLAG_WRITE);

       if (ret < 0)
       {
           LOG_AND_THROW_PARAMSTR("Could not open output file '%s'", outFilePath.c_str());
       }
    }

    ret = avformat_write_header(outputFormatCtx, nullptr);

    if (ret < 0)
    {
       LOG_AND_THROW_PARAM("Error occurred when opening output file for writing: %d", ret);
    }

    Can anyone help me figure out why the container is not playing properly ?

    Thanks in advance.

    -James