如何使用 FFMPEG 将自定义元数据添加到 MXF?

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

我正在尝试将自定义元数据添加到 FFMPEG 中的 MXF。我可以获取要通过的语法,然后在命令输出期间列出我的元数据,但是当我稍后 运行 文件上的 FFMPEG 以检查元数据不存在时。只有 material_package_name 会坚持下去。这对 MXF 来说是不可能的吗?

命令:

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 #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

输出运行检查文件:

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

解决方法是使用 comment_ 前缀:

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"
  • 至少需要 FFmpeg 4.2。
  • IRT D-10 不允许用户评论,因此这不适用于 mxf_d10,但它适用于 mxf 和 mxf_opatom.