it-swarm-pt.tech

Como encontro o codec de um AVI?

Como posso descobrir qual codec um arquivo AVI precisa? Seria preferível um método que não exija o download de um programa (como olhar o arquivo no bloco de notas).

19
C. Ross

Abra no bloco de notas, faça uma busca por 'vids' - o FOURCC está logo em seguida. Por exemplo, você encontrará algo como:

vidsWMV1

Em seguida, google para 'fourcc WMV1' neste exemplo.

24
Chris

Este é um processo muito simples e pode ser feito usando a GSpot Codec Information Tool. Basta baixar o programa e instalá-lo. Agora vá para o menu Iniciar e abra o programa.

  1. Selecione Arquivo | Abra e selecione seu arquivo AVI
  2. Procure o código FourCC para o Codec de Vídeo do arquivo

  3. Visite o site FourCC e descubra quem desenvolve esse codec

  4. Agora você pode acessar o site do desenvolvedor para baixar seu codec. Você também pode visitar a seção Codec de wmplugins.

Nota: Não baixe nada identificado como "Codec Pack" ou dos links no topo do site da FourCC. Isso o ajudará a evitar problemas ao reproduzir seus arquivos.

O VLC tem suporte para Divx e 3ivx integrado para todas as plataformas.

Fonte: http://msmvps.com/blogs/chrisl/articles/11529.aspx

21
joe

Eu só precisava disso, encontrei esta página (muito antiga) e decidi que preferia não carregar meu AVI de 260 MB em um editor de texto, então talvez minha solução ajude outra pessoa.

Se você tem um Shell do tipo Unix, provavelmente tem um programa chamado 'strings' que encontra sequências de caracteres imprimíveis. Por padrão, o comprimento mínimo é quatro, o que é adequado para essa necessidade. (Pode ser alterado na linha de comando.) O 'vids' e o fourcc serão consecutivos na saída (mas não uma string em meu AVI).

Você pode canalizar o resultado para algo simples como 'mais' e descobrir você mesmo. Ou você pode canalizá-lo na cabeça e esperar adivinhar o número de linhas de que precisará. Ou você pode ser um pouco mais sofisticado e canalizar através do sed e fazer com que imprima a linha que corresponde ao padrão desejado. Ou você pode usar o awk para fazer o mesmo. No meu shell bash cygwin, essas opções se parecem com estes comandos:

strings foo.avi | Mais
strings foo.avi | cabeça -10
strings foo.avi | sed -n '/ vids /, + 1p'
strings foo.avi | awk 'NR == 1,/vids/{if ($ 0 == "vids") {getline; impressão ; Saída } } '

A desvantagem da terceira versão é que eu fiz o sed processar o arquivo inteiro, então pode demorar um pouco para ser concluído. Estou confiante de que há uma maneira de fazer isso parar após a primeira partida, mas não sou suficientemente especialista em sed para saber (ou encontrar) isso. A versão awk para explicitamente se a condição for verdadeira (obter a próxima linha, imprimir isso, sair - enquanto o comando sed tem apenas os dois primeiros com +1 e p). Em ambos os comandos sed e awk, o/vids/é a expressão regular de que precisamos (ou seja, a string de pesquisa na resposta de Chris acima). Além disso, a construção awk 'NR == 1,/vids /' diz para aplicar o seguinte bloco de código às linhas do número 1 (primeira linha de entrada) para onde quer que ele encontre essa expressão regular (string correspondente). A condição if impede a impressão de todas as linhas até aquela que corresponde. Ele corresponde à linha completa ($ 0), que para o comando strings, deve funcionar bem; strings são impressas uma por linha de qualquer maneira.

Observe que a string que ele encontra pode incluir caracteres extras (por exemplo, do meu arquivo AVI ele encontra 'strf (' não 'strf' que é o fourcc). Se você realmente precisa dividi-lo em quatro caracteres (por exemplo, para um script que precisa para compará-lo com uma lista padrão), você pode canalizar a resposta para 'head -c 4' e obter apenas o fourcc. Esta é minha resposta final:

strings foo.avi | awk 'NR == 1,/vids/{if ($ 0 == "vids") {getline; impressão ; exit}} '| head -c 4

FWIW, o Windows Media Player listou o codec em meu AVI como "-" para áudio e vídeo, mas o acima funcionou conforme o esperado.

Espero que tenha valido a pena para alguém que passei um tempo digitando isso! ;-)

Caramba, Mark

0
Mark