Estou tentando decodificar um stream h264 de 1920x1080 30fps. Os quadros individuais parecem excelentes no VLC media player (pausando a reprodução), mas quando eu decodifico usando avconv (o ffmpeg foi descontinuado e substituído pelo avconv), a qualidade do quadro é realmente ruim em comparação (minha principal reclamação é o bloqueio).
Veja como estou chamando avconv:
avconv -i video.h264 -s 1920x1080 -f image2 temp/images/video-%03d.jpg
Existe uma configuração de saída jpg para avconv? Eu li o que suspeitei serem as partes mais importantes da documentação do avconv (ou seja,http://libav.org/avconv.html#image2-1) e não consegui encontrar nenhuma maneira de especificar a qualidade do jpg de saída.
Além disso, parece que o avconv lê o fluxo inteiro antes de começar a decodificá-lo; portanto, se o fluxo estiver em andamento, ele apenas decodificará para onde o fluxo estava quando o avconv iniciou o processo de decodificação. Existe alguma maneira de contornar isso? Em outras palavras, se um fluxo de 10 segundos for iniciado em t segundos e avconv for iniciado em t+1 segundos, avconv decodificará apenas 1 segundo do fluxo.
Responder1
Você pode forçar a escala de qualidade JPEG para a melhor qualidade JPEG possível usando o -q:v 1
parâmetro:
avconv -i video.h264 -s 1920x1080 -f image2 -q:v 1 temp/images/video-%03d.jpg
Responder2
JPEG é um codec com perdas, talvez use PNG
ffmpeg -i video.h264 -s 1920x1080 temp/images/video-%03d.png