Що таке файл QT?
Файл із розширенням .qt — це файл мультимедійного контейнера, який використовується фреймворком QuickTime для зберігання вмісту мультимедійного файлу. Формат файлу QuickTime (QTFF), розроблений Apple Inc., є мультимедійним файлом-контейнером, який містить аудіо, відео або текст для подальшого відтворення. Це формат вибору для обміну цифровими носіями між пристроями, програмами та операційними системами. Файли QT також зберігаються у форматі MOV, також розробленому компанією Apple Inc. Деякі програми, які можуть відкривати файли QT, включають програвач Apple QuickTime, медіапрогравач VLC і Media Player Classic з K- Полегшений пакет кодеків.
Формат файлу QT
QTFF є об’єктно-орієнтованим, що надає гнучку колекцію об’єктів для полегшення аналізу та розширення. Кожна доріжка у файлі QT містить медіа-потік у цифровому кодуванні або посилання на дані медіа-потоку, розташованого в іншому файлі. Ієрархічна структура даних, що складається з об’єктів, які називаються атомами, діє як контейнери треків. Специфікації формату файлу для формату файлу QT офіційно доступні Apple Inc для довідки розробника.
Опис медіа
Медіа-опис файлу QuickTime зберігається окремо від медіа-даних. Така інформація, як кількість доріжок, формат стиснення відео та інформація про час, зберігається в описі носія (також відомому як ресурс фільму, атом фільму або просто фільм). На медіадані посилається індекс у цій медіаструктурі. Медіа-дані — це фактичні зразки даних, наприклад відеокадри та аудіо-зразки, які використовуються у фільмі.
Атоми
Atom є основною одиницею файлу QuickTime. У будь-якому атомі перед будь-яким іншим полем є два основних поля: поля розміру та типу. Поле розміру показує розмір атома, а поле типу вказує тип даних, що зберігаються в атомі. За своєю природою атоми є ієрархічними, що означає, що один атом може містити інші атоми, які можуть містити інші. Розташування зразка атома показано на наступному зображенні.
Кожен атом має дві частини: заголовок і дані. Заголовок містить поля розміру та типу, а частина даних містить фактичні дані. Крім того, кожне поле пояснюється нижче:
Розмір атома
Заголовок і вміст атома позначаються 32-розрядним цілим числом, відомим як розмір атома. Поле розміру містить розмір атома в байтах, виражений 32-розрядним цілим числом без знаку.
Тип атома
Тип атома також відображається 32-розрядним цілим числом, яке здебільшого розглядається як чотирисимвольне поле з кнемонічним значенням, наприклад «moov» (0x6D6F6F76) для атома фільму або «trak» (0x7472616B) для трековий атом. Як тільки тип атома відомий, це дозволяє інтерпретувати його дані.
Структура файлу
Файли QT/MOV складаються з послідовних блоків. Кожна послідовність має 8-байтовий заголовок: 4-байтовий розмір послідовності (старший байт, перший старший байт) і 4-байтовий тип послідовності — один із попередньо визначених підписів: «ftyp», «mdat», «moov», «pnot». “, “udta”, “uuid”, “moof”, “free”, “skip”, “jP2 “, “wide”, “load”, “ctab”, “imap”, “matt”, “kmat”, “clip”, “crgn”, “sync”, “chap”, “tmcd”, “scpt”, “ssrc”, “PICT”. Перший фрагмент має тип “ftype” і має підтип зі зміщенням 8. MOV визначається підтипом, який має бути “qt “. Для створення файлу MOV потрібно повторювати фрагменти, доки не буде виявлено невідомий тип.
Ось зразок прикладу: Перевірка зразка двійкових даних файлу MOV стає очевидним, що він починається з підпису ftyp (шістнадцятковий: 66 74 79 70) зі зміщенням 4, який визначає тип файлу-контейнера QuickTime. Підтип файлу — qt~~ (шістнадцятковий: 71 74 20 20), що вказує на тип файлу MOV. Розмір першого блоку дорівнює 32 (шістнадцятковий: 00 00 00 20, старший байт, перший старший байт), розмір, розташований за зсувом 0. За зміщенням 32 (шістнадцятковий: 20) розташований другий фрагмент, який має розмір 8 і введіть mdat (шістнадцятковий код: 6D 64 61 74).
Наступний фрагмент розташований за зсувом 32+8#40 (шістнадцятковий: 28) і має розмір 3 263 028 (шістнадцятковий: 00 31 CA 34) і тип mdat (шістнадцятковий: 6D 64 61 74) зі зміщенням 44 (шістнадцятковий : 2C). Наступний фрагмент розташований за зміщенням 40 + 3 263 028#3 263 068 (шістнадцятковий: 00 31 CA 5C) і має розмір 21 189 (шістнадцятковий: 00 00 52 C5) і тип moov (шістнадцятковий: 6D 6F 6F 76) за зміщенням 1,836,019,574 (шістнадцятковий: 00 31 CA 60). Це останній фрагмент, тому загальний розмір файлу становить 3 263 068+21 189#3 284 257 байт.