[FFmpeg-devel] [PATCH] avformat/flvenc: allow to write qualifying metadata as number

Gyan Doshi ffmpeg at gyani.pro
Tue Feb 21 06:47:14 EET 2023



On 2023-02-20 10:10 pm, Anton Khirnov wrote:
> Quoting Gyan Doshi (2023-02-19 09:13:55)
>> On 2023-02-14 06:21 pm, Gyan Doshi wrote:
>>>
>>> On 2023-02-14 03:35 pm, Anton Khirnov wrote:
>>>> Quoting Gyan Doshi (2023-02-11 12:02:51)
>>>>> The FLV format can store metadata as numbers which are used and handled
>>>>> by many streaming platforms.
>>>>>
>>>>> Now, metadata values can be sent as AMF Number type if
>>>>> 1) tag key starts with "num_"
>>>>> 2) value is scanned and can be represented as a double.
>>>>>
>>>>> Written tag will have "num_" prefix removed if written as AMF Number.
>>>> Using the normal metadata dict for structured data seems hacky to me.
>>>> Wouldn't it be better to add a private dict-type muxer option for this?
>>> The numerical metadata, like other string meta in FLV can change
>>> during streaming, so it will be
>>> reloaded and refreshed. Once you suggested to shift the loading
>>> metadata from file + reload options
>>> to fftools, this was the way to identify such metadata, since format
>>> contexts and AVStream only support
>>> one AVDictionary and entries will have to be commingled
>>>
>>> And this isn't really structured data. We are re-encoding how some of
>>> it is stored. It is still inputted
>>> by the user as strings. The prefix is a cheap hack to clearly identify
>>> such keys.
>>>
>>> (The other option would be add AVDictionary value 'types' and all
>>> associated signalling and tooling,
>>> which seems useful in the long run but overkill for this.)
> We have way too many hacks already, because everbody's looking for a
> quick solution and ignores longterm maintainability.
> I don't think this patch should go in.

1) What is the 'slow solution' for this case?

2) What long-term maintenance issues do you see with this patch?
(The FLV format is no longer actively developed. Last spec update is >10 
years.  flvenc only receives bug fixes and API/code harmonization updates
  The user has to know of and deliberately add the prefix, so intent is 
clear. There's no chance of accidentally handling other entries.)

The other narrow-scope option I see is to add a flvenc option, which 
when set, checks every value, and writes it as a AMF Number if scanned 
as a pure number.

Regards,
Gyan



More information about the ffmpeg-devel mailing list