我需要将目录中的多个(mp3 或 opus)音频加入到一个文件中。我还需要将每个音频保存/创建为一个章节。预期的结果是输出包含文件中的章节信息,因此可以使用 vlc 播放器等轻松跳到所需的章节
我需要在 Windows 上执行此操作,并找到了一种加入文件的方法,但它不保留章节信息:
cmd type *.opus | FFmpeg -i pipe: -c:a copy all.opus
谁能告诉我如何在 Windows 上保留章节?我不介意使用脚本,只要你告诉我如何创建和执行它,看到我是一个十足的菜鸟哈哈
预期的结果是它像有声读物一样工作。我已经看到 mp3 和 opus 都可以有章节,所以我想对所有具有多个文件的有声读物执行此操作。
我没有一个全合一的脚本,但我在单独的步骤中添加了章节信息。在 Linux 上,我用来将目录中的所有文件无损合并为单个 .mp3 或 .opus 文件的命令是
ffmpeg -f concat -safe 0 -i <(for f in ./*.mp3; do echo "file '$PWD/$f'"; done) -c copy ./output.mp3
我喜欢您为 Windows 提供的更简单的命令。
要将章节标记添加到单个文件,请使用 ffmpeg 和支持的metadata.txt 文件。我发现本指南很有帮助,但我必须将章节格式修改为三位数字才能与 Android 智能有声读物播放器正常工作。修改该指南,我创建了一个这种格式的文本文件
;FFMETADATA1
title=Some Title
artist=Some Author or Artist
album=Usually the same as the title
comment=http://some link # optional, I usually don't use this
CHAPTER001=00:00:00.000
CHAPTER001NAME=01 - Chapter 1 Name
CHAPTER002=00:15:32.010
CHAPTER002NAME=02 - Chapter 2 Name
CHAPTER003=00:30:33.012
CHAPTER003NAME=03 - Chapter 3 Name
...
这些时间范围是章节开始时间,而不是章节持续时间。如果该文件名为metadata.txt,请使用以下命令将章节写入.opus 文件(我还没有尝试过使用.mp3)。如果文件名中使用空格,请使用双引号。
ffmpeg -i "./Original File.opus" -i ./metadata.txt -map_metadata 1 -c:a copy "./ffmpeg/Output File with Spaces.opus"
上述语法适用于 Linux 或 WSL。使用 ffmpeg 帮助文件,您应该能够根据需要更改命令以在 Winblows 上工作。