2014-10-30 7 views
4

Кажется, что Taglib-sharp не поддерживает файлы более 4 ГБ. Я хочу редактировать такие вещи, как название, описания, обложки и т. Д. Для больших файлов HD-фильмов. Я нашел несколько комментариев в коде, который, по-видимому, подразумевает, что 64-битные файлы не поддерживаются. Кто-нибудь знает, если это когда-нибудь будет поддерживаться? Я также открыт для других предложений с точки зрения альтернативных библиотек.Поддержка большого файла файла Taglib-Sharp (64-битный файл)

https://bugzilla.gnome.org/show_bug.cgi?id=739272

+0

У вас есть доказательства этой проблемы? Если посмотреть на основной код обработки файлов здесь: https://github.com/mono/taglib-sharp/blob/master/src/TagLib/File.cs, он, похоже, обрабатывает файлы размером в 64 бита (используя «длинный» везде его размер и длина) –

+0

Да, конечно, проблема в том, что в 64-битном файле размер/смещение Atom отличается, поэтому, когда код пытается прочитать поле «MVHD» (первое поле, которое он ищет при открытии файла) он не получает правильные байты и не говорит о том, что он имеет недопустимый MPEG4. Да, я на 100% уверен, что это действительный mpeg4, используя другое программное обеспечение для правильного чтения и воспроизведения файла. –

+1

Ах, вы имеете в виду атом mvhd * размер * - 64-бит. У вас есть такой образец файла MP4, который мы можем найти где-то в Интернете? –

ответ

1

Хорошо, так вот проблема. Что происходит в том, что по умолчанию 64-битный MPEG4 имеет свой блок moov, расположенный после поля mdat. В taglib-sharp считываются только первые 32 байта файла, которых достаточно, если на первом месте появляется поле moov. Чтобы исправить это, вы можете использовать mp4box.exe для переключения позиций в поле или вы можете отметить поле «оптимизировать для Интернета» в ручном тормозе, который сначала разместит поле moov.