Действительно ASF не ограничивает в выборе кодеков. А ASF это считай что WMV. Не знал.> ASF является контейнером мультимедиа и не содержит указаний на то, каким образом данные должны быть закодированы, а только определяет структуру потока данных. В этом отношении ASF заменяет формат контейнера AVI. Это расширяемый формат, который может содержать данные, закодированные при помощи различных кодеков, и поддерживает синхронизацию потоков. Особенностью формата ASF является возможность воспроизведения непосредственно в момент загрузки данных по сети, то есть потокового воспроизведения. Для использования данного формата необходимо лицензирование у фирмы Microsoft.
Кстати, можно легко узнать, кодировалось ли официальным кодеком от Microsoft или ffmpeg. У MS первой дорожкой почему-то всегда идет аудио, то есть будет вот так (нумерация начинается с нуля):
Stream #0:0: Audio
Stream #0:1: Video
А у ffmpeg как обычно. Ну и ffmpeg может кодировать далеко не все профили WMV/WMA. Зато он может использовать такие параметры (битрейт, частоту дискретизации), которые не поддерживает официальный кодек, у которого много дурацких ограничений в WMA.
Кстати, ffmpeg может создавать WMV (ASF) с нелинейные таймкодами. Это когда в контейнере указывается для плеера пропустить, например, 3 кадра видео или 500 мс звука. Если плеер это не выполнит, то получится рассинхрон. Плееры обычно учитывают таймкоды контейнера, а вот конвертеры не все (ffmpeg based учитывают, а avisynth based нет: MeGUI, XviD4PSP5). Так вот SMPlayer/VLC играли такой WMV нормально, а Windows Media Player малость расплющило: у него тональность звука изменилась в месте "аномалии", видно скорость поменял или частоту дискретизации звука.