Fornecendo um fluxo para o ffmpeg

0

Eu sei que posso converter uma matriz de imagens armazenadas no meu disco rígido (se numeradas corretamente) usando esses argumentos:

-f image2 -r 10 -i h:\streamin\%05d.jpg -crf 23  -y -r 10 -f ogg -

Existe uma provisão no ffmpeg para alterar este bit:

h:\streamin\%05d.jpg

Para um fluxo de imagens armazenadas como um fluxo de memória?

, por exemplo: stdin = 'memorystream of images'

    
por Andrew Simpson 25.11.2013 / 10:25

1 resposta

3

Se as suas imagens de entrada são todas JPEGs, uma após a outra, mas você não tem um padrão para ler, você precisa do mjpeg demuxer:

ffmpeg -f mjpeg -i - -r 10 -c:v libtheora -q:v 7 -f ogg -

Isto assume que o que você canalizar para o ffmpeg é o que o ffmpeg produziria como mjpeg . Se isso não funcionar (desculpe, não pode tentar no momento), você também pode tentar:

ffmpeg -f rawvideo -c:v mjpeg -i - …

Importante: ogg como formato de saída, sem outras opções, implica libtheora como um codificador, que não possui a opção -crf . A libtheora usa -q:v com um intervalo de 0 a 10, em que 10 é a mais alta qualidade. 7 deve ser um bom valor. Se você não usar -q:v , ele retornará para 200 kbit / s, o que resultaria em má qualidade.

    
por 25.11.2013 / 10:42