使用 ffmpeg 将章节元数据添加到有声读物

使用 ffmpeg 将章节元数据添加到有声读物

我有一本有声读物的 m4a、m4b 和 mp4 版本(视频 mp4 版本只有整个书的封面)。我正在尝试使用 ffmpeg 将章节元数据添加到有声读物中。我已尝试以下方法,但 Apple Books 无法使用所有这些方法识别章节: ffmpeg -i input.m4a -i chapters.txt -map_metadata 1 -codec copy output.m4a类似于chapters.txt

[CHAPTER]
TIMEBASE=1/1000
START=1
END=448000
title=Chapter 1

[CHAPTER]
TIMEBASE=1/1000
START=448001
END= 3883999
title=Chapter 2

[CHAPTER]
TIMEBASE=1/1000
START=3884000
END=4418000
title= Chapter 3

我还尝试将其拆分为许多 m4a 文件,然后将它们组合成一个 m4b 文件,但使用包含所有拆分文件的ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.m4bwhere仍然无济于事。mylist.txt

我希望最终输出是 M4B 文件。如何添加章节信息,同时以 M4B 格式输出最终文件?

答案1

你应该写

ffmpeg -i input.m4a -i chapters.txt -map 0 -map_metadata 1 -c copy output.m4b

操作数解释:

  • -i input.m4a- 第一个输入文件(索引 = 0)
  • -i chapters.txt- 第二个输入文件(索引 = 1)
  • -map 0- 将所有流从第一个输入文件映射到输出文件
  • -map_metadata 1- 将元数据从第二个输入文件映射到输出文件
  • -c copy- 不要重新编码数据
  • output.m4b- 输出文件

chapters.txt还可能包含其他元数据,例如:

;FFMETADATA1
title=Book title
artist=Author name

[CHAPTER]
TIMEBASE=1/1000
START=0
END=538300
title=Intro

[CHAPTER]
TIMEBASE=1/1000
START=538300
END=2460687
title=Chapter 1

[CHAPTER]
TIMEBASE=1/1000
START=2460687
END=3541787
title=Chapter 2

相关内容