Closed AudioAnchorite closed 1 month ago
So after further testing it would seem that the problem occurs on M4B that are beyond a certain length. I have re-processed a bunch of files from Audible and only the really lengthy ones are having the issue in iTunes.
When I run the command ffmpeg -i export.m4b -f ffmetadata metadata.txt
on export.m4b, I get this information at the end of the output:
Stream #0:0[0x1](eng): Audio: aac (LC) (mp4a / 0x6134706D), 22050 Hz, stereo, fltp, 62 kb/s (default)
Metadata:
creation_time : 2019-05-31T21:04:41.000000Z
handler_name : ?Apple Sound Media Handler
vendor_id : [0][0][0][0]
Stream #0:1[0x2](eng): Data: bin_data (text / 0x74786574) (default)
Metadata:
creation_time : 2019-05-31T21:04:41.000000Z
handler_name : ?Apple Text Media Handler
Stream #0:2[0x0]: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 2400x2400 [SAR 1:1 DAR 1:1], 90k tbr, 90k tbn (attached pic)
Unsupported codec with id 98314 for input stream 1
After uninstalling and reinstalling this repo and all dependencies, I can confirm that I am still getting this error with M4B audiobooks that are longer than a certain runtime (somewhere between 11 hours and 20 hours).
Also, what's really weird is that I redid the chapters on both of these files months ago without issue. I re-downloaded them from audible 2 days ago to polish the chapters a little more, and that's when the problem started.
I cannot imagine what in the world could have triggered this behaviour to start... I know it must have something to do with either ffmpeg or iTunes, but the only solution I can find is to transcode the files, which I am loath to do.
Sorry I don't have time right now to do any serious testing, but I can comment on things to try. I don't think it is related to duration, as I have had no issues with audiobooks that are much longer (my longest m4b is 61 hours and has no issues).
If you add it to a different media metadata viewer like MusicBee or mp3tag do you see same incorrect duration?
I have had issues with number of chapters in the past, previously my limit was 255 if I remember correctly, but I do have a working m4b with 325. When I have time I want to examine why that one works when others didn't.
I don't think number of chapters would be an issue with Dune, so perhaps related to character limit? I remember Dune had pretty long chapter titles at the end.
Other idea is bitrate, do you know if it is a constant or variable bit rate?
I'd try messing with a working audiobook of similar length and seeing if you can replicate the error using Dune's cuesheet on that file.
MediaInfo and Mp3tag show the proper information, as does the Windows File Properties window, and VLC Media Player. Only iTunes is displaying the glitch. Transcoding the file with dbPoweramp will solve the problem...
... Hold up! OK, so while typing this up, I was literally testing another hypothesis out, by downloading the AAX file for Unfinished Tales from Audible and then using InAudible's True Decrpyt to strip out the DRM (as opposed to using Libation--which is what I had been doing).
After InAudible finished, I took the M4B and ran it through your repo with a backed up cuesheet... Presto, a perfectly functioning M4B, with correct run time!
After repeating this procedure with Dune... yes, the file also works properly!
So, this is actually a very strange issue being caused by the interaction of a file, downloaded from Libation, with this repo's scripts. The file, if imported to iTunes directly from Libation's output, will not show a problem. Only when the chapters are processed using m4b_add-chapters.bat do I start to see the issue (I just tested both Libation files one more time after using InAudible--and can confirm that the issue was reproduced for the fifth time)!
I will post an issue on Libation's page to see if anyone knows what is going on. Perhaps ffmpeg was updated recently and Libation needs to be patched.
Interesting. I also use Libation and have seen no issues, but I avoid iTunes like the plague so I haven't looked at that aspect.
I forgot to update this. I ended up using a ffmpeg command to strip the M4B container from the AAC audio after I extract the CUE sheet, then create a new M4B container with another ffmpeg command before adding in the modified chapter metadata. That seems to fix the problem with iTunes misreading the track length.
Thanks for the updates. I've not encountered any issues with Libation and this repo myself (I use Libation files with this frequently), but I do not use iTunes at all so any compatibility issues introduced there I would not have encountered. Hopefully your info will be useful if anyone else encounters the same problem.
Two M4B audiobooks are displaying incorrect track lengths in iTunes and on iOS after processing the chapters with m4b_add-chapters.bat
The track lengths are both displaying track length upwards of 780 minutes
I see these messages after the processing completes:
Windows and VLC show correct track lengths.