# Advanced Systems Format

Advanced Systems Format (ASF, precedentemente noto come Advanced Streaming Format o Active Streaming Format) è un formato contenitore proprietario sviluppato da Microsoft per l'audio e il video digitale, utilizzato in particolare per lo streaming. ASF fa parte del framework Windows Media.
Il formato non specifica come un filmato deve essere codificato poiché esso non è un codec, bensì specifica la struttura con cui debbono essere pacchettizzati il video e/o l'audio. Questo significa che il flusso multimediale può essere codificato con molteplici codec e quindi memorizzato in un container nel formato ASF. Al di là di differenze di carattere prettamente tecnico, può essere paragonato ad altri formati di container multimediali come QuickTime, AVI e Ogg. Uno degli obiettivi di questo formato è il supporto al playback da server con contenuti multimediali (come ad esempio server HTTP) e da dischi di storage locali.
Il formato ASF è basato su sequenze di byte identificati attraverso un identificatore globale (GUID).
I file più comuni contenuti in file ASF sono Windows Media Audio (WMA) e Windows Media Video (WMV).
I file ASF possono contenere anche metadati come il nome dell'artista, dell'album e il genere, il regista di un film ecc. come gli ID3 tag dei file MP3.
I file che contengono solamente audio possono essere salvati usando l'estensione WMA e i file che contengono audio e video possono essere salvato con estensione WMV. Entrambi i formati possono comunque utilizzare l'estensione ASF.

## Proprietà del formato

La struttura del formato ASF è stata brevettata da Microsoft il 21 marzo del 2000, il codice relativo è chiuso e la sua l'implementazione o aggiornamento sono pertanto possibili solamente a Microsoft.
Si noti che del formato ASF esiste una versione, nota come "Versione 2", le cui specifiche sono state completamente pubblicate da Microsoft: ma a dispetto del nome, essa non è affatto compatibile con la prima versione e inoltre non è utilizzata in praticamente nessun sistema software o hardware, che implementano nella pressoché totalità dei casi la sola prima versione (ivi compresi prodotti di Microsoft stessa).

## Conversione di filmati da ASF ad AVI (ASF2AVI)

Molte videocamere digitali entry-level generano filmati MPEG-4 memorizzati nel container ASF. Questo rende difficoltosa la gestione di tali filmati con i comuni software di video editing. Una soluzione al problema è convertire il filmato utilizzando il container AVI, la quale è un'operazione che può essere semplice da realizzare se si dispone dei tool appropriati.
In particolare è necessario verificare che il filmato sia decodificabile attraverso MPlayer, un software di riproduzione video/audio disponibile per molte piattaforme. Se la risposta è affermativa, la soluzione al problema è utilizzare un tool che accompagna Mplayer, ovvero mencoder. Esso è in grado di ricodificare tutto quello che mplayer riesce a decodificare.
Un esempio: supponiamo di avere un filmato MPEG4 in ASF denominato input.asf e di volerlo ricodificare come XVID in AVI in un file denominato output.avi. È sufficiente allora utilizzare il seguente comando:
In tal modo il video sarà ricodificato in XVID, l'audio copiato senza modifiche, il tutto incapsulato in un AVI facilmente modificabile. Per i dettagli sulle opzioni utilizzabili da mencoder per la conversione, si consulti l'Homepage di MPlayer.

## Problemi con la conversione da ASF ad AVI

Spesso, utilizzando una semplice conversione di container (ovvero senza effettuare alcuna ricodifica del video ma una semplice "ripacchettizzazione" nel container AVI), il risultato può essere scadente se non del tutto impossibile da visualizzare. Per quanto controintuitivo, in questi casi si possono ottenere migliori risultati ricodificando il video in questione, utilizzando ad esempio il seguente comando:
In questo modo l'audio verrà copiato tal quale, mentre il video verrà ricodificato (nell'esempio, attraverso il codec XVID) con impostazioni qualitative molto elevate, che consentono di non perdere (apprezzabile) qualità nella conversione.
Si noti che anche in questo caso potrebbero presentarsi problemi di sincronia audio/video, che richiedono ulteriori trattamenti speciali (e.g. estrazione dell'audio e successiva ricodifica in un altro container con il video).
Una soluzione drastica, che spesso permette di risolvere questi problemi, consiste infatti nell'estrarre la traccia audio dal filmato e poi effettuare un nuovo multiplexing audio/video, compresa ricompressione dei due flussi:
In questo modo verrà prima estratto l'audio in formato PCM nel file input.wav e successivamente ricodificato assieme al video in formato (in questo caso) MP3 CBR (constant bit-rate) a 64 kbit/s. L'opzione "-mc 0" serve a disabilitare l'algoritmo comunemente utilizzato per la sincronia A/V da mencoder (in alcuni casi potrebbe essere sufficiente utilizzare questo parametro con le tecniche precedenti senza passare per l'estrazione e multiplexing dei due flussi).

## Formati multimediali supportati
### Formati video supportati

| | Supporto |
| MPEG-1 | Sì |
| MPEG-2 | Sì |
| MPEG-4 | Sì |
| WMV | Sì |
| RealVideo | Sì |
| Theora | Sì |
| Flash | No |

### Formati audio supportati

| | Supporto |
| MP3 | Sì |
| WMA | Sì |
| RealAudio | No |
| Vorbis | Si |
| AC3 | Sì |
| DTS | Sì |
| FLAC | No |

### Formati sottotitoli integrati supportati

| | Supporto |
| VobSubs | No |
| Ogg Writ | No |
| USF | No |