1

Я пытаюсь извлечь png изображения из видео с помощью ffmpeg и добавить метку времени как часть имени файла сгенерированного изображения.

Пожалуйста, смотрите ниже команду, которую я использую для того же

ffmpeg -vcodec mpeg2video -f mpegts -i test_movie.ts -f image2 -vf "drawtext=fontfile=/Library/Fonts/Tahoma.ttf: timecode='$(date +%H\\:%M\\:%S).00': r=30: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000000@1" -vsync vfr -pattern_type glob ./compare_multiple_$(gdate +%H\_%M\_%S_%3N).png

Но это не добавление имени файла должным образом. Это дает ошибку, как показано ниже:

[image2 @ 0x7ff01301f600] Не удалось получить имя файла фрейма № 2 из шаблона './compare_multiple_10_09_58_490.png' (либо установить updatefirst, либо использовать шаблон типа% 03d в шаблоне имени файла) av_interleaved_write_frame (): недопустимый аргумент frame = 10 fps = 0.0 q = -0,0 Lsize = N/A время = 00: 00: 00.12 битрейт = N/A видео: 1047 КБ аудио: 0 КБ субтитры: 0 КБ Другие потоки: 0 КБ глобальные заголовки: 0 КБ издержек мультиплексирования: неизвестно Преобразование не удалось!

1 ответ1

0

Вы были близки, но проблема указана прямо из сообщения об ошибке: Ваш шаблон ./compare_multiple_$(gdate +%H\_%M\_%S_%3N).png неверен.

В документации, когда они используют "N" в шаблоне, "N" символизирует "целое число по вашему выбору", и в вашем случае, похоже, вы хотите, чтобы это было 3. Так что используйте %3d вместо %3N и у вас все получится.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .