Ljudspelare till Android som klarar långa filer

avatarex

Helmgast
Joined
18 Dec 2000
Messages
4,239
Location
Göteborg
Jag håller på att indexera gamla inspelade radioprogram i form av tretimmars-mp3or. Tyvärr har jag märkt att både VLC och Musicolet har svårt med tidsangivelser när det är så stora filer. Det står angivet att filen är 2 timmar och 52 minuter när den är tre timmar, eller så varierar den angivna längden under uppspelning.

Är det någon som har ett tips på en ljudspelare till Android som klarar tidsangivelser för långa ljudfiler?
 

Hägerstrand

Tror fortfarande på 7WA
Joined
2 Dec 2022
Messages
1,711
(Fritt ur minner från >10 år sen när jag orkade nörda med sånt här, så jag kan minnas fel och saker kan ha ändrats. Ber om ursäkt om det här är ett goddag yxskaft-svar och jag förklarar saker du tycker är uppenbara)

Jag tror att det här är lättare att lösa i filerna än i spelaren. MP3-filer har en duration-tagg med längden i. Om den taggen saknas så räknar spelaren ut längden genom att dividera filstorleken med bitrate. Om det är en VBR-fil så varierar bitrate i filen, så då måste den läsa igenom hela filen för att kolla alla separata samples längder, så mjukvaran gör i stället en uppskattning som bara blir någon halvsekund fel om filen är en vanlig låt, men större ju längre filen är.

Så det är både lättare och mer rätt om du använder en encoder som lägger in duration-taggen ordentligt. Jag vet inte vad du använder nu, men när jag lyssnade på ljudböcker från… alternativa leverantörer så hade jag ett ffmpeg-script som sparade om filen utan att ändra ljudkodningen (så innehållet blev oförändrat) och fick då rätt längd. Datorn som det scriptet kördes på är borta sen länge, men om du är bekväm med att köra ffmpeg från kommandorad så är det nog inte så svårt att hitta rätt argument.
 

avatarex

Helmgast
Joined
18 Dec 2000
Messages
4,239
Location
Göteborg
(Fritt ur minner från >10 år sen när jag orkade nörda med sånt här, så jag kan minnas fel och saker kan ha ändrats. Ber om ursäkt om det här är ett goddag yxskaft-svar och jag förklarar saker du tycker är uppenbara)

Jag tror att det här är lättare att lösa i filerna än i spelaren. MP3-filer har en duration-tagg med längden i. Om den taggen saknas så räknar spelaren ut längden genom att dividera filstorleken med bitrate. Om det är en VBR-fil så varierar bitrate i filen, så då måste den läsa igenom hela filen för att kolla alla separata samples längder, så mjukvaran gör i stället en uppskattning som bara blir någon halvsekund fel om filen är en vanlig låt, men större ju längre filen är.

Så det är både lättare och mer rätt om du använder en encoder som lägger in duration-taggen ordentligt. Jag vet inte vad du använder nu, men när jag lyssnade på ljudböcker från… alternativa leverantörer så hade jag ett ffmpeg-script som sparade om filen utan att ändra ljudkodningen (så innehållet blev oförändrat) och fick då rätt längd. Datorn som det scriptet kördes på är borta sen länge, men om du är bekväm med att köra ffmpeg från kommandorad så är det nog inte så svårt att hitta rätt argument.
Det här forumet är bäst, men det har jag haft på känn i 25 år nu...

Du har helt rätt att problemet ligger i att filen har variabel bitrate utan korrekt tag. Jag googlade runt lite och hittade följande script som löser problemet. Tack så jättemycket för hjälpen!

ffmpeg -i "audio.mp3" -acodec copy "audio_fixed.mp3"
 
Top