Existe uma maneira de demux um fluxo de vídeo h264 de um flv (h264, aac)?

3

Usar ffmpeg para demux e um fluxo h264 de um vídeo .flv sempre me fornece um fluxo que não posso fazer o remuxo para um contêiner .mp4 (usando MP4Box from package *gpac), ou ffmpeg ).

Aqui está o comando demuxing que produz o fluxo "inválido" .. ( formato desconhecido )

ffmpeg -i "(h264-aac).flv"  # get stream info
  # Stream #0.0: Video: h264, yuv420p, 320x240 [PAR 1:1 DAR 4:3], 259 kb/s, 29.97 tbr, 1k tbn, 59.94 tbc

ffmpeg -y -map "0.0" -vcodec copy -an -i "(h264-aac).flv" \
                                         "(h264-aac).flv.h264" 

Eu também tentei com: -f h264, mas recebo o mesmo erro.

O comando acima funciona quando executado em um vídeo em um contêiner .mp4 , então talvez isso seja algo específico para flv (?).

O mais próximo que cheguei de isolar o fluxo de vídeo h264 é com o seguinte comando; mas ele encapsula o fluxo em um contêiner flv que perdeu sua proporção ...

ffmpeg -y -map "0.0" -vcodec copy -an -i "(h264-aac).flv" \
                                         "(h264-aac).flv.NEW.flv" 

Existe alguma maneira de pegar esse fluxo de vídeo?

PS. Eu treid com várias entradas diferentes .flv vids, ... mesmo erro.

    
por Peter.O 05.01.2012 / 07:24

1 resposta

3

Qual é o objetivo da etapa intermediária em que você armazena o fluxo H.264 bruto como um arquivo não contido antes de transformá-lo em um contêiner .mp4?

Claro, um fluxo de vídeo raw mpeg2 ou uma trilha de áudio .aac pode ser armazenada sem sobrecarga do contêiner, mas, como você percebeu, os candidatos óbvios para extensões de arquivos fáceis de usar - .avc, .h264, .ts- - não parece tornar um fluxo H.264 bruto mais fácil para o FFmpeg ou VLC manipular.

Se o seu fluxo H.264 estiver destinado a um contêiner .mp4, por que não copiar o fluxo de vídeo diretamente do arquivo .flv para um arquivo .mp4 e armazená-lo lá até que você esteja pronto para enviar o áudio para. o produto final?

A linha de comando seria algo como isto:

  ffmpeg -i infile.flv -an -vcodec copy outfile.mp4

Se o FFmpeg lançar mensagens de erro em resposta a esta linha de comando simples, você pode ter um arquivo corrompido.

    
por 11.02.2013 / 07:52

Tags