feat(audio): embed cover image in audiobook files (#197)

* feat(audio): embed cover image in audiobook files

- Add audio cover embedder
- Implement format writers for M4B, M4A, MP3, and FLAC using ffmpeg
- Add library settings for audio file writes

Closes #145

* fix(library): disable audio file write by default and add ffmpeg timeout

Change the default value of file_write_audio_enabled from true to false in the database schema and migrations. Automatically disable audio writing in the UI if cover writing is toggled off. Add a 60-second timeout to the ffmpeg child process to prevent hanging when embedding covers.

---------

Co-authored-by: neon <18559658+neonsolstice@users.noreply.github.com>
This commit is contained in:
Chris Mansell
2026-06-02 12:40:27 -06:00
committed by GitHub
parent befe6ef466
commit d06e65a42b
27 changed files with 11489 additions and 92 deletions
+2
View File
@@ -70,6 +70,8 @@ export interface Library {
fileWritePdfMaxFileSizeMb: number;
fileWriteCbxEnabled: boolean;
fileWriteCbxMaxFileSizeMb: number;
fileWriteAudioEnabled: boolean;
fileWriteAudioMaxFileSizeMb: number;
fileRenameEnabled: boolean;
folders: LibraryFolder[];
bookCount?: number;