Как создать плитку с миниатюрами видео с правильным тайм-кодом

Я использую библиотеку FFMPEG для создания миниатюр видео каждые 5 секунд с временными кодами, используя следующую команду:

 ffmpeg \
-i 20051210-w50s.flv \
-y \
-frames 1 \
-vf " \
    select=not(mod(t\,5)), \
    scale=320:-1, \
    drawtext=fontfile=/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf: \
    timecode='00\\:00\\:00\\:00': r=25: fontcolor=white: x=220: y=220: box=1: [email protected], \
    tile=5x2" \
-vsync 0 \
out.jpg

введите здесь описание изображения Создается правильная плитка эскизов, но неверные временные коды. Как решить эту проблему?


person Андрей Литвиненко    schedule 13.03.2018    source источник


Ответы (1)


Фильтр drawtext не ссылается на метку времени. Он использует простой счетчик, который увеличивает временной код для каждого нового кадра. Итак, способ сделать это — нарисовать каждый тайм-код, а затем пропустить кадры.

ffmpeg \
-i 20051210-w50s.flv \
-y \
-frames 1 \
-vf " \        
    scale=320:-1, \
    drawtext=fontfile=/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf: \
    timecode='00\\:00\\:00\\:00': r=25: fontcolor=white: x=220: y=220: box=1: [email protected], \
    select=not(mod(t\,5)), \
    tile=5x2" \
-vsync 0 \
out.jpg
person Gyan    schedule 13.03.2018