[О блоге]
[наверх]
[пред]
[2022-11-14 20:17:41+03:00]
[3ceaaf31a5fea22e03c95d202c439a9194c0a20e]
Темы: [book][multimedia][tip][zsh]
Разделить аудиокнигу на части
Скачал я тут аудиокниги. Одна книга -- один файл. Но, благо, с
метаинформацией о частях (к сожалению в MP4 контейнере, а не Matroska).
Надо разделить на много файлов, так как ни на одном своём
MP3-проигрывателе нельзя быстро отмотать, например, на час вперёд.
FFmpeg-овская утилита ffprobe может выдать метаинформацию в JSON
формате. А дальше в цикле вызываю ffmpeg для создания набора WAV файлов.
Предварительно полность. декомпрессировав весь звук, потому что каждый
вызов ffmpeg с "перемоткой" вперёд -- отъедает кучу CPU, это медленно.
ffprobe -i *.m4b -print_format json -show_chapters > json
ids=`gojq ".chapters[-1].id" < json`
ffmpeg -i *.m4b -map_metadata -1 -ac 1 -y wav.wav
for i ({0..$ids}) {
start=`gojq ".chapters[$i].start" < json`
start=$(( $start / 1000 ))
finish=`gojq ".chapters[$i].end" < json`
finish=$(( $finish / 1000 ))
finish=$(( $finish + 1 - $start ))
ffmpeg -i wav.wav -ss ${start}s -t ${finish}s -y \
`printf "%03d" $(( $i + 1 ))`.wav
}
rm wav.wav
normalize *.wav
[оставить комментарий]