Email or username:

Password:

Forgot your password?
SEVA77

Пытаюсь решить задачу с ffmpeg как достать кадры из каждых 5 секунд нескольких видео. Команда
ffmpeg -i *.mp4 -r 0.2 frames/%04d.jpeg
запрашивает перезапись видео в подходящий формат, из-за чего получилась мемная хуита, когда ВСЕ видео стали идентичны первому найденому.

Я так понимаю вместо *.mp4 в input нужно скармливать список файлов. Надо его только как-то сформировать.

2 comments
Shura

@seva77 Вместо *.mp4 шелл и подставляет список файлов. Видимо тебе надо сделать так, чтобы выходные файлы были разные

SEVA77

@shura Ну кстати да, выходные файлы действительно должны быть разными, иначе они каждый раз будут перезаписываться.
По поводу списка у меня с ним как раз и получился результат, когда все исходные файлы при перезаписи по содержимому стали идентичны друг другу. Я видел для склейки видео из нескольких ffmpegу скармливают список файлов определенного формата, где перед путем к файлу нужно обязательно ставить слово file, типо
list.txt:
file p0.mkv
file p1.mkv
file p2.mkv

Мол может в этом дело. Но я уже решил не парится по поводу формирования списка и просто написал скрипт с поочередной работой с каждым файлом:

#!/bin/bash

input=mp4
outdir=frames

if ! [ -d "$outdir" ]; then
    mkdir "$outdir"
fi

for i in *."$input";
do
   ffmpeg -y -i "$i" -r 0.2 "$outdir"/"$i"_%04d.jpeg
done

@shura Ну кстати да, выходные файлы действительно должны быть разными, иначе они каждый раз будут перезаписываться.
По поводу списка у меня с ним как раз и получился результат, когда все исходные файлы при перезаписи по содержимому стали идентичны друг другу. Я видел для склейки видео из нескольких ffmpegу скармливают список файлов определенного формата, где перед путем к файлу нужно обязательно ставить слово file, типо
list.txt:
file p0.mkv
file p1.mkv
file p2.mkv

Go Up