Home › Fóruns › Fórum Visão Computacional: O Guia Completo › Erro FFMPEG: tag 0x44495658/’XVID’ is not supported with codec id 12 and
- Este tópico contém 10 respostas, 2 vozes e foi atualizado pela última vez 2 anos, 4 meses atrás por
Gabriel Alves.
- AutorPosts
- 20 de setembro de 2022 às 23:05 #36850
Boa noite, tudo certo ?
Sobre a aula “Detecção de movimentos em vídeos 1”
Já pesquisei por vários fóruns e não encontrei a saída para o erro ao trecho:Fonte:
salvar_video = cv2.VideoWriter(resultado, cv2.VideoWriter_fourcc(*’XVID’),10,(frame.shape[1], frame.shape[0]))Erro:
OpenCV: FFMPEG: tag 0x44495658/’XVID’ is not supported with codec id 12 and format ‘mp4 / MP4 (MPEG-4 Part 14)’
OpenCV: FFMPEG: fallback to use tag 0x7634706d/’mp4v’Testei vários itens, como por exemplo ao inves de XVID, mp4v, mas na maioria dos casos, qndo não da erro o video de saída fica com o tamanho que indica erro..258
Muito obrigado
21 de setembro de 2022 às 09:29 #36854Bom dia, acabei de realizar esta tentativa agora:
OpenCV: FFMPEG: tag 0x34504d46/’FMP4′ is not supported with codec id 12 and format ‘mp4 / MP4 (MPEG-4 Part 14)’ · Issue #2 · OpenBCI/OpenBCI_Experiment · GitHubnão deu erro, porém o vídeo de saída ficou com 258 bytes
23 de setembro de 2022 às 18:24 #36858Olá Gabriel!
Qual versão do OpenCV você está usando? Pode ser algum bug com a versão, pois aqui com o mesmo código ele roda sem esse problema.
Se puder conferir também se todas as variáveis anteriores estão com os valores esperados, pois as vezes tem ali algum detalhe (ex: alguma linha executada fora de ordem) que deixou com esse comportamento.Mas se conferiu e está tudo certo então tenta substituir o XVID por mp4v (tem que ser minúsculo).
- Esta resposta foi modificada 2 anos, 4 meses atrás por
Gabriel Alves.
23 de setembro de 2022 às 20:49 #36868Boa noite,
muito obrigado pelo retorno.
Usei o comando “print(cv2.__version__)” e tive como resultado : 4.5.5, pelo que notei é a penúltima versão do opencv.
As variáveis estão corretas. pois se eu coloco por exemplo uma extensão avi ele não da erros, porém o vídeo sai vazio. Infelizmente eu havia testado com o “mp4v” e também com outras extensões.
Qual sua versão do opencv ?
23 de setembro de 2022 às 20:57 #36869Atualizei para a última versão agora:
4.6.0
Com xvid e XVID infelizmente da erro:
OpenCV: FFMPEG: tag 0x64697678/’xvid’ is not supported with codec id 12 and format ‘mp4 / MP4 (MPEG-4 Part 14)’
OpenCV: FFMPEG: fallback to use tag 0x7634706d/’mp4v’Com ‘mp4v’ ele agora gera porém com o tamanho de 258 bytes ( que é erro ), ai o vídeo não pode ser reproduzido
23 de setembro de 2022 às 21:06 #36870Encontrei este topico sobre :
“https://pythontechworld.com/issue/xingyizhou/centertrack/91”
Mas pelo que vi, eu envio os parâmetros de altura e largura:
captura = cv2.VideoCapture(‘../content/gesture1.mp4’)
conectado , frame = captura.read()
print(frame.shape[1]) # aqui saiu 808
print(frame.shape[0]) # aqui saiu 1080
resultado = ‘../content/gesture1_novo.mp4′
salvar_video = cv2.VideoWriter(resultado, cv2.VideoWriter_fourcc(*’mp4v’), 10 , (frame.shape[1], frame.shape[0]) )23 de setembro de 2022 às 21:28 #36871Fiz mais um teste e tentei capturar o formato que estou lendo do video gesture:
def decode_fourcc(cc):
return “”.join([chr((int(cc) >> 8 * i) & 0xFF) for i in range(4)])captura = cv2.VideoCapture(‘../content/gesture1.mp4’)
conectado , frame = captura.read()
print(frame.shape[1])
print(frame.shape[0])
codec = captura.get(cv2.CAP_PROP_FOURCC)
print(codec, decode_fourcc(codec))
828601953.0 <span style=”text-decoration: underline;”>avc1</span>27 de setembro de 2022 às 09:48 #36890Opa!
Experimente fazer a seguinte substituição: de cv2.VideoWriter_fourcc(*’mp4v’) para cv2.VideoWriter_fourcc(‘m’, ‘p’, ‘4’, ‘v’)
Faça essa mudança, tente executar e veja se dá certo (se não, me passe o erro exato que apareceu agora, caso seja diferente). Se não der tente também remover a extensão “.mp4” do nome do arquivo, que foi passado como parâmetro.
A propósito, no nome do arquivo você tava colocando de início para salvar em .mp4 ou .avi? Então tente salvar direto na extensão .avi mesmo, basta mudar o nome do arquivo ali na variável resultado, ficando assim: resultado = ‘../content/gesture1_novo.avi′ e mude novamente para cv2.VideoWriter_fourcc(*’XVID’)
Caso realmente isso não funcione também aí sugiro fazer o downgrade de sua versão do OpenCV pois pode ser até que seja algum bug recente, mas acredito que fazendo essa mudança já funcione aí em seu ambiente.
27 de setembro de 2022 às 20:23 #36895Boa noite, muito obrigado pelo retorno.
Infelizmente eu já havia tentado todas estas sugestões.
Qual a versão do seu open cv para eu testar o download?
27 de setembro de 2022 às 20:34 #36896*downgrade
4 de outubro de 2022 às 11:52 #37208Opa!
Então quanto à versão, você pode usar a mesma que está sendo usado pelo Colab, conforme no código fonte aqui, que está em funcionamento (recomendo também dar uma olhada no código e comparar com o seu).
Segundo o comando cv2.__version__, a versão é a 4.6.0.
Recomendo verificar mais duas coisas:
- Se pro tamanho do vídeo lá em cv2.VideoWriter() foi passado como parâmetro a altura e largura exatas que estão sendo salvas os frames (com o salvar_video.write()). Tem que estar o mesmo tamanho, ou ele vai dar esse problema no salvamento do vídeo e o arquivo ficará com poucos bytes de tamanho.
- Se mudou para .avi a extensão do arquivo salvo (saída). Se sim, me passe a mensagem que aparece (se aparecer) ou qual tamanho ficou o arquivo.
Mas em último caso você pode desinstalar mesmo o OpenCV e instalar novamente essa versão. Pois pode ser até o caso de estar faltando alguma config necessária para os vídeos, para visualizar essas informações execute print(cv2.getBuildInformation()) e veja por exemplo se lá em “Video I/O” o “FFMPEG” está como “YES”.
- Esta resposta foi modificada 2 anos, 4 meses atrás por
- AutorPosts
- Você deve fazer login para responder a este tópico.