[FFmpeg-user] Is it possible to write MXF KLV flag for Platform (3c.08)

Christoph Gerstbauer christoph.gerstbauer at gmail.com
Wed Dec 11 17:00:10 EET 2019


Hello Community,

I am creating a IMX D10 file in MXF OP1a with following syntax and it works
perfect to create a SMPTE conform file:

-map 0:v -map 0:a -c:v mpeg2video -s 720x608 -r 25 -pix_fmt yuv422p -aspect
4:3 -minrate 50000000 -maxrate 50000000 -b:v 50000000 -g 1 -flags
+ildct+low_delay -intra_vlc 1 -lmin 1 -mblmin 1 -non_linear_quant 1 -ps 1
-qmin 1 -qmax 5 -top 1 -dc 10 -bufsize 2000000 -rc_init_occupancy 2000000
-rc_max_vbv_use 1 -rc_min_vbv_use 1 -c:a pcm_s16le -ar 48000 -ac 8 -f
mxf_d10 -timecode 12:34:56:11 -metadata "creation_time=2019-12-10T15:37:56"
-max_muxing_queue_size 400 -colorspace bt470bg -color_range tv
-color_primaries bt470bg -color_trc gamma28

BUT: ;)
What I am missing is the MXF header is a KLV which describes the PLATFORM
on which it was created (Windows/Linux).
I use that as historical information metadata for long term archiving.

The KLV flag I am talking about is: 3c.08 Platform (MXF Identification)

A typical MXF Dump extract of this KLV would look like:

  [ k = Platform
  3c.08, l =    12 (000c) ]
       0  00 77 00 69 00 6e 00 33 00 32 00 00                .w.i.n.3.2..

or

  [ k = Platform
  3c.08, l =    66 (0042) ]
       0  00 4c 00 69 00 6e 00 75 00 78 00 20 00 32 00 2e    .L.i.n.u.x.
.2..
      10  00 36 00 2e 00 31 00 38 00 2d 00 33 00 34 00 38
 .6...1.8.-.3.4.8
      20  00 2e 00 31 00 36 00 2e 00 31 00 2e 00 65 00 6c
 ...1.6...1...e.l
      30  00 35 00 20 00 78 00 38 00 36 00 5f 00 36 00 34    .5.
.x.8.6._.6.4
      40  00 00


I know that the ffmpeg community does not recommend to write such data due
security reasons.

But I am a user which can live and need that FLAG (for archiving reasons)
and I it would be awesome to have just the OPTION to write it ->
-> Is there a syntax to force writing this KLV flag like "-metadata
platform=win32"? Or something else I can use?
-> If there is no syntax to write it, would it be possible to add it in the
ffmpeg code so that the user has to turn it ON for force the writing
(true/false, 1/0 option)?

br
Christoph


More information about the ffmpeg-user mailing list