Introdução
Este artigo é o primeiro de uma serie que se propõe a ensinar os conceitos e algumas aplicações praticas da DirectShow, visto que a documentação em português é escassa ou inexistente
O que é DirectShow?
DirectShow (as vezes abreviado como DS ou DShow), tambem chamado de Quartz, é um framework multimidia e API produzido pela Microsoft para programadores de software para executar várias operações com aquivos de midia ou streams. Baseado no Framework Microsoft WindowsComponent Object Model (COM), DirectShow fornece uma interface comum para todas as midias, varias linguagens de programação, é extensivel, baseada em filtros ela pode desenhar ou tocar aquivos de midia sobe demanda do usuario ou do programador.
Quais os formatos suportados?
Sua arquitetura de formatos é baseada em filtros, vamos citar um exemplo para que você possa entender melhor.
“Digamos que por alguma praga qualquer o meu PC não tem suporte a arquivos de audio *.mp3, então eu vou no baixaki e instalo um codec para este formato e automaticamente a aplicação baseada na DirectShow passa a ter suporte a esse formato.”
A partir dessa observação percebemos que a biblioteca se incarrega de achar o decodificador de audio adequado instalado no PC e ‘filtrar’ o arquivo, retornando apenas os dados necessarios(frames de video e streams de audio).
A dica é que se instale o ‘XP_Codec_Pack’ para que seu sistema tenha suporte a maioria dos formatos de midias conhecidos.
Dependências
DIRECTSHOW.NET
XP_CODEC_PACK
Corrigindo incompatibilidade de versão com a .Net Framework 3.5
A DirectShow.Net foi desenvolvida em 2005 para o .Net Framework 2.0, porem quando tentamos utilizalo com o .Net Framework 3.5 ocorrem erros de tempo de execução. Para corrigir o bug, baixe o codigo-fonte e recompile alterando a versão de compatibilidade.
- Baixe a DirectShow.Net (http://ufpr.dl.sourceforge.net/sourceforge/directshownet/DirectShowLibV2-0.zip)
- O arquivo DirectShowLibV2-0.zip, cotem a DLL compativel com a .Net Framework 2.0 e o codigo fonte do framework. Como nóis utilizaremos a .Net Framework 3.5 é necessario corrigir alguns problemas de compatibilidade.
- Crie uma pasta para este trabalho, no meu caso foi em “c:\DirectShow\”, e descompacte a pasta “src” nela.
- Na pasta “src” abra o arquivo “DirectShowLib-2005.csproj”. Vai aparecer um assistente de atualização do projeto da versão do Microsoft Visual C# 2005 para o 2008.
- Depois de concluida a conversão anterior, vá em Project > DirectShowLib-2005 Properties. Na aba “Aplication”, autere a propriedade “Target Framework” de “.Net Framework 2.0” para “.Net Framework 3.5”. Aperte Ctrl+S para salvar.
- Aperte F5 para compilar o framework em modo ‘Debug’ ou F6 para modo ‘Build’. Os aquivos gerados estão na pasta “\src\bin\Debug\” e/ou “\src\bin\Release\”