Перекодируем только первые 10 секунд. Фреймрейт=25, размер шрифта=72
ffmpeg -i 11test.mp4 -ss 00:00:00 -t 00:00:10 -vf "drawtext=fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf: timecode='00\:00\:00\:00': r=25: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: fontsize=72: boxcolor=0x00000099" -acodec libvorbis -y 33test.mp4
- ffmpeg -i 11test.mp4 -ss 00:00:00 -t 00:00:10 — только первые 10 секунд файла
- -vf «drawtext=fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf: — путь к шрифту, который будет использоваться для наложения таймкода (timecode)
- timecode=’00\:00\:00\:00′: — формат таймкода задаём
- r=25: — частота кадров
- x
w-tw)/2: y=h-(2*lh): — где будет таймкод нарисован
- fontcolor=white: — цвет шрифта
- box=1: fontsize=72: boxcolor=0x00000099″ — как это всё рисовать
- -acodec libvorbis — аудиокодек получившегося видео
- -y — перезаписывать выходной файл без разговоров
- 33test.mp4 — имя выходного файла
Обработка всех файлов в папке: кладём результат в подкаталог
mkdir timecoded; for i in *.mp4; do echo "$i"; nice -n 19 ffmpeg -i "$i" -s 640x360 -vf "drawtext=fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf: timecode='00\:00\:00\:00': r=25: x=(w-tw)/2: y=h-(2*lh): fontcolor=black: box=1: fontsize=120: boxcolor=0x00000011" -acodec libvorbis -y timecoded/"$i"; done;
Добавить timecode ко всем видео в папке, создать скринлист с кадрами за каждую секунду (то есть на картинке будет видно, что и когда происходит на видео на каждую секунду)
mkdir -p timecoded/temppng; for i in *.mp4; do echo Timecode adding to "$i"; sleep 0.5; nice -n 19 ffmpeg -i "$i" -s 640x360 -vf "drawtext=fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf: timecode='00\:00\:00\:00': r=25: x=(w-tw)/2: y=h-(2*lh): fontcolor=black: box=1: fontsize=120: boxcolor=0x00000011" -acodec libvorbis -y timecoded/"$i"; echo extract; sleep 0.5; nice -n 19 ffmpeg -i timecoded/"$i" -filter:v "select=not(mod(n\,25)),setpts=N/((25)*TB)" -qscale:v 2 timecoded/temppng/%05d.png; echo "Montage $i..."; nice -n 19 montage timecoded/temppng/*.png -tile 5x355 -geometry +0+0 -quality 85 "$i".jpg; echo "rm temppng for $i"; rm timecoded/temppng/*.png; done;