У меня есть очень длинное видео, на которое я хочу наложить время видео (по сути, часы, отсчитывающие время от 0:00:00 до длительности видео).
Поскольку я не могу найти никаких инструментов для выполнения именно этой задачи, я написалJava-программадля создания 1000 прозрачных изображений png, по одному на каждую секунду. OpenShot (мой любимый видеоредактор) может взять все изображения, соответствующие определенной схеме именования, в папке и импортировать их как видео, контролируя, сколько кадров отображается для каждого изображения. Это звучит идеально, за исключением того, что когда я тестировал его с первой тысячей изображений, он зависал на 500-м кадре; т. е. он считал до 00:08:19 и затем никогда не переходил на 00:08:20.
Я попробовал несколько других способов объединить изображения в видео (например, avconv), но они не работают. Кстати, Ubuntu — моя основная ОС, но при необходимости у меня есть доступ к Windows и Mac.
Как мне объединить мои 10000+ изображений в одно видео? Или еще лучше, есть ли более прямой способ наложить видео с таймером, отсчитывающим от 0:00:00 до длительности видео?
решение1
ffmpegсделаем это:
ffmpeg -i input.mp4 -vf "drawtext=fontfile=/path/to/font.ttf:fontcolor=white:fontsize=30:box=1:[email protected]:x=(W-tw)/2:y=H-th-20:timecode='00:00:00':rate=25,format=yuv420p" -crf 23 -c:a copy -map 0 output.mp4
Приведенный выше код содержит специальные символы и должен быть экранирован, как того требует ваша оболочка.
Измените r=25
значение частоты кадров вашего видео. [email protected]
непрозрачно на 50%. Смотритедокументыдля получения более подробной информации и опций. Измените значение CRF для компромисса качество/размер — чем ниже, тем лучше качество.