ffplay sobrepõe o carimbo de data / hora atual enquanto reproduz vídeo não empacotado

0

Estou tentando criar uma sobreposição do timestamp atual enquanto reproduzo vídeo H.265 bruto com ffplay usando filtro drawtext .

Enquanto a sobreposição do número do quadro atual funciona bem com:

ffplay -vf "drawtext=fontfile=/Library/Fonts/Microsoft/Arial.ttf: text='%{n}':box=1:x=(w-tw)/2:y=h-(2*lh)" video.265

Não consigo exibir o registro de data e hora atual, como descrito em esta postagem usando text='%{pts\:hms}' . Usando isso, minha saída renderizada é assim:

EuentendoqueoarquivoH.265brutonãotemnenhumainformaçãodetempo,entãoestaéprovavelmentearazãopelaqualeunãopossousarpts\:hms.

Aminhaperguntaé,épossívelusaronúmerodoquadroatualcomoemtext='%{n}',masdividi-lopeloframeratealgocomotext='%{n/24}'?Infelizmentetext='%{n/24}'nãoépermitidoetext='%{n}/24'tambémnãofunciona:

Apenas uma informação. Eu empacotei o vídeo bruto no arquivo mp4 ffmpeg -i video.265 -c:v copy video.mp4 e, em seguida, o comando da postagem acima funciona bem. Mas ainda estou curioso para saber se é possível fazer algum cálculo dentro do filtro de texto de desenho.

    
por incBrain 30.05.2016 / 12:54

1 resposta

1

Você precisa usar a função eif

ffplay -vf \
       "drawtext=fontfile=/Library/Fonts/Microsoft/Arial.ttf: \
        text='%{eif\:trunc(n/3600/24)\:d\:2}\:%{eif\:trunc(n/60/24)\:d\:2}\:%{eif\:trunc(mod(n*24\,60))\:d\:2}: \
        box=1:x=(w-tw)/2:y=h-(2*lh)" \
video.265

Isso produz uma saída HH: MM: SS e espera um fluxo de vídeo de 24 fps.

    
por 30.05.2016 / 13:35