[FFmpeg-devel] RFC - Uncompressed MP4

martin schitter ms+git at mur.at
Fri Oct 4 17:07:23 EEST 2024



On 04.10.24 15:11, Devon Sookhoo wrote:
> You're correct that I'm primarily interested in uncompressed data and not
> raw bayer sensor data. 

Yes -- it was more a rather extreme example to remind, that this file 
format isn't as simple and limited as many old and simple AV packaging 
solutions for uncompressed pixel data. This opens interesting new 
applications, but it also comes with lots of complex management and 
configuration demands.

> However, it seems like the  "-c:v rawvideo"  option
> is the convention in other formats to generate uncompressed video data. 

No -- I think, in the context of ffmpeg "rawvideo" is just used for 
io-data streams, files and pipes, which are not packed in any mediating 
container format. In this case you just get a "raw" stream of bytes 
without any information about the used format.

ISO/IEC 23001-17:2024 stands for the strict opposite: a way to precisely 
describe lots of possible variants of utilized image data pixel format 
and bit-packaging options.

> I'm
> just trying to follow the pattern and reuse what is already there. If there
> is a better option, then please suggest one.

Perhaps you should start by implementing the decoder side first.
That's at least the strategy, that I've chosen in case of 
DNxUncompressed to reduce complexity and concentrate on those aspects, 
which are essential for exchange with existing end user software resp. 
already existing implementations of this file format.

On the decoder side you also do not need any configuration options, 
because everything is already defined by the given input file, but it 
will nevertheless give you a vague orientation, what's really relevant 
for your own encoding design resp. some insight, which subset of the 
specification is actually used by others and required for compatibility 
and real world data exchange.

> If ISO/IEC 23001-17:2024 requires its own .c file, then perhaps that
> filename should use the term "uncompressed" instead of "raw". For example,
> mpeg_unc_enc.c

Yes -- although it's "uncompressed" and it's processing not much more 
than just trivial bit and byte juggling of unmodified pixel data, you 
will still have to implement specific codecs and package parsers for 
this particular file format to support the actual embedding within the 
surrounding containers.

martin



More information about the ffmpeg-devel mailing list