{
  "version": "2026-09-23-v18",
  "scope": "Deux essais sur fichiers artificiels. Le protocole de création, les commandes et les observations sont publiés ; aucune donnée personnelle.",
  "trials": [
    {
      "page": "avi-mp4",
      "software": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers",
      "platform": "Linux x86_64, ligne de commande",
      "date": "2026-09-23",
      "heading": "Essai AVI vers MP4 exécuté avec FFmpeg",
      "source": "source-avi.avi",
      "output": "resultat-avi.mp4",
      "sourceUrl": "/donnees/exemples/v18/source-avi.avi",
      "outputUrl": "/donnees/exemples/v18/resultat-avi.mp4",
      "sourceBytes": 605216,
      "bytes": 170335,
      "sourceSha256": "fbafbfe839d4cb4b43424a37c949ce52b6372b9e4e83fa04e72fe545ba3dfa8e",
      "sha256": "e991be9e1dff4a95fc5424766207a61f7028d9935ec38274542003e6d5ff6549",
      "command": [
        "ffmpeg",
        "-n",
        "-i",
        "source-avi.avi",
        "-map",
        "0:v:0",
        "-map",
        "0:a:0?",
        "-c:v",
        "libx264",
        "-crf",
        "20",
        "-pix_fmt",
        "yuv420p",
        "-c:a",
        "aac",
        "-b:a",
        "128k",
        "-movflags",
        "+faststart",
        "resultat-avi.mp4"
      ],
      "fixtureCommand": [
        "ffmpeg",
        "-n",
        "-hide_banner",
        "-loglevel",
        "error",
        "-f",
        "lavfi",
        "-i",
        "testsrc2=size=320x180:rate=25:duration=3",
        "-f",
        "lavfi",
        "-i",
        "sine=frequency=440:sample_rate=44100:duration=3",
        "-map",
        "0:v:0",
        "-map",
        "1:a:0",
        "-c:v",
        "mpeg4",
        "-q:v",
        "4",
        "-c:a",
        "pcm_s16le",
        "-shortest",
        "source-avi.avi"
      ],
      "cliExample": "ffmpeg -n -i \"source-avi.avi\" -map 0:v:0 -map \"0:a:0?\" -c:v libx264 -crf 20 -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart \"resultat-avi.mp4\"",
      "manifestUrl": "/donnees/exemples/v18/essais-fichiers.json",
      "observedSource": {
        "programs": [],
        "streams": [
          {
            "codec_name": "mpeg4",
            "codec_type": "video",
            "width": 320,
            "height": 180,
            "r_frame_rate": "25/1",
            "duration": "3.000000"
          },
          {
            "codec_name": "pcm_s16le",
            "codec_type": "audio",
            "sample_rate": "44100",
            "r_frame_rate": "0/0"
          }
        ],
        "format": {
          "duration": "3.000000"
        }
      },
      "observedOutput": {
        "programs": [],
        "streams": [
          {
            "codec_name": "h264",
            "codec_type": "video",
            "width": 320,
            "height": 180,
            "r_frame_rate": "25/1",
            "duration": "3.000000"
          },
          {
            "codec_name": "aac",
            "codec_type": "audio",
            "sample_rate": "44100",
            "r_frame_rate": "0/0",
            "duration": "3.000000"
          }
        ],
        "format": {
          "duration": "3.000000"
        }
      },
      "checks": [
        "Codecs de sortie H.264/AAC",
        "Dimensions 320 × 180",
        "Cadence 25 images/s",
        "Durée voisine de trois secondes",
        "Décodage intégral sans erreur FFmpeg"
      ],
      "result": "La source artificielle en mpeg4 avec une piste pcm_s16le a été réencodée en H.264/AAC. Le MP4 conserve 320 × 180 pixels et 25 images/s ; sa durée mesurée est 3,000000 s. Le fichier obtenu a été décodé intégralement sans erreur signalée par FFmpeg.",
      "limitations": "Essai de l’alternative FFmpeg, pas de HandBrake. Mire animée artificielle et son continu : ce contrôle ne valide pas une synchronisation parole/lèvres, une source entrelacée, plusieurs pistes, des sous-titres, une protection technique ou tous les lecteurs. Les réglages ne constituent pas une qualité universelle."
    },
    {
      "page": "wmv-mp4",
      "software": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers",
      "platform": "Linux x86_64, ligne de commande",
      "date": "2026-09-23",
      "heading": "Essai WMV vers MP4 exécuté avec FFmpeg",
      "source": "source-wmv.wmv",
      "output": "resultat-wmv.mp4",
      "sourceUrl": "/donnees/exemples/v18/source-wmv.wmv",
      "outputUrl": "/donnees/exemples/v18/resultat-wmv.mp4",
      "sourceBytes": 429713,
      "bytes": 162114,
      "sourceSha256": "d84775a64ba41066b5658e550f97964e77709bea796262562dde841a149348e9",
      "sha256": "93d5ceccc62397a7e321ed932837daaaf11e363bf364cb31879aa386db84e413",
      "command": [
        "ffmpeg",
        "-n",
        "-i",
        "source-wmv.wmv",
        "-map",
        "0:v:0",
        "-map",
        "0:a:0?",
        "-c:v",
        "libx264",
        "-crf",
        "20",
        "-pix_fmt",
        "yuv420p",
        "-c:a",
        "aac",
        "-b:a",
        "128k",
        "-movflags",
        "+faststart",
        "resultat-wmv.mp4"
      ],
      "fixtureCommand": [
        "ffmpeg",
        "-n",
        "-hide_banner",
        "-loglevel",
        "error",
        "-f",
        "lavfi",
        "-i",
        "testsrc2=size=320x180:rate=25:duration=3",
        "-f",
        "lavfi",
        "-i",
        "sine=frequency=440:sample_rate=44100:duration=3",
        "-map",
        "0:v:0",
        "-map",
        "1:a:0",
        "-c:v",
        "wmv2",
        "-q:v",
        "4",
        "-c:a",
        "wmav2",
        "-shortest",
        "source-wmv.wmv"
      ],
      "cliExample": "ffmpeg -n -i \"source-wmv.wmv\" -map 0:v:0 -map \"0:a:0?\" -c:v libx264 -crf 20 -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart \"resultat-wmv.mp4\"",
      "manifestUrl": "/donnees/exemples/v18/essais-fichiers.json",
      "observedSource": {
        "programs": [],
        "streams": [
          {
            "codec_name": "wmv2",
            "codec_type": "video",
            "width": 320,
            "height": 180,
            "r_frame_rate": "25/1",
            "duration": "3.046000"
          },
          {
            "codec_name": "wmav2",
            "codec_type": "audio",
            "sample_rate": "44100",
            "r_frame_rate": "0/0",
            "duration": "3.046000"
          }
        ],
        "format": {
          "duration": "3.092000"
        }
      },
      "observedOutput": {
        "programs": [],
        "streams": [
          {
            "codec_name": "h264",
            "codec_type": "video",
            "width": 320,
            "height": 180,
            "r_frame_rate": "25/1",
            "duration": "3.040000"
          },
          {
            "codec_name": "aac",
            "codec_type": "audio",
            "sample_rate": "44100",
            "r_frame_rate": "0/0",
            "duration": "2.995782"
          }
        ],
        "format": {
          "duration": "3.063787"
        }
      },
      "checks": [
        "Codecs de sortie H.264/AAC",
        "Dimensions 320 × 180",
        "Cadence 25 images/s",
        "Durée voisine de trois secondes",
        "Décodage intégral sans erreur FFmpeg"
      ],
      "result": "La source artificielle en wmv2 avec une piste wmav2 a été réencodée en H.264/AAC. Le MP4 conserve 320 × 180 pixels et 25 images/s ; sa durée mesurée est 3,063787 s. Le fichier obtenu a été décodé intégralement sans erreur signalée par FFmpeg.",
      "limitations": "Essai de l’alternative FFmpeg, pas de HandBrake. Mire animée artificielle et son continu : ce contrôle ne valide pas une synchronisation parole/lèvres, une source entrelacée, plusieurs pistes, des sous-titres, une protection technique ou tous les lecteurs. Les réglages ne constituent pas une qualité universelle."
    }
  ]
}
