170 похожих чатов

Всем привет. Вопрос не столько про питон, сколько про работу с

файлами в целом, но питон может всё, может и с моим кейсом кто-то сталкивался?
Суть такая - нужно по размеру mp3-файла посчитать его длительность и сравнить с эталоном (проверить полный ли файл т.е.).
На первый взгляд всё казалось достаточно просто - считываем размер файла через os, считываем битрейт через mutagen, делим, получаем искомое.
По факту всё чуть сложнее - реальный размер всегда чуть больше чем должен был бы быть, причём разница не постоянная - я предполагаю что дело именно в мета-информации (тэгах). Но количество этих тегов разное, поэтому постоянную величину тоже не посчитать (одна запись может быть склеена из 1, 5 или n-кусков.).
Кто-нибудь знает как посчитать именно размер тела-записи, т.е. длительность аудио-записи?
P.S. На всякий случай - считать длительность записи из тегов не вариант, т.к. там неккоректная информация.

5 ответов

23 просмотра

нужно по размеру mp3-файла посчитать его длительность и сравнить с эталоном 😧

info.length UPD: а, мимо тегов...

vbr слышал?

Если в тегах неправильная, только декодировать весь файл и смотреть что получилось. Ну либо как ты сказал в случае cbr

там есть padding

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта