在 ffmpeg 复制期间删除 x264 版权信息

在 ffmpeg 复制期间删除 x264 版权信息

我正在尝试使用 ffmpeg 从生成的 mp4 文件中删除版权字符串(版权字符串已存在于 avi 文件中)。

我有一个输入 avi,我想让“可流式传输”删除所有元数据所以我用了:

$ ffmpeg -i input.avi -map 0 -movflags faststart -map_metadata -1 -codec copy output.mp4

查看输出,它似乎是“干净的”:

$ ffprobe output.mp4
[...]
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.20.100
  Duration: 01:36:21.74, start: 0.000000, bitrate: 2036 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 704x396, 1392 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
    Side data:
      audio service type: main

但如果仔细观察:

$ strings -50 output.mp4  | sort -u
x264 - core - H.264/MPEG-4 AVC codec - Copyleft 2003-2010 - http://www.videolan.org/x264.html

和:

$ strings -50 output.mp4  | wc
   1320   15840  125400

有没有办法从我的目标 mp4 电影中删除这 1320 个版权字符串?


更新:据用户 Deltik 称,此版权字符串是在函数 x264_sei_version_write 中设置的:

在 x264_encoder_headers 中是硬编码的:

但由于 ffmepg 文档似乎声称可以删除单位:

我想知道是否可以从 H.264 流中删除现有的版权字符串(例如节省一些磁盘空间)?

相关内容