m4b-tool: m4b-tool doesn't convert on RPi
Hello,
I’ve been using m4b-tool for some time on my debian VM and it works like a charm. In an effort to move it from my VM and have it online 24/7, I installed it on my RPi 4.
I used the docker install, I validated the m4b using; docker run -it --rm -u $(id -u)😒(id -g) -v “$(pwd)”:/mnt m4b-tool --version returns: m4b-tool v.0.4.2
But when I try to use the merge command, I get this error everytime: `== load input files == reading metadata and streaminfo for file /mnt/test/test.mp3 ffmpeg -hide_banner -i /mnt/test/test.mp3 -f ffmetadata - /usr/local/bin/ffmpeg: line 1: syntax error: unexpected “(”
/usr/local/bin/ffmpeg: line 1: syntax error: unexpected “(”
ffmpeg -hide_banner -i /mnt/test/test.mp3 -f null - /usr/local/bin/ffmpeg: line 1: syntax error: unexpected “(”
/usr/local/bin/ffmpeg: line 1: syntax error: unexpected “(”
cover not found or not specified searching for description.txt in test checking file test/description.txt, realpath: file description.txt not found or too big preparing conversion with 4 simultaneous jobs, please wait… 0 remaining / 1 total, preparing next task | could not convert /mnt/test/test.mp3 to test-tmpfiles/1-test-finished.m4b trace: #0 phar:///usr/local/bin/m4b-tool/src/library/M4bTool/Command/MergeCommand.php(479): M4bTool\Command\MergeCommand->convertInputFiles() #1 phar:///usr/local/bin/m4b-tool/src/library/M4bTool/Command/MergeCommand.php(362): M4bTool\Command\MergeCommand->processInputFiles() #2 phar:///usr/local/bin/m4b-tool/src/library/M4bTool/Command/MergeCommand.php(194): M4bTool\Command\MergeCommand->processFiles() #3 phar:///usr/local/bin/m4b-tool/vendor/symfony/console/Command/Command.php(255): M4bTool\Command\MergeCommand->execute() #4 phar:///usr/local/bin/m4b-tool/vendor/symfony/console/Application.php(908): Symfony\Component\Console\Command\Command->run() #5 phar:///usr/local/bin/m4b-tool/vendor/symfony/console/Application.php(269): Symfony\Component\Console\Application->doRunCommand() #6 phar:///usr/local/bin/m4b-tool/vendor/symfony/console/Application.php(145): Symfony\Component\Console\Application->doRun() #7 phar:///usr/local/bin/m4b-tool/bin/m4b-tool.php(32): Symfony\Component\Console\Application->run() #8 /usr/local/bin/m4b-tool(10): require(‘phar:///usr/loc…’) #9 {main}`
Any help would be appreciated.
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 46 (21 by maintainers)
@krejko You may be very lucky, because @wader reported today, that his new
ffmpeg
Docker build is now multiarch and probably can be used forM1
/raspberry
. This would solve all the problems.Aha ok, then maybe worth testing performance
BTW tone looks useful. I do some mangling of media files from time to time to use in various mp3 players etc. Have you seen https://github.com/wader/fq? might be interesting to debug media files, was the reason it was created 😃
no mostly mp3 to fdkaac
If you only need ffmpeg without any or few dependecies and it seems to build fine with emulation for all the archs you need i would suggest you go that path. Maybe also make sure that resulting binary is not super slow for some reason. Do you mostly transmux or also transcode? transmux is usually mostly shuffle bytes around so IO-bound anyway.
@sandreas 👍 No problem
Problem with multi-arch, docker buildx or other “userland” emulated builds are that they are very slow and resources intensive. But it might work fine in your case to strip away most things. Also i’ve noticed that the emulated env is not perfect (/proc is from the host etc) so it might fool autoconf, cmake, random build scripts etc to not enable some optimization features.
BTW i’ve summerised the multi-arch issue and possible ways for a more modular here https://github.com/wader/static-ffmpeg/issues/217 https://github.com/wader/static-ffmpeg/issues/216
I updated the
Dockerfile
with the new mp4v2 URL, and it all compiled on my armhf NAS — thanks a lot! I think it would’ve worked with a Docker CLI argument too:@krejko Did this one work for you?
If so, I’ll update the docs.