ffmpeg e saída de iFrame e qualidade de JPEG

1

Eu estava procurando uma solução para um problema e, em minhas viagens, passei por algo ligado ao que estava fazendo, o que gerou uma segunda pergunta.

Eu agrupei ambas as perguntas aqui. Se eu não deveria, vou dividi-lo em duas perguntas separadas, se solicitado.

Eu estava procurando uma maneira de produzir uma imagem da minha câmera ip usando o ffmpeg de um strteam RTSP.

Eu encontrei e foi isso (eu testei em um prompt do DOS)

ffmpeg -i rtsp://192.168.0.8/video_1 -f image2 -s 360x240 -vf fps=fps=10/60 img%3d.jpg

Eu estava procurando uma maneira de controlar a qualidade da imagem. Eu lembro que quando eu codifiquei jpegs serveral para um arquivo de vídeo eu usaria isso:

-f image2 -r FPS-i  + MyPath + \img%05d.jpg -crf 23  -y -r 'FPS' + 'oggOut.ogg'

Aqui a qualidade é definida usando -crf 23, onde o 23 está definindo a qualidade da imagem. Foi-me dito que quanto menor o número, melhor a qualidade.

Existe uma maneira de especificar a qualidade da imagem na minha primeira linha de comando? Eu tentei colocar o crf em todos os lugares, mas ele me diz sinalizador não reconhecido.

Enquanto procuramos uma solução, encontrei esta página:

alguns exemplos de como colocar o jpeg de um stream

O último exemplo nessa página afirmou:

Isso criará uma imagem em miniatura em cada quadro I

Eu tinha entendido que um i-Frame é uma mudança nos quadros anteriores e atuais? Quando eu testei isso, apenas me deu um fluxo de imagens. Eu entendi mal o que é um I-Frame?

    
por Andrew Simpson 15.02.2015 / 12:13

1 resposta

2

Para saída JPG, use -q:v para controlar a qualidade. O intervalo é 2-31. Um valor mais baixo é uma qualidade mais alta e, portanto, um tamanho de arquivo maior.

A opção -crf é usada pelos codificadores libx264 (vídeo H.264) e libvpx (vídeo VP8 / VP9), mas os valores variam entre esses codificadores. Não é para mjpeg (imagens JPG / vídeo MJPEG) ou libtheora (vídeo Theora).

Além disso, você pode achar o filtro de vídeo em escala mais flexível do que -s , porque você pode declare uma dimensão e o filtro fornecerá automaticamente a outra enquanto preserva a proporção: -vf fps=1/6,scale=360:-1 . Usar -s para forçar um tamanho específico pode resultar em uma saída comprimida ou esticada.

    
por 16.02.2015 / 19:10