0

For non .avi A/V sources (as .mp3, .mp4, etc.) there are (at least) 2 possibilities for reading those media files in AviSynth (in Windows):

  • The built-in media filter DirectShowSource(), using Microsoft's DirectShow media architecture.
  • The AviSynth Plugin FFmpegSource2() alias FFMS2() using FFmpeg and nothing else.

What are advantages and disadvantages of them?
Which is more reliable, frame / sample accurate, etc.?

MarianD
  • 13,096
  • 12
  • 42
  • 54
  • @Mulvya, thank you very much - your link gives me another useful info, too. – MarianD Jan 07 '18 at 17:03
  • Hi, this seems to be a question about software development so I vote to migrate this to Stackoverflow. You will get better answers there, this is not really on-topic here. – timonsku Jan 18 '18 at 14:02

1 Answers1

1

DirectShowSource() uses codecs currently installed and enabled for the particular filetype in your system. Usually that means same codecs that fire up when you open that videofile in your mediaplayer, including the audiostream. If you have some special postprocessing options enabled there they will be in effect too.

FFmpegSource2(), as you mentioned, is not dependent on system codecs and instead uses FFMPEG. By default it also ignores the audio even if it's present in the source container.

A notable difference is that DirectShowSource() does not have frame-accurate seeking, which becomes critical if you're trying to do some trimming with per-frame precision or, say, mix two recording of the same event so that every frame would match. FFMPEG has the option to generate .ffindex files for improved seeking capabilities (it's on by default).

However in my experience when opening some interlaced HDTV streams encoded in H264 FFmpegSource2 produces double frame rate, so you might need to watch out for that.

There is also an external plugin named DSS2 that fixes the frame-inaccurate issue of the original.

Personally I usually use DirectShow/DSS2 unless I need frame-accurate seeking, since it might take some time for FFMS to do the indexing during first launch.

Seedmanc
  • 357
  • 1
  • 3
  • 13