У меня есть видео в формате mp4, в которое я хотел бы добавить метки времени для каждого кадра.
Я использовал эту команду
ffmpeg -nostdin -i input.mp4 -c:v libx264 -vf "drawtext=x=(w-(max_glyph_w*13))/2: y=H-h/10:fontcolor=white:fontsize=h/14:box=1:boxcolor=0x000000AA:text='%{pts\\:hms}'" -y ./output.mp4
Есть несколько загадок, которые я не понимаю.
1) Почему кадры входного и выходного видео не идентичны? Я использовал эту команду ffprobe -select_streams v -show_frames <video>
и вижу, что вещи типа pkt_pts_time
отличаются.
2) Почему добавленные временные метки пропускают некоторые кадры? Например, это время PTS кадров, которое я получаю с помощью этой команды ffprobe -select_streams v -show_frames
pkt_pts_time=0.000000
pkt_pts_time=1.830156
pkt_pts_time=1.925833
pkt_pts_time=2.057400
pkt_pts_time=2.076322
pkt_pts_time=2.089900
pkt_pts_time=2.236044
pkt_pts_time=2.252844
pkt_pts_time=2.904300
В выводимом видео отсутствует кадр для pkt_pts_time=2.252844
Спасибо