aspose.info
PL

Czym jest plik SMK? Jak otworzyć, odtworzyć i konwertować wideo Smacker

Zaktualizowano

Zrozumienie Smacker (.smk): Klasyczny format wideo złotej ery gier PC

Jeśli grałeś w gry wideo na PC w połowie do końca lat 90. lub na początku lat 2000 — takich jak Diablo, StarCraft, Baldur’s Gate lub Warcraft II — napotkałeś format wideo Smacker (.smk).

Zanim sprzętowo przyspieszone dekodowanie MPEG i dedykowane wielordzeniowe procesory stały się standardem w komputerach osobistych, odtwarzanie płynnego, zsynchronizowanego wideo pełnoklatkowego (FMV) z wielościeżkowym dźwiękiem cyfrowym było ogromną przeszkodą obliczeniową. Standardowe napędy CD-ROM przesyłały dane z umiarkowaną prędkością 150 do 300 KB/s (prędkości 1x‑2x), a typowe procesory 486 lub wczesne Pentium nie były w stanie obsłużyć obciążających kodów transformacyjnych.

Aby to rozwiązać, RAD Game Tools opracowało Smacker, wysokowydajną architekturę wideo zoptymalizowaną specjalnie pod dekompresję wyłącznie programową. Surowe lub enkapsulowane pliki wideo wyprodukowane w tym łańcuchu posiadają rozszerzenie pliku .smk.

1. Czym jest plik SMK?

Plik .smk jest własnościowym kontenerem multimedialnym i strumieniem wideo stworzonym przez RAD Game Tools (obecnie część Epic Games). Wprowadzony około 1994 roku, Smacker pozwalał deweloperom strumieniować pełnoklatkowe filmy w 256 kolorach bezpośrednio z jednoprzędnikowych CD-ROM‑ów, bez utraty klatek i zacięć systemu.

W przeciwieństwie do współczesnych kodeków międzyklatkowych, które mocno opierają się na arytmetyce zmiennoprzecinkowej i dyskretnych transformacjach cosinusowych (DCT), Smacker został zaprojektowany tak, aby działał prawie wyłącznie przy użyciu operacji całkowitoliczbowych, tablic przeglądowych i niskopoziomowych procedur asemblera x86. Dominował w filmach gier lat 90., aż do momentu, gdy RAD Game Tools wprowadził jego 24‑bitowy, true‑colorowy następca, Bink Video (.bik), w 1999 roku.

2. Główne cechy kodeka Smacker

Trwałe dziedzictwo techniczne Smackera wynika z jego dopasowanego balansu między niską złożonością obliczeniową a wiernością wizualną na sprzęcie z indeksowanymi kolorami:

Kwantyzacja palety indeksowanej 8-bitowej

W połowie lat 90. zdecydowana większość wyświetlaczy PC działała w trybach VGA lub SVGA z 256 kolorami (paleta 8‑bitowa). Smacker przyjął to ograniczenie. Zamiast przechowywać 24‑bitowe wartości RGB i zmuszać system operacyjny do wolnego ditheringu w czasie rzeczywistym, Smacker kompresował klatki wideo bezpośrednio względem dynamicznych palet 256‑kolorowych.

Morfowanie i cykliczne zmiany palety klatka po klatce

Smacker obsługił płynne aktualizacje palety pomiędzy klatkami. Jeśli w grze scena przerywana przeszła z jasnego, dziennego otoczenia do ciemnej jaskini, plik .smk mógł wprowadzać lokalne zmiany palety lub całkowite wymiany palety na określonych klatkach kluczowych, unikając bandingu i zniekształceń kolorów.

Kwantyzacja wektorowa i dekompozycja blokowa

Klatki w strumieniu .smk są dzielone na bloki pikseli $4 \times 4$. Smacker wykorzystuje techniki kwantyzacji wektorowej połączone z kompaktowym zestawem trybów operacyjnych dla każdego bloku:

  • Pomiń: Zachowaj piksele z poprzedniej klatki.
  • Jednolity/Jednokolorowy: Wypełnij cały blok $4 \times 4$ jednym indeksem palety.
  • Dwukolorowy / Bitmask: Zdefiniuj dwa wpisy w palecie i użyj 16‑bitowej maski do mapowania każdego piksela.
  • Pełne Dane: Bezpośrednio przechowuj szczegółowe sekwencje pikseli, gdy występuje złożony ruch.

Ta klasyfikacja na poziomie bloków pozwalała scenom z statycznym tłem i lokalizowaną akcją (taką jak mówiące głowy lub przewijane menu) na kompresję do pomijalnych przepływów danych.

Natywne multipleksowanie dźwięku wielościeżkowego

Smacker był jednym z pierwszych formatów skoncentrowanych na grach, które obsługiwały zintegrowany dźwięk wielokanałowy i wielościeżkowy. Programiści mogli przeplatać skompresowany dźwięk mono lub stereo bezpośrednio obok fragmentów wideo. Ta architektura obsługiwała:

  • Natywny nieskompresowany dźwięk PCM.
  • Własna, adaptacyjna kompresja audio oparta na DPCM firmy RAD (kompresująca dźwięk do 4-bitowej reprezentacji przy minimalnym obciążeniu CPU).
  • Niezależne ścieżki językowe dla międzynarodowych lokalizacji gier bez duplikowania podstawowej ścieżki wideo.

Asymetryczny projekt (szybka dekompresja ponad szybkie kodowanie)

Algorytmy kompresji Smackera były celowo asymetryczne: kodowanie wymagało znacznego czasu i optymalizacji matematycznej, ale dekompresja potrzebowała jedynie minimalnej liczby cykli CPU. Skromny komputer 486 o częstotliwości 33 MHz mógł w czasie rzeczywistym dekodować wideo Smacker o szybkości 15‑30 klatek na sekundę, zachowując synchronizację dźwięku.

3. Podsumowanie kluczowych cech

AtrybutSpecyfikacja
DeweloperRAD Game Tools (przejęte przez Epic Games w 2021 roku)
Wstępna wersja1994
Rozszerzenie pliku.smk
NastępcaBink Wideo (.bik, .bk2)
Głębia kolorów8-bit indeksowany (256 wybieralnych kolorów na klatkę)
Metoda TransformacjiKwantyzacja wektorowa przestrzenna ($4 \times 4$ podział bloków)
Kompresja CzasowaDopasowywanie bloków międzyklatkowych z śledzeniem cyklu palety
Format AudioLiniowy PCM, Smacker 4-bitowy DPCM, kanały wielościeżkowe
Główne zastosowanie w przemyśleSceny przerywnikowe w grach wideo, wstępne filmy, animowane loga
Obsługa dekodowaniaWbudowane poprzez FFmpeg, Libavcodec, RAD Video Tools

4. Jak otworzyć i odtworzyć pliki wideo .smk

Ponieważ nowoczesne odtwarzacze multimedialne nie dostarczają już domyślnej obsługi starszych 8‑bitowych wideo z gier, standardowe aplikacje takie jak Windows Media Player czy QuickTime nie będą w stanie otworzyć plików .smk. Możesz odtwarzać je niezawodnie przy użyciu następujących narzędzi:

Metoda 1: VLC Media Player (wieloplatformowy)

VLC zawiera natywną obsługę dekodowania wideo i audio Smacker za pośrednictwem libavcodec FFmpeg:

  1. Pobierz i uruchom VLC Media Player.
  2. Przeciągnij i upuść plik .smk bezpośrednio do okna VLC.
  3. Uwaga: Jeśli kolory wydają się nadmiernie nasycone lub przesunięte, przyspieszenie sprzętowe wideo VLC można tymczasowo wyłączyć w Tools > Preferences > Input / Codecs, aby mapper kolorów w oprogramowaniu renderował bezpośrednio 8‑bitową paletę.

Metoda 2: FFplay (wiersz poleceń)

Jeśli masz zainstalowany pakiet FFmpeg, dołączone narzędzie ffplay jest najszybszym i najdokładniejszym sposobem renderowania strumieni .smk:

ffplay cutscene.smk

Metoda 3: The RAD Video Tools (Windows)

RAD Game Tools nadal oferuje zestaw narzędzi The RAD Video Tools:

  1. Pobierz i zainstaluj The RAD Video Tools z oficjalnej strony Epic Games / RAD.
  2. Uruchom narzędzie i przejdź w systemie plików, aby zaznaczyć docelowy plik .smk.
  3. Kliknij przycisk Play, aby obejrzeć filmik z oryginalnym, autentycznym skalowaniem i timingiem palety.

5. Jak tworzyć i konwertować wideo .smk

Czy nadal możesz tworzyć natywne pliki .smk?

Współcześni programiści rzadko tworzą dziś oryginalne pliki .smk, ponieważ nowoczesny sprzęt łatwo dekoduje 4K 10-bitowy HEVC lub AV1. Jednakże, jeśli tworzysz oprogramowanie homebrew, modyfikujesz klasyczne gry lub budujesz retro projekty na PC:

  • The RAD Video Tools zawiera starszy kompresor “Smack”. Możesz wczytać nieskompresowany plik .avi lub sekwencję obrazów i zakodować go do formatu .smk.
  • Uwaga: FFmpeg zawiera natywny dekoder Smacker, ale nie zawiera natywnego enkodera Smacker ze względu na własnościowy, przestarzały charakter formatu.

Konwertowanie .smk do nowoczesnego MP4 (H.264 / AAC)

Aby zachować klasyczne sceny przerywnikowe lub przesłać je na nowoczesne platformy (takie jak YouTube lub przeglądarki internetowe), skonwertuj je do formatu MP4 przy użyciu FFmpeg:

# Convert classic Smacker video to modern universally compatible MP4
ffmpeg -i intro.smk -c:v libx264 -pix_fmt yuv420p -crf 18 -c:a aac -b:a 192k intro_restored.mp4

Wskazówka: Ponieważ .smk używa indeksowanych palet kolorów, wymuszenie -pix_fmt yuv420p zapewnia, że nowoczesne urządzenia mobilne i przeglądarki internetowe będą odtwarzać wideo bez błędów czarnego ekranu.

6. Najczęściej zadawane pytania (FAQ)

**Q1: Jaki był główny powód, dla którego twórcy gier używali plików SMK? Smacker umożliwiał płynne, zsynchronizowane odtwarzanie wideo na wolnych napędach CD-ROM i niskowydajnych procesorach bez konieczności użycia dekoderów sprzętowych.

**Q2: Jaka jest różnica między plikiem SMK a plikiem BIK? Smacker (.smk) jest ograniczony do 256 kolorów (8‑bit), podczas gdy jego następca, Bink Video (.bik), obsługuje pełną 24‑bitową prawdziwą kolorystykę i wyższe rozdzielczości.

**Q3: Czy nowoczesne przeglądarki internetowe mogą odtwarzać pliki .smk natywnie? Nie, nowoczesne przeglądarki internetowe nie obsługują kodeka Smacker i wymagają najpierw konwersji plików do formatu MP4 lub WebM.

**Q4: Czy plik SMK obsługuje jednocześnie wiele języków audio? Tak, kontener Smacker umożliwia wiele niezależnych ścieżek audio przeplatanych z wideo dla zlokalizowanych scenek.

**Q5: Kto jest obecnie właścicielem technologii wideo Smacker? Epic Games jest właścicielem Smacker po przejęciu firmy RAD Game Tools w styczniu 2021 roku.

7. Bibliografia i przydatne zasoby