首页 > 解决方案 > ffmpeg:设置“年”元数据等于另一个元数据变量(flac)的前 4 个字符

问题描述

我正在处理的 flac 文件有一个名为“发布日期”的属性,其值的格式为“YYYY-MM-DD”。

我可以从中获取“YYYY”并将年份变量设置为等于它吗?

    ffmpeg -i input.flac -metadata year= ??? -codec 复制 output.flac


额外的问题,是否可以在不创建新文件的情况下执行此操作?还是我必须创建一个新文件然后删除旧文件?

标签: ffmpegmetadata

解决方案


您必须分多个步骤执行此操作。

  1. 获取元数据ffprobe

    ffprobe -loglevel error -show_entries format_tags="Date released" -of csv=p=0 input.flac
    

    结果类似于 2001-12-16。

  2. 处理输出以获得年份。你的操作系统/shell/脚本/编码语言是未知的,所以我会把这部分留给你。

  3. 添加元数据:

    ffmpeg -i input.flac -c copy -metadata year=2001 output.flac
    

额外的问题,是否可以在不创建新文件的情况下执行此操作?

不可能ffmpeg

还是我必须创建一个新文件然后删除旧文件?

是的。


推荐阅读