{
  "date": "2026-10-31",
  "version": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers",
  "generation_sources": [
    "ffmpeg -hide_banner -loglevel error -n -threads 1 -f lavfi -i testsrc2=size=320x180:rate=10:duration=3 -f lavfi -i sine=frequency=440:duration=3 -f lavfi -i sine=frequency=880:duration=3 -map 0:v -map 1:a -map 2:a -c:v libx264 -pix_fmt yuv420p -c:a aac -shortest source.mov",
    "ffmpeg -hide_banner -loglevel error -n -threads 1 -i source.mov -map 0 -c copy source.mkv",
    "ffmpeg -hide_banner -loglevel error -n -threads 1 -i source.mov -map 0 -c copy source.mp4",
    "ffmpeg -hide_banner -loglevel error -n -threads 1 -f lavfi -i sine=frequency=440:duration=3 -ac 2 source.wav",
    "ffmpeg -hide_banner -loglevel error -n -threads 1 -i source.wav -c:a wmav2 source.wma",
    "ffmpeg -hide_banner -loglevel error -n -threads 1 -i source.mov -map 0:v:0 -map 0:a:0 -c:v mpeg4 -c:a mp3 source.avi",
    "ffmpeg -hide_banner -loglevel error -n -threads 1 -i source.mov -map 0:v:0 -map 0:a:0 -c:v wmv2 -c:a wmav2 source.wmv"
  ],
  "essais": [
    {
      "page": "wav-mp3",
      "source": "source.wav",
      "sortie": "wav.mp3",
      "commande": "ffmpeg -hide_banner -loglevel error -n -threads 1 -i source.wav -c:a libmp3lame -b:a 192k wav.mp3",
      "codecs": [
        "mp3"
      ],
      "duree_secondes": 3.030204,
      "octets": 73395,
      "decode_sans_erreur": true,
      "sha256_sortie": "1bae3d5db03f39b5616ea692ea7a0eeb9b75b1d0e40cf0151854948be74ded6d",
      "sha256_source": "2090161f9a0786ac17e5a9f0c63dd0e1cf35882497a8503b0d99e329e91e1d34"
    },
    {
      "page": "wma-mp3",
      "source": "source.wma",
      "sortie": "wma.mp3",
      "commande": "ffmpeg -hide_banner -loglevel error -n -threads 1 -i source.wma -c:a libmp3lame -q:a 2 wma.mp3",
      "codecs": [
        "mp3"
      ],
      "duree_secondes": 3.004082,
      "octets": 14738,
      "decode_sans_erreur": true,
      "sha256_sortie": "5dc9b81a751e064a55bf6ab51c22190784efb49815b551246b2e58b7a9e29ec6",
      "sha256_source": "9475afce4a006f4e941ecfb15f57f5ce14cc9fab82fb6836d783b0085aa59551"
    },
    {
      "page": "avi-mp4",
      "source": "source.avi",
      "sortie": "avi.mp4",
      "commande": "ffmpeg -hide_banner -loglevel error -n -threads 1 -i source.avi -map 0:v:0 -map 0:a:0 -c:v libx264 -c:a aac avi.mp4",
      "codecs": [
        "h264",
        "aac"
      ],
      "duree_secondes": 3.1,
      "octets": 88592,
      "decode_sans_erreur": true,
      "sha256_sortie": "07bceaa8dd0185dba386e887518a35b8ae9b7d3f49aadf62db52b4553faf530a",
      "sha256_source": "c053ead32f12c83db50936ad161078dd5277abf954ce9a519372d55fb27e6b0e"
    },
    {
      "page": "wmv-mp4",
      "source": "source.wmv",
      "sortie": "wmv.mp4",
      "commande": "ffmpeg -hide_banner -loglevel error -n -threads 1 -i source.wmv -map 0:v:0 -map 0:a:0 -c:v libx264 -c:a aac wmv.mp4",
      "codecs": [
        "h264",
        "aac"
      ],
      "duree_secondes": 3.063787,
      "octets": 87220,
      "decode_sans_erreur": true,
      "sha256_sortie": "fe569397403b9bbd16e4276772bdb19a0ae8e2f664f41e3cf14e1471ccbbd13f",
      "sha256_source": "3595f36189ae534104fbc1105c6108b7d95260d5442bf8393764538ccf9a9e94"
    },
    {
      "page": "mkv-mp4",
      "source": "source.mkv",
      "sortie": "mkv.mp4",
      "commande": "ffmpeg -hide_banner -loglevel error -n -threads 1 -i source.mkv -map 0:v:0 -map 0:a -c:v libx264 -c:a aac mkv.mp4",
      "codecs": [
        "h264",
        "aac",
        "aac"
      ],
      "duree_secondes": 3.040998,
      "octets": 108894,
      "decode_sans_erreur": true,
      "sha256_sortie": "38c36febef5454bb4c1bf957f3ca93f261eb8aa11396001680ba831e46d44b6b",
      "sha256_source": "f80309247b76decd597957c08a06f91a6f6c0e5367ca9352c59c984a079c88b8"
    },
    {
      "page": "mov-mp4",
      "source": "source.mov",
      "sortie": "mov.mp4",
      "commande": "ffmpeg -hide_banner -loglevel error -n -threads 1 -i source.mov -map 0:v:0 -map '0:a:0?' -c copy -movflags +faststart mov.mp4",
      "codecs": [
        "h264",
        "aac"
      ],
      "duree_secondes": 3.0,
      "octets": 82172,
      "decode_sans_erreur": true,
      "sha256_sortie": "68f6600e67f9fe9093e9059d2b06658be7ee28e10f90ce12d392b25dbe6b6ff7",
      "empreintes_flux_identiques": true,
      "sha256_source": "758c9386ad6d2fcf48c64d1aa619210ffb3ebaace5609e0a0a14c4d912ae24f6",
      "empreintes_flux": {
        "source": "0,v,SHA256=0391fd6d75059b077f1a2a5ac9903f19efbcb45331c52774e4658ae52f8e8d7a\n1,a,SHA256=5316a9e6dab9342cbb4edb18d08e808429a7482a66e135ea1f235ffca7ebd1a7",
        "sortie": "0,v,SHA256=0391fd6d75059b077f1a2a5ac9903f19efbcb45331c52774e4658ae52f8e8d7a\n1,a,SHA256=5316a9e6dab9342cbb4edb18d08e808429a7482a66e135ea1f235ffca7ebd1a7"
      }
    },
    {
      "page": "quicktime-mp4",
      "source": "source.mov",
      "sortie": "quicktime.mp4",
      "commande": "ffmpeg -hide_banner -loglevel error -n -threads 1 -i source.mov -map 0:v:0 -map 0:a:0 -c:v libx264 -c:a aac quicktime.mp4",
      "codecs": [
        "h264",
        "aac"
      ],
      "duree_secondes": 3.018005,
      "octets": 80250,
      "decode_sans_erreur": true,
      "sha256_sortie": "d20f60b1b80ec9a3d0cec703802df571b841139e5ec4d33bf42545646df130a7",
      "sha256_source": "758c9386ad6d2fcf48c64d1aa619210ffb3ebaace5609e0a0a14c4d912ae24f6"
    },
    {
      "page": "mp4-mp3",
      "source": "source.mp4",
      "sortie": "audio.mp3",
      "commande": "ffmpeg -hide_banner -loglevel error -n -threads 1 -i source.mp4 -map 0:a:1 -vn -c:a libmp3lame -q:a 2 audio.mp3",
      "codecs": [
        "mp3"
      ],
      "duree_secondes": 3.056327,
      "octets": 14194,
      "decode_sans_erreur": true,
      "sha256_sortie": "8b0cd567bd7f7b15da2334b983fe8a525f4d49b8f41d119de505940d0bec3f74",
      "sha256_source": "d62cc6a2684c9af782550b7e91c269e7de5da38b17a56fe45f2aac57578e91e8"
    },
    {
      "page": "mp4-webm",
      "source": "source.mp4",
      "sortie": "copie.webm",
      "commande": "ffmpeg -hide_banner -loglevel error -n -threads 1 -i source.mp4 -map 0:v:0 -map 0:a:0 -c:v libvpx-vp9 -crf 32 -b:v 0 -c:a libopus copie.webm",
      "codecs": [
        "vp9",
        "opus"
      ],
      "duree_secondes": 3.026,
      "octets": 70861,
      "decode_sans_erreur": true,
      "sha256_sortie": "dc70295602c92055e3612312c29c3dc65e94f7ae21360974571f1b11bf585098",
      "sha256_source": "d62cc6a2684c9af782550b7e91c269e7de5da38b17a56fe45f2aac57578e91e8"
    },
    {
      "page": "video-gif",
      "source": "source.mp4",
      "sortie": "extrait.gif",
      "commande": "ffmpeg -hide_banner -loglevel error -n -threads 1 -i source.mp4 -t 3 -filter_complex_threads 1 -filter_complex 'fps=10,scale=480:-1:flags=lanczos,split[a][b];[a]palettegen[p];[b][p]paletteuse' extrait.gif",
      "codecs": [
        "gif"
      ],
      "duree_secondes": 3.0,
      "octets": 788915,
      "decode_sans_erreur": true,
      "sha256_sortie": "0fc53fe738c0f9d5a27b210cda93fee45ceac16dfb42d106992c928354b16211",
      "largeur": 480,
      "hauteur": 270,
      "images": 30,
      "sha256_source": "d62cc6a2684c9af782550b7e91c269e7de5da38b17a56fe45f2aac57578e91e8"
    }
  ],
  "cas_negatif": {
    "commande": "ffmpeg -v error -n -i muet.mp4 -map 0:a:0 -vn -c:a libmp3lame impossible.mp3",
    "echec_attendu": true,
    "message": "Stream map '0:a:0' matches no streams.\nTo ignore this, add a trailing '?' to the map.\nFailed to set value '0:a:0' for option 'map': Invalid argument\nError parsing options for output file impossible.mp3.\nError opening output files: Invalid argument\n"
  },
  "limites": "Sources synthétiques de 3 secondes. Structure, durée, codecs et décodage contrôlés. Pas de jugement humain de qualité sonore, visuelle ou de synchronisation. Aucun test des interfaces HandBrake, Audacity ou QuickTime, ni HDR, DRM, sous-titres ou fichiers endommagés."
}