MediaInfo — информация о медиа-файле (кодек, битрейт, и пр.)

Здесь можно обсудить ваш любимый плагин.
User avatar
HaRT
Moderator
Posts: 11359
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 260 times
Been thanked: 405 times

MediaInfo — информация о медиа-файле (кодек, битрейт, и пр.)

Post by HaRT »

Latest post of the previous page:

2useven10 wrote: Fri 10 Oct, 2025 21:24 сделал загрузку в память полностью и открытие из буфера
На всякий случай отмечу, что видеофайлы на сотни гигабайтов совсем не редкость. И во многих форматах видео метаданные располагаются в конце файла или размазаны по файлу.
Это я к тому, что для подобных файлов подход с зачитыванием в память работать будет плохо — либо крайне долго (при полном считывании), либо некорректно (при частичном считывании).
P.S. С другой стороны, если сделать memory-mapped file и скармливать движку уже такую память, то это должно сработать в т.ч. для огромных файлов.
Last edited by HaRT on Fri 10 Oct, 2025 22:18, edited 1 time in total.
Reason: Добавлен постскриптум
Фар есть инструмент, а не нянька. © 2009 DrKnS
2useven10
Posts: 5426
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 21 times
Been thanked: 349 times

MediaInfo — информация о медиа-файле (кодек, битрейт, и пр.)

Post by 2useven10 »

HaRT,
1) Там сразу добавлены ограничения - не больше ~ 4G и половины свободной памяти.
2) Для x86 мапирование не поможет.
3) В принципе можно ещё делать попытку открыть в ACP (CreateFileA).
4) Полезность Exiv2 как такового вызывает у меня сомнения. Помимо студенческих выкрутасов с UTF16, в своё время пришлось отключить открытие через него нескольких видов как раз видеофайлов (.mkv в частности) - тупо подвисал или падал. Может и поправлено, проверять никакого желания нет.
Last edited by 2useven10 on Sat 11 Oct, 2025 01:53, edited 3 times in total.
User avatar
HaRT
Moderator
Posts: 11359
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 260 times
Been thanked: 405 times

MediaInfo — информация о медиа-файле (кодек, битрейт, и пр.)

Post by HaRT »

2useven10 wrote: Sat 11 Oct, 2025 00:42 Там сразу добавлены ограничения - не больше ~ 4G и половины свободной памяти
Можно было бы оставить этот подход только для файлов с «плохими»­­ путями, а файлы с «хорошими»­­ путями по-прежнему отдавать на чтение самому движку. Это позволило бы решительно снизить частоту случаев, когда приходится зачитывать файл в память.
2useven10 wrote: Sat 11 Oct, 2025 00:42 Для x86 мапирование не поможет
Если я правильно понимаю, оно всё же позволяет не считывать в память те части файла (с гранулярностью в размер страницы виртуальной памяти), к которым не было фактических обращений. Всё-таки зачитать в память 4 GB с HDD — это довольно долго.
Фар есть инструмент, а не нянька. © 2009 DrKnS
2useven10
Posts: 5426
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 21 times
Been thanked: 349 times

MediaInfo — информация о медиа-файле (кодек, битрейт, и пр.)

Post by 2useven10 »

Допилил...
Если путь 'хороший' filename == Unicode(Ansi(filename)) будет открытие Exiv2 по Ansi(filename).
Если плохой -- загрузка в память (до 1ГБ, если больше игнор) и открытие из буфера.
Last edited by 2useven10 on Sat 11 Oct, 2025 23:18, edited 1 time in total.
Post Reply

Return to “Обсуждение плагинов”