Adiciona tempo personalizado aos quadros de vídeo usando o ffmpeg

0

Estou usando o ffmpeg para codificar dados de pixels brutos (bgr32) em um arquivo de vídeo. Os dados de pixels estão sendo enviados do aplicativo java para o canal stdin ffmpeg.

Estou procurando uma maneira de adicionar uma sobreposição de registro de data e hora a cada quadro no arquivo de vídeo codificado. Parece que há uma maneira de adicionar um registro de data e hora do horário atual. As instruções podem ser encontradas aqui: link

Os arquivos de vídeo que estou codificando foram capturados alguns dias atrás e preciso adicionar um horário personalizado a cada quadro. Por exemplo, 12/12/2013 11:11:45 e não a hora atual.

É possível fazer algo parecido com o ffmpeg?

Obrigado pela sua ajuda.

    
por Marco 16.01.2014 / 07:49

1 resposta

0

drawtext filtrar quando compilado com a configuração --enable-libfreetype . Se você não tem isso, você tem que compilar ffmpeg-se -. Não terrivelmente complicado, porém

A sintaxe mais fácil seria:

ffmpeg -i <input> -vf 'drawtext=fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=100:x=100' output.mp4

Isso posiciona o texto em 100 pixels de deslocamento a partir do canto superior esquerdo. então você pode usar a opção enable para especificar um texto para um determinado período, por exemplo, para mostrar um texto apenas para o frame 123 , você usaria:

drawtext=enable='eq(n,123)':fontsize=15:fontfile=FreeSerif.ttf:text='I':y=100:x=100

Então, é claro que você tem que gerar o comando processualmente para mostrar uma certa string por um certo tempo.

Outra idéia seria a queimar as legendas no vídeo de um arquivo de legenda pré-gerado.

    
por 17.01.2014 / 10:36