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:
FlipVertical
.A partir da v2.53 várias coisas foram incluídas:
GetChannel
. AviSynth carrega amostras de 8, 16, 24 e 32 bits
int e com formato PCM flutuante com qualquer número de canais.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)
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.
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.
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.
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.
Esta seção descreve várias tarefas que podem não ser 100% óbvias. :)
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.
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