Last active
October 1, 2023 18:49
-
-
Save Xitsa/c6808c51ae92a91150eb2e4bf8578f5b to your computer and use it in GitHub Desktop.
Перекодируем m4b
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Использовать примерно так, | |
на примере файла Robert "Robert Zelazny - Lord of Light.m4b": | |
1. копируем все эти файлы во временную папку, | |
правим в них пути к ffmpeg, ffprobe, jq; | |
2. запускаем разбор | |
ParseChaptersM4b.bat "Robert Zelazny - Lord of Light.m4b" >> m4btomp3.bat | |
3) в m4btomp3.bat получим следующее содержание: | |
chcp 65001 | |
rem Сначала надо извлечь все разделы с помощью ffprobe | |
rem ParseChaptersM4b.bat <filename> | |
rem А потом соответственно подкорректировать строки по образцу | |
SET COMMON_META=-map_chapters -1 -metadata artist="Roger Zelazny" -metadata album="Lord of Light" | |
SET FFMPEG=C:\WorkProg\Encoders\ffmpeg\bin\ffmpeg.exe | |
SET ACODEC=-acodec libmp3lame -ar 44100 -ab 128k | |
%FFMPEG% -i %1 -ss 0.000000 -to 15.557000 %ACODEC% -vn %COMMON_META% -metadata track="1/9" -metadata title="Opening Credits" "1.Opening Credits.mp3" | |
%FFMPEG% -i %1 -ss 15.557000 -to 6215.354000 %ACODEC% -vn %COMMON_META% -metadata track="2/9" -metadata title="Chapter 1" "2.Chapter 1.mp3" | |
%FFMPEG% -i %1 -ss 6215.354000 -to 12047.139000 %ACODEC% -vn %COMMON_META% -metadata track="3/9" -metadata title="Chapter 2" "3.Chapter 2.mp3" | |
%FFMPEG% -i %1 -ss 12047.139000 -to 18330.110000 %ACODEC% -vn %COMMON_META% -metadata track="4/9" -metadata title="Chapter 3" "4.Chapter 3.mp3" | |
%FFMPEG% -i %1 -ss 18330.110000 -to 24290.835000 %ACODEC% -vn %COMMON_META% -metadata track="5/9" -metadata title="Chapter 4" "5.Chapter 4.mp3" | |
%FFMPEG% -i %1 -ss 24290.835000 -to 30342.327000 %ACODEC% -vn %COMMON_META% -metadata track="6/9" -metadata title="Chapter 5" "6.Chapter 5.mp3" | |
%FFMPEG% -i %1 -ss 30342.327000 -to 35932.833000 %ACODEC% -vn %COMMON_META% -metadata track="7/9" -metadata title="Chapter 6" "7.Chapter 6.mp3" | |
%FFMPEG% -i %1 -ss 35932.833000 -to 41426.094000 %ACODEC% -vn %COMMON_META% -metadata track="8/9" -metadata title="Chapter 7" "8.Chapter 7.mp3" | |
%FFMPEG% -i %1 -ss 41426.094000 -to 41454.074195 %ACODEC% -vn %COMMON_META% -metadata track="9/9" -metadata title="End Credits" "9.End Credits.mp3" | |
4) посмотрели m4btomp3.bat, поправили если надо общие метаданные и запускаем его | |
m4btomp3.bat "Robert Zelazny - Lord of Light.m4b" | |
Вот и всё, | |
тут вроде всё очевидно и при необходимости корректируется руками. | |
ffmpeg и ffprobe я брал здесь https://www.gyan.dev/ffmpeg/builds/ | |
jq — здесь https://jqlang.github.io/jq/download/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
chcp 65001 | |
rem Сначала надо извлечь все разделы с помощью ffprobe | |
rem ParseChaptersM4b.bat <filename> | |
rem А потом соответственно подкорректировать строки по образцу | |
SET COMMON_META=-map_chapters -1 -metadata artist="Roger Zelazny" -metadata album="Lord of Light" | |
SET FFMPEG=C:\WorkProg\Encoders\ffmpeg\bin\ffmpeg.exe | |
SET ACODEC=-acodec libmp3lame -ar 44100 -ab 128k | |
rem Ниже надо добавить выхлоп ParseChaptersM4b.bat |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@echo off | |
SET FFPROBE=C:\WorkProg\Encoders\ffmpeg\bin\ffprobe.exe | |
SET JQ=C:\WorkProg\Jq\jq.exe | |
%FFPROBE% -print_format json -show_chapters %1 2>nul | jq -r -f ParseChaptersM4b.jq |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.chapters as $chaps | .chapters[] | "%FFMPEG% -i %1 -ss \(.start_time) -to \(.end_time) %ACODEC% -vn %COMMON_META% -metadata track=\"\(.id + 1)/\($chaps|length)\" -metadata title=\"\(.tags.title)\" \"\(.id + 1).\(.tags.title).mp3\"" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment