Não tenho nenhum conhecimento sobre codificação de vídeo, tenho um aplicativo escrito em OpenGL e estou salvando os quadros gerados em png
imagens. Os quadros do meu aplicativo estão em 7 FPS e estou tentando criar um vídeo a partir deles.
Para esse fim, eu uso o ffmpeg como este
ffmpeg -framerate 30 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
que foi tirado deste site , no entanto, eu queria saber se é possível ter um vídeo que mostre a animação a 30 FPS?
-framerate
parâmetro para obter os resultados desejados.Respostas:
Estou usando o código abaixo para fazer a mesma coisa.
Quebrando o comando:
Isso lê a entrada a 30 qps (a
-framerate 30
opção) e a codifica usando olibx264
codec com fator de taxa constante de 23 (a-crf 23
opção).fonte
Há duas taxas de quadros a serem consideradas: a entrada e a saída.
Por padrão, a taxa de quadros de entrada é 25 e a saída usará a mesma taxa de quadros que a entrada, a menos que você diga o contrário.
Mesma taxa de quadros para entrada e saída
Se você deseja que a entrada e a saída tenham a mesma taxa de quadros, forneça apenas a taxa de quadros de entrada. Este exemplo definirá uma taxa de quadros de 30000/1001 (vídeo NTSC):
Como alternativa, neste exemplo, você poderia usar em
ntsc
vez de30000/1001
, mas não use,29.97
porque isso não é exato ou correto. Veja outros aliases de taxa de quadros .Como a taxa de quadros de entrada padrão é 25 e, se você definir apenas uma taxa de quadros de saída, os quadros serão descartados ou duplicados para compensar. É por isso que a taxa de quadros de entrada é definida nessa situação.
Taxa de quadros diferente para entrada e saída
Às vezes, você pode querer que a taxa de quadros de entrada e a taxa de quadros de saída sejam diferentes. Por exemplo, convém inserir os quadros em uma determinada taxa e, em seguida, duplicar ou soltar os quadros para que a saída tenha uma taxa de quadros diferente. Você pode fazer isso devido a problemas de compatibilidade com seu contêiner de formato de saída, seu player e / ou seu dispositivo:
Neste exemplo, os quadros serão duplicados para ir de 10 a 25. A saída do console informará se os quadros estão sendo descartados ou duplicados.
O desmuxador de arquivo de imagem usa
-framerate
, enquanto a taxa de quadros de saída é definida usando-r
.Pode ser necessário adicionar a
-pix_fmt yuv420p
opção em algumas circunstâncias, se você estiver produzindo vídeo H.264 (affmpeg
saída do console avisará se você precisar). Isso usará um esquema de subamostragem de croma compatível com todos os players.fonte
Option framerate not found.
:-(-framerate
não existe mais. Excluirei meu comentário, pois ele realmente não tem nada a ver com a conversão de uma série de imagens em um vídeo com uma determinada taxa de quadros.-framerate
existe. É usado pelos desmuxadores de imagem e vídeo bruto e por alguns dispositivos de entrada como x11grab e v4l2.-framerate
documentada a opção ? Eu li aman ffmpeg
página, mas não a encontrei. Algum ponteiro, talvez?FFMPEG-DEVICES(1)
.será suficiente na versão mais recente do ffmpeg.
fonte