我有一本有声读物的 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.m4b
where仍然无济于事。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