## DirectShowSource

`DirectShowSource` (string filename, float fps, bool "seek", bool "audio", bool "video", bool "convertfps")

`DirectShowSource lê filename com DirectShow, o mesmo sistema de play-back de multimídia que o Windows` Media Player `usa.` Pode ler a maioria dos formatos que o Media Player pode tocar, inclusive MPEG, MP3 e QuickTime, bem como arquivos AVI que AVISource não suporta (como DV tipo 1, ou arquivos que usam só os codecs do DirectShow). Tente ler os arquivos AVI com AVISource primeiro e se não der certo então tente este filtro.

Há alguns senões:

- Alguns decodificadores (principalmente MS MPEG-4) produzirá vídeo de cabeça para baixo. Você terá que usar `FlipVertical`.
- Os decodificadores de vídeo do DirectShow não são exigidos para suportar busca de quadros exatos. Na maioria dos casos a busca trabalhará, mas em outros não.
- Os decodificadores de vídeo DirectShow não são exigidos nem mesmo para lhe informar a taxa de quadro do vídeo entrante. A maioria faz, mas o decodificador de ASF não. Você tem que especificar a taxa com o parâmetro de fps, assim: DirectShowSource (video.asf ", fps=15).
- Esta versão detecta automaticamente o codec de DV da Microsoft e ajusta-o para decodificar a total resolução (em vez de meia) . E acho que isso não é um inconveniente. :-)

A partir da v2.53 várias coisas foram incluídas:

- Há suporte de áudio no DirectShowSource. DirectShowSource pode abrir formatos como WAV/DTS/AC3/MP3, desde que você os toque por exemplo no WMP (mais exato: por terem sido renderizados em graphedit). A ordem de canal é igual ao formato wave-format-extensible , porque a entrada é sempre sem compressão para WAV. Para mais informação, veja também `GetChannel`. AviSynth carrega amostras de 8, 16, 24 e 32 bits int e com formato PCM flutuante com qualquer número de canais.
- Há suporte completo de busca (disponível na maioria dos formatos).
- Há suporte para arquivos GraphEdit (grf).

Na v2.56, convertfps = true/false (default false) foi incluído. Torna o vídeo de framerate variável (vfr) em vídeo de framerate constante (cfr) por inclusão de quadros. Isto é útil quando você quiser abrir vídeo vfr (por exemplo mkv ou wmv com vídeo híbrido) no AviSynth.

Exemplo

    DirectShowSource("F:\Guides\Hybrid\vfr_startrek.mkv", fps=119.88, convertfps=true)

### Resolvendo problemas de vídeo e áudio

AviSynth por padrão, vai tentar abrir só as mídia que não tenham qualquer problema. Se um componente não pode ser aberto, simplesmente não será acrescentado à saída. Isto significa que se houver um problema, você nem verá o erro. Para ter a mensagem de erro a esse componente, use audio=false ou video=false e desative o componente que está trabalhando. Assim AviSynth exibirá a mensagem de erro do componente que não trabalha.

#### "O Gráfico de Filtro não quer falar comigo"

Este é um erro comum que acontece quando DirectShow não puder entregar qualquer formato que é legível por AviSynth. Tente criar um gráfico de filtro manualmente e veja se o AviSynth o pode abrir. Se não, você deve carregar filtros de adicionais DirectShow para produzir material correto.

#### A taxa de amostra está errada!

Alguns filtros podem ter problemas ao informar o "samplerate" certo e então corrige isso quando o arquivo estiver tocando. Infelizmente não há nenhum modo para AviSynth corrigir isso, uma vez que o arquivo foi aberto. Use AssumeSampleRate e fixe a taxa de amostra correta para este problema.

#### Meu som está entrecortado

Infelizmente AviSynth não pode (ainda) buscar com 100% de precisão no DirectShow. Abra o som de outro modo, ou demuxe seu arquivo de vídeo e sirva-o ao AviSynth de outro modo. Caso contrário você pode especificar "seek = false" como parâmetro.

### Tarefas comuns

Esta seção descreve várias tarefas que podem não ser 100% óbvias. :)

#### Abrindo arquivos GRF

Os arquivos GRF do GraphEdit são automaticamente detectados e carregados por DirectShowSource. Para AviSynth poder conectar, tem que deixar pinos abertos no GraphEdit dos tipos de mídia a que AviSynth possa conectar. AviSynth não tentará desconectar qualquer filtro, assim é importante que o tipo de saída seja correto.

#### Downmixing* AC3 para estéreo

Essencialmente há dois modos para fazer isso. O primeiro é fixar o downmixing na configuração de seu próprio decodificador de AC3 e o segundo é usar o downmixer externo de "Trombettworks":

1) Instale AC3filter. Abra o arquivo AC3 no WMP6.4 e selecione propriedades de arquivo. Fixe a saída do AC3Filter em 2/0 - stereo. Se você quer a melhor qualidade possível, selecione PCM Float como formato de Amostra.

Faça o seguinte escrito:

    v = Mpeg2Source("e:\movie.d2v")
    a = DirectShowSource("e:\Temp\Test2\test.ac3")
    AudioDub(v,a)

Finalmente, abra o escrito no vdub e converta o fluxo do áudio para MP3 (claro que você também pode demuxar o downmixed WAV se precisar).

2) Registre o filtro do directshow Channel Downmixer por Trombettworks (em start -> run):

regsvr32 ChannelDownmixer.ax

Abra o arquivo AC3 no WMP6.4 e selecione propriedades de arquivo. Fixe a saída do AC3Filter em 3/2+SW 5.1 channels (este downmixer não pode controlar PCM Float, assim PCM 16 bits é selecionado aqui). Nas propriedades do downmixer, o número de canais de entrada e saída deve ser detectado automaticamente. Confira se realmente está correto.

Faça o seguinte escrito:

    v = Mpeg2Source("e:\movie.d2v")
    a = DirectShowSource("e:\Temp\Test2\test.ac3")
    AudioDub(v,a)

Finalmente, abra o escrito no vdub e converta o fluxo do áudio para MP3 (claro que você também pode demuxar o downmixed WAV se precisar).

Por alguma razão, eu não consigo fazer isto trabalhar com fluxos DTS :(

Log de mudanças:

v2.56 | convertfps torna vfr em cfr constante pela inclusão de quadros

`$Date: 2006/03/26 18:11:19 $ Portuguese translation by RoLon`