Pergunta

Eu tenho um programa WinForm que permite aos usuários fazer upload de filmes de ondas de choque em um servidor. Para obter a videodação, crio uma instância do "ShockwaveFlashObjects" -ActiveX, carrega o filme e, em seguida, leio a videodação até que ele mude de "0,0" para qualquer outra coisa. Entendo isso lendo o getVariable ("Videoduration").

Muitas vezes, funciona, mas às vezes trava ou mostra informações do filme Flash anterior que foi carregado.

Eu também tive problemas para distribuir o ShockwaveFlashObject-Attivex. Eu realmente gostaria de pular isso e apenas ler o arquivo de flash e descobrir o comprimento do filme.

Todos os filmes enviados são vídeos, para que tenham uma duração específica de jogo.

Esta pergunta não ajudou com respostas eather.

Eu verifiquei o formato de SWF no wotsit E pelo que posso ver, deve ser possível ler o quadros e o quadro de quadros e, com isso, calcule a duração, mas não consegui encontrar nada sobre os arquivos FLV. Talvez alguém já tenha feito isso e possa me apontar para um bom código que me economiza bastante tempo tentando entender a especificação?

Foi útil?

Solução

Uma das possibilidades é usar o FFMPEG para ler as taxas de bits de vídeo/áudio. Depois de ter esses detalhes, você pode dividir o tamanho total do arquivo pela soma das taxas de bits de vídeo/áudio. Isso fornece um número estimado de segundos (+/- poucos SOCNDs).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top