Erro FFMPEG: tag 0x44495658/’XVID’ is not supported with codec id 12 and

Home Fóruns Fórum Visão Computacional: O Guia Completo Erro FFMPEG: tag 0x44495658/’XVID’ is not supported with codec id 12 and

Visualizando 11 posts - 1 até 11 (de 11 do total)
  • Autor
    Posts
  • #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

     

    #36854

    Bom 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 · GitHub

     

    não deu erro, porém o vídeo de saída ficou com 258 bytes

    #36858
    Gabriel Alves
    Moderador

      Olá 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 1 ano, 7 meses atrás por Gabriel Alves.
      #36868

      Boa 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 ?

       

      #36869

      Atualizei 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

       

      #36870

      Encontrei 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]) )

      #36871

      Fiz 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>

      #36890
      Gabriel Alves
      Moderador

        Opa!

        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.

        #36895

        Boa 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?

         

        #36896

        *downgrade

        #37208
        Gabriel Alves
        Moderador

          Opa!

          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”.

        Visualizando 11 posts - 1 até 11 (de 11 do total)
        • Você deve fazer login para responder a este tópico.