ffplay накладывает текущую метку времени при воспроизведении не упакованного видео

1583
incBrain

Я пытаюсь создать наложение текущей метки времени при воспроизведении необработанного видео H.265 с ffplayиспользованием фильтра drawtext .

Хотя наложение текущего номера кадра отлично работает с:

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

Я не могу отобразить текущую метку времени, как описано в этом посте, используя text='%'. Используя этот мой вывод, выглядит так:

Скриншот

Я понимаю, что необработанный файл H.265 не содержит никакой информации о времени, поэтому это, вероятно, причина, по которой я не могу использовать pts\:hms.

У меня вопрос, можно ли использовать текущий номер кадра, как в, text='%'но разделить его на частоту кадров, что-то вроде text='%'? К сожалению text='%', не допускается и text='%/24'также не работает:

screenshot2

Просто информация. Я упаковал сырое видео в файл mp4, ffmpeg -i video.265 -c:v copy video.mp4а затем команда из поста выше работает просто отлично. Но мне все еще любопытно, возможно ли выполнить некоторые вычисления внутри фильтра отрисовки текста.

0

1 ответ на вопрос

1
Gyan

You have to use the eif function

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

This produces a HH:MM:SS output, and expects a 24 fps video stream.

Работает, но с `n` вместо` t`. используя `t` у меня следующая ошибка: выражение 'trunc (t / 60)' для функции расширения текста expr недопустимо incBrain 8 лет назад 0
Для необработанного потока `t` не назначается и не рассчитывается. Обновленная команда. Gyan 8 лет назад 0

Похожие вопросы