Zak44
Zak44

Reputation: 350

How can I add custom metadata to an MXF using FFMPEG?

I am trying to add custom metadata to an MXF in FFMPEG. I can get the syntax to go through and then my metadata to be listed during the command output, but when I later run FFMPEG on the file to check the metadata is not there. Only the material_package_name will stick. Is this not possible with MXF?

Command:

ffmpeg -i Test.mp4 -vf scale=1920:1080 -an -metadata project="TEST PROJECT" -metadata comment="Test Comment" -metadata artist="Test" -metadata material_package_name="TEST VID CLIP" -b:v 36M -f mxf_opatom "TEST_VID_CLIP.mxf"

Output from command:

    Output #0, mxf_opatom, to 'TEST_VID_CLIP.mxf':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41
    project         : TEST PROJECT
    comment         : Test Comment
    artist          : Test
    material_package_name: TEST VID CLIP
    encoder         : Lavf58.76.100
  Stream #0:0(eng): Video: dnxhd (DNXHD), yuv422p(tv, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 36000 kb/s, 24 fps, 24 tbn (default)
    Metadata:
      creation_time   : 2021-07-01T17:19:54.000000Z
      handler_name    : ?Mainconcept Video Media Handler
      vendor_id       : [0][0][0][0]
      encoder         : Lavc58.134.100 dnxhd

Output running a check on file:

ffmpeg -i TEST_VID_CLIP.mxf 
Input #0, mxf, from 'TEST_VID_CLIP.mxf':
  Metadata:
    operational_pattern_ul: 060e2b34.04010102.0d010201.10030000
    uid             : adab4424-2f25-4dc7-92ff-29bd000c0000
    generation_uid  : adab4424-2f25-4dc7-92ff-29bd000c0001
    company_name    : FFmpeg
    product_name    : OPAtom Muxer
    product_version_num: 58.76.100.0.0
    product_version : 58.76.100
    application_platform: Lavf (darwin)
    product_uid     : adab4424-2f25-4dc7-92ff-29bd000c0002
    toolkit_version_num: 58.76.100.0.0
    material_package_umid: 0x060A2B340101010501010D00136428C052947134A46428C00052947134A46400
    material_package_name: TEST VID CLIP
    timecode        : 00:00:00:00
  Duration: 00:01:05.71, start: 0.000000, bitrate: 36176 kb/s
  Stream #0:0: Video: dnxhd (DNXHD), yuv422p(tv, bt709/unknown/unknown, progressive), 1920x1080, SAR 1:1 DAR 16:9, 24 fps, 24 tbr, 24 tbn, 24 tbc
    Metadata:
      file_package_umid: 0x060A2B340101010501010D00136428C052947134A46428C00052947134A46401
At least one output file must be specified

Upvotes: 0

Views: 1662

Answers (1)

llogan
llogan

Reputation: 133773

Wrkaround is to use the comment_ prefix:

ffmpeg -i Test.mp4 -vf scale=1920:1080 -an -metadata comment_project="TEST PROJECT" -metadata comment_="Test Comment" -metadata comment_artist="Artist" -metadata material_package_name="TEST VID CLIP" -b:v 36M -f mxf_opatom "TEST_VID_CLIP.mxf"
  • Requires at least FFmpeg 4.2.
  • IRT D-10 does not allow user comments, so this will not work for mxf_d10, but it will work for mxf and mxf_opatom.

Upvotes: 1

Related Questions