obtém o timestamp de um quadro-chave exatamente antes de um determinado timestamp com o FFmpeg

0

Eu quero cortar segmentos longos de um arquivo de vídeo e depois juntá-los. Mas, sem codificar novamente, o corte preciso não é possível, pois o ffmpeg busca o quadro-chave antes do meu registro de data e hora listado e corta esse quadro-chave ou, em alguns casos, corta esse quadro-chave e usa algum tipo de tabela para reproduzir o vídeo como pretendido. Quando eu participo de tais segmentos de corte, o arquivo juntado mostra essas seções indesejadas devido a alguma incapacidade de concat, eu acho. é assim que estou tentando concatenar esses segmentos:

ffmpeg -f concat -i Cam01.txt -c copy Cam01.mp4

Para resolver este problema com menor re-codificação, pensei em cortar o vídeo em duas partes; primeiro corte sem re-codificação desde o início até logo antes do quadro chave que será mais rápido e depois na segunda parte cortada com re-codificação daquele quadro-chave para o meu quadro desejado, que será alguns segundos e então junte essas duas partes para ter meu segmento.

Agora eu tenho duas perguntas:

1: como posso obter o carimbo de data / hora de um quadro-chave antes de qualquer carimbo de hora?

2: Existe algum problema em como eu estou participando de segmentos para que, em alguns casos, ele mostre essas partes indesejadas no meu arquivo associado?

De alguma forma, eu poderia obter carimbos de hora de quadros-chave em um intervalo de tempo inserido, se chegar a um quadro-chave antes que qualquer registro de data e hora não seja possível.

    
por Saif Ullah 23.02.2016 / 18:49

1 resposta

0

para 1. você pode usar

 ffprobe -select_streams v -show_frames youfile.mp4

para obter uma lista de quadros, os quadros-chave serão marcados com 'key_frame = 1' e seu registro de data e hora para que você possa analisá-los para encontrar o quadro-chave mais próximo.

para 2. você está se juntando a eles muito bem, eu tive problemas semelhantes com busca rápida (-ss antes -i) em fluxos produzidos usando o concat muxer no final eu acabei de calcular quais segmentos usar fora do ffmpeg e então aguentando a busca lenta (-ss depois -i)

    
por 25.02.2016 / 10:50