Estou tentando usar o ffmpeg para converter meus arquivos flv em mp4 para reproduzi-los em dispositivos iOS, mas o vídeo convertido tem uma qualidade muito pior que o original.
Aqui está o comando que eu uso:
ffmpeg -i input.flv -ar 22050 output.mp4
Eu realmente apreciaria se alguém pudesse me fornecer as melhores configurações para conversão de flv para mp4.
Responder1
Dependendo dos codecs usados em seu FLV, você poderá simplesmente embrulhá-lo novamente em um contêiner mp4. Você precisará H.264
de MPEG4 simple profile
vídeo e AAC
áudio. Você pode descobrir algumas informações sobre seu arquivo de origem comffmpeg -i input.flv
Não tenho certeza se simplesmente ter H.264/MPEG4 Simple + AAC é bom o suficiente ou se existem opções específicas para os codecs suportados. É bastante fácil testar:
Tente usar
ffmpeg -i input.flv -c copy -copyts output.mp4
-copyts
é copy timestamps
. Isso ajudará na sincronização de áudio.
Se isso não funcionar, tente forçar os codecs de áudio e vídeo. Isso irá recodificar o arquivo:
ffmpeg -i input.flv -c:v libx264 -crf 23 -c:a aac -b:a 160k output.mp4
Se quiser alterar apenas o codec de áudio ou apenas o codec de vídeo, você pode usar -c:a copy
ou -c:v copy
para copiar aquele que deseja manter.
Para melhorar a qualidade do vídeo usado durante a transcodificação, você pode usar um valor CRF mais baixo, por exemplo, qualquer coisa até 18. Para obter um arquivo menor, use um CRF mais alto, mas observe que isso degradará a qualidade.
Para melhorar a qualidade do áudio, escolha uma taxa de bits mais alta (160k no exemplo acima).
Com a qualidade de áudio e vídeo, seus resultados irão variar dependendo da qualidade da fonte. Esteja ciente de que há um limite para o que você pode fazer com qualquer fonte original - na melhor das hipóteses, você terminará com a mesma qualidade da fonte. Definitivamente, vale a pena experimentar diferentes níveis de qualidade e/ou taxas de bits.
mais informações sobre codificação FFMPEG aac(Estou me referindo ao codificador "nativo" descrito no site ffmpeg).
Em relação ao comando ffmpeg sugerido na pergunta...
-ar
refere-se à taxa de amostragem de áudio. Eu recomendo não mexer com esse parâmetro. Se você quiser brincar com codificação de áudio, ajuste a taxa de bits ( -b:a 160k
acima) e deixe o codificador escolher o que fazer com base nisso.
No entanto, como pano de fundo, a qualidade do CD é uma amostragem de 44.100 Hz; o vídeo típico usa 48.000 Hz.
Você pode notar que 22050 no exemplo da pergunta original é metade da taxa de amostragem da qualidade do CD. se você estiver convertendo material de CD, esta seria uma boa escolha. Se você estiver começando com uma fonte de 48KHz, eu usaria 24Khz. (mas, novamente, eu recomendo apenas escolher uma taxa de bits alvo e deixar o codificador alterar a taxa de amostragem, se necessário.)
Você deve obter informações sobre as taxas de amostragem do material original no ffmpeg -i
comando que sugeri no topo.