Adding checks in
MediaConch & MediaInfo

A use case

 

 

Jérôme Martinez, MediaArea

No Time to Wait 8, September 2024

What was already there?

Initial funding was a complete checker of MKV/FFV1/PCM

Further funding was on:

  • crosschecks (container vs raw stream)
  • complete checker of some new formats (USAC/xHE-AAC, ADM)
  • More supported formats (DVD in ISO files, ...)

Finding the right funding

A complete checker for a format is very expensive

We focused on funding the checks of the most classic errors (and easy to implement) on most common formats in the repository

Which checks in priority?

Catching a bad file transfer

  • Is a file complete?
  • Is a file coherent?
  • Are all the frames coherent?

An example

$ ffmpeg -i Example.wav -c copy Result.wav
[...]
video:0kB audio:256kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.029755%
$ ls -l
21757952 Example.wav
  262222 Result.wav

What happened?

The file is valid with 256 KiB of content from FFmpeg point of view

FFmpeg relied on a buggy WAV header

99% of content is lost during transcoding, without warning

You are warned by MediaInfo

Conformance errors : 2
WAVE : Yes
ýÿÿÿ : Yes
General compliance : Element size 4294901752 is more than maximal permitted size 1184 (offset 0x40034)
ùÿ : Yes
General compliance : File size 21757952 is less than expected size 4296672497 (offset 0x1B04F6)

Current issues

Output is based on specs, difficult to interpret

No difference between big issues and small issues:

  • null padding at the end
  • buggy last frame only

Next steps

Analysis and categorization of the results

More tips about the impact of the issue

More information about the impact of the issue

Stay in touch

MediaArea: https://mediaarea.net, @MediaArea_net

MediaConch: https://mediaarea.net/MediaConch, @MediaConch

Jérôme Martinez: jerome@mediaarea.net

Sponsoring program: https://mediaarea.net/SupportUs

Slides: https://mediaarea.net/Events

License: CC BY