[FFmpeg-user] Some more thoughts on documentation

Jim DeLaHunt list+ffmpeg-user at jdlh.com
Mon Aug 24 10:20:59 EEST 2020


On 2020-08-23 11:07, Carl Zwanzig wrote:
> …I'm fairly sure that someone will object to a point below. Go ahead, 
> but also suggest something better….
> …Original content:
>> Process to create output docs:
>> Output organization & formats:
>> "Rules of the game"? …
>
This sounds like fun. I'll play!

I think it would help to state explicitly some fairly fundamental 
premises. We should state that documentation is important, and adds 
value to the project. Something along the lines of a vision and mission 
and values statement for the documentation effort. In most projects this 
would go without saying, but in the FFmpeg project I believe these 
premises aren't accepted by everyone. Sooner or later in some patch 
debate, we will have to appeal to these premises to justify a 
documentation change.

I think it would help to write down personas[1], in the sense of 
interaction design, to explain who we think reads the documentation. 
This will help us make decisions about what level of detail is 
appropriate, and what kind of material to include. One persona is the 
person who isn't interested in the details of digital video, they just 
want to convert from format A to format B, and heard ffmpeg could do 
that. Another persona is the digital video specialist who is looking for 
a versatile processing tool. Another persona is the system integrator 
connecting a camera type A to streaming channel B with FFmpeg providing 
the glue. Another persona is the devops expert at BigComputerCompany who 
is deploying FFmpeg to a cloud-based image processing pipeline. Another 
persona is the digital media software developer who is working on adding 
support for format X to Ffmpeg. And so on. By defining these personas, 
we defend their needs against those who might dismiss them as "lazy 
beginners".

I think it would help to articulate quality standards for the 
documentation. For instance, documentation must be complete. Every 
parameter to a filter or format must be included in the documentation, 
and no parameter may be in the documentation which is not supported by 
the software. Every data type or keyword accepted by a parameter must be 
defined in the documentation or via at most one click on a hyperlink. Etc.

I think it would help to come up with a different global structure for 
the documentation. Separate tutorial, and cookbook, and reference 
material. Build a chapter and section structure which suits the content 
we actually have (the present structure looks like the outcome of a lot 
of accretion over time without restructuring). Come up with a URL scheme 
that permits effective cross-linking to shared definitions, with URLs 
that are stable over time.

I think there is no escaping that people are going to be using a lot of 
different versions of FFmpeg. It is desirable to snapshot the 
documentation at major version changes, so that someone with an old 
version of FFmpeg has a chance of finding an old version of the docs 
that matches their software.

Those are a few thoughts to add to the conversation.

[1] 
https://www.interaction-design.org/literature/article/personas-why-and-how-you-should-use-them



More information about the ffmpeg-user mailing list