avconv: Convertendo de .ts para H264, com capturas de tela de alta qualidade

0

Estou usando o avconv para converter fluxos de transporte MPEG em H264. Meu objetivo principal é capturar capturas de tela de alta qualidade dos arquivos de vídeo de origem.

Os arquivos TS estão entrelaçados, portanto, primeiro estou convertendo para H264 e tentando capturar capturas de tela do vídeo codificado. No entanto, a qualidade está faltando - vejo bordas irregulares em áreas de alto contraste da tela, bem como algum ruído semelhante aos artefatos de compressão JPEG.

Eu estou experimentando várias combinações de predefinições de qualidade, desentrelaçamento Yadif e redução de ruído, mas a qualidade ainda parece estar faltando.

O tamanho do arquivo não é importante - não me importo se eu tiver arquivos de vídeo enormes, desde que as capturas de tela sejam de alta qualidade. O tempo de compactação é um pouco importante, mas não me importo se a etapa de codificação demorar muito.

Quais configurações devo usar para obter as capturas de tela de melhor qualidade desses arquivos de vídeo? Supondo que eu tenha uma entrada de 1080i, como posso produzir uma captura de tela o mais próxima possível de 1080p? É claro que a saída não pode ser de qualidade superior à entrada, mas eu quero chegar o mais perto possível.

Eu estarei usando o avconv para extrair as capturas de tela do vídeo, mas para o meu teste eu estou pausando o VLC para examinar a qualidade.

    
por Mike Ryan 19.08.2015 / 11:59

1 resposta

1

Fazendo uma captura de tela sem perdas na marca de 1 min:

ffmpeg -i input.1080i.ts -vf yadif -ss 01:00 -vframes 1 screenshot.png

(Desculpe por usar o ffmpeg, mas o comando avconv deve estar muito próximo - se não o mesmo)

No entanto, você deve primeiro certificar-se de que o desentrelaçamento é o caminho a percorrer. Só porque a fonte é 1080i não significa que não é entrelaçado conteúdo progressivo, caso em que você deve não desentrelaçar.

Pode ser conteúdo telecinado , nesse caso você deve usar o filtro fieldmatch (espero que esteja disponível em avconv ..):

ffmpeg -i input.1080i.telecined.ts -vf fieldmatch -ss 01:00 -vframes 1 screenshot.png

Finalmente, se o 1080i é realmente progressivo, você não precisa!

ffmpeg -i input.1080i.eu.ts -ss 01:00 -vframes 1 screenshot.png

Além disso, observe que, embora você obtenha um resultado mais rápido adicionando -ss 01:00 antes da entrada, o tempo resultante pode ser impreciso.

    
por 19.08.2015 / 12:33