ffmpeg entrada e saída da tubulação de apresentação de slides para fluxo de imagem

2

Estou tentando fazer de uma lista de imagens um vídeo e, em seguida, vou enviá-lo diretamente. Eu consegui até agora criar um vídeo para as imagens com:

cat *.jpg | ffmpeg -r 1 -f image2pipe -vcodec mjpeg -i - foo.mp4

Funciona bem e estou feliz com isso. No entanto, agora eu gostaria de canalizar a saída e não consigo fazer isso. Eu tentei um par de como:

cat *.jpg | ffmpeg -f image2pipe -r 1/5 -vcodec mjpeg -i - pipe:1 | cat > p.mpeg

(no momento eu gostaria apenas de voltar em um arquivo só para testar e depois eu fiz o upload direto).

Eu li em outro thread que eu deveria especificar o formato de saída que faz sentido, pois o erro retornado pelo ffmpeg é "Não foi possível encontrar um formato de saída adequado para 'pipe: 1'". No entanto, tudo o que posso encontrar no documento é:

-f fmt (input/output)
Force input or output file format. The format is normally auto detected 
for input files and guessed from the file extension for output files, 
so this option is not needed in most cases.

Como posso especificar o formato de saída e o formato de entrada?

    
por charly 21.04.2013 / 01:28

2 respostas

3

Você precisa definir explicitamente algum formato de saída. Qual deles realmente não importa, mas depois de -i , você precisa:

  • a -c:v copy para apenas copiar o fluxo JPEG
  • a -f something
  • - como o pipe de saída

Da minha experiência matroska funciona bem como um formato de saída.

cat *.jpg | ffmpeg -f image2pipe -r 1/5 -c:v mjpeg -i - -c:v copy -f matroska - | ffplay -

Acabei de testar isso e ele é executado sem problemas. O arquivo também é reproduzido no VLC quando você executa | cat > out.mkv em vez da chamada ffplay .

    
por 21.04.2013 / 11:46
0

Não consigo usar seu exemplo no momento, então não testei isso. Mas aposto que você pode definir o formato de saída colocando -f após o "-i -". (por exemplo, -f é stateful e define o formato para a próxima entrada / saída).

    
por 21.04.2013 / 01:37

Tags