Додайте власний час до відеокадрів за допомогою ffmpeg


0

Я використовую ffmpeg для кодування даних із сирої пікселі (bgr32) у відео-файл. Дані пікселів надсилаються з програми Java на ffmpeg stdin pipe.

Я шукаю спосіб додати накладку часової позначки до кожного кадру у закодованому відео-файлі. Схоже, існує спосіб додати часову позначку поточного часу. Інструкції можна знайти тут: http://einar.slaskete.net/2011/09/05/adding-time-stamp-overlay-to-video-stream-using-ffmpeg/

Відео файли, які я кодую, були захоплені кілька днів тому, і мені потрібно додати спеціальний час до кожного кадру. Наприклад, 12.12.2013 11:11:45, а не поточний час.

Чи можна зробити щось подібне за допомогою ffmpeg?

Дякую за твою допомогу.

Відповіді:


0

Існує фільтр при компіляції з конфігурацією. Якщо у вас цього немає, вам доведеться самостійно скласти ffmpeg - не дуже страшно.drawtext--enable-libfreetype

Найпростішим синтаксисом буде:

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

Це розміщує текст у 100 пікселів, зміщений у верхньому лівому куті. Потім ви можете використовувати в enableпараметр , щоб задати текст для певного кадру, наприклад , щоб показати текст тільки для кадру 123, ви будете використовувати:

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

Отже, звичайно, вам доведеться процедурно генерувати команду, щоб показати певний рядок лише певний час.


Іншою ідеєю було б записати субтитри у відео із заздалегідь створеного файлу субтитрів.


Спалювання субтитрів - цікавий ід. Дякую. Схоже, немає інших варіантів передачі текстової інформації для кожного кадру за допомогою труби або попередньо генерованого файлу.
Марко

Ви можете використовувати-filter_complex_script для подачі шляху до сценарію, що містить параметри фільтра, але це все, що я можу придумати.
slhck
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.