如何将章节添加到ogg文件?

时间:2018-03-19 13:33:39

标签: ffmpeg media multimedia ogg oggvorbis

我正在尝试将章节添加到包含vorbis音频的ogg文件中。

this link我复制了以下ffmpeg命令。

RefCell

我的metadata_OGG.txt文件如下所示。

ffmpeg -threads auto -y -i in.ogg -i metadata_OGG.txt -map_metadata 1 -codec copy out_METADATA.ogg

我收到以下错误。

CHAPTER00=00:00:00.000
CHAPTER00NAME=Chapter 01
CHAPTER01=00:00:05.000
CHAPTER01NAME=Chapter 02
CHAPTER02=00:00:10.000
CHAPTER02NAME=Chapter 03

但如果我将[ogg @ 00000000006d6900] Unsupported codec id in stream 0 Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument 更改为-codec copy,则ffmpeg中没有错误,但文本文件会转换为视频。即输出文件将具有静态视频帧,其中包含metadata_OGG.txt文本。另外,我在转换过程中会看到以下日志消息。

-acodec copy

有人请告诉我这里出了什么问题吗?

另外,我想知道将章节添加到ogg的正确方法是什么。我也搜索了一些工具。我没有得到任何。

2 个答案:

答案 0 :(得分:0)

我发现了这个问题。

要使ffmpeg正常工作,元数据文件应具有以下标题。

2015-05-02 22:54:00.000

我按照ffmpeg documentation for metadata中给出的步骤进行了操作。

但问题尚未完全解决。

通过上述步骤,我可以将元数据添加到mp4,mkv和其他容器文件,但不能添加到ogg文件。我不确定ffmpeg是否支持将章节添加到ogg文件。

答案 1 :(得分:0)

以下是使用 ffmpeg 4.3.1 对我有用的方法。

我有一个元数据文件,它几乎尊重ffmpeg's metadata file format

;FFMETADATA1
title=Evolution theory

[CHAPTER]
TIMEBASE=1/1000
START=0
END=
title=Darwin's point of view

[CHAPTER]
TIMEBASE=1/1000
START=78880
END=
title=Genghis Khan's children

请注意,文件格式需要 END 时间,但在我的情况下将其留空并没有影响。

现在我将章节信息添加到我的 opus/ogg 文件中:

ffmpeg -i darwin.opus.ogg -i darwin_chapters.txt -map_metadata 1 -c copy darwin_withchapters.opus.ogg

注意:如果您想覆盖文件中现有的章节信息,您可能需要在上面的 -map_chapters 1 命令行中添加一个 ffmpeg 参数。

这将创建文件 darwin_withchapters.opus.ogg。我检查章节信息是否真的被添加到文件中

opusinfo darwin_withchapters.opus.ogg

您可以将 ogginfo 用于 Ogg/Vorbis 文件。

这是结果(我删除了一些不相关的行):

ENCODER=opusenc from opus-tools 0.1.10
ENCODER_OPTIONS=--bitrate 112
title=Evolution theory
CHAPTER000=00:00:00.000
CHAPTER000NAME=Darwin's point of view
CHAPTER001=00:01:19.880
CHAPTER001NAME=Genghis Khan's children
[...]

给你。 ffmpeg 将其元数据文件格式转换为 the vorbis tag/comment chapter format

您也可以直接在 Vorbis Chapter Extension format 中写入元数据,并使用经典的 vorbiscomment 工具或其他允许编辑 opus/ogg 文件内标签的工具。