Сравнение нескольких кадров в видео - PullRequest
0 голосов
/ 26 сентября 2019

Я хотел бы одновременно просматривать несколько кадров в видео, скажем, кадры k, k + 1, k + 2, ..., k + 7, чтобы они отображались на экране рядом друг с другом(или как матрица).Затем переходите вперед / назад на один кадр за раз.

Есть ли бесплатный проигрыватель с открытым исходным кодом (со специальным расширением), чтобы реализовать это

, Мартин

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

Вы можете использовать FFmpeg для кодирования желаемого результата в виде видеофайла.

FFmpeg - это «Полное кроссплатформенное решение для записи, преобразования и потоковой передачи аудио и видео», и это бесплатно.
Загрузите статическую связанную версию, которая будет использоваться какинструмент командной строки.

Для демонстрации решения используйте FFmpeg для создания видео тестового шаблона.
Следующая команда создает 5 секунд 160x120 несжатого видеофайла AVI со скоростью 10 кадров в секунду (тестовый шаблон in.avi включаетсчетчик кадров):

ffmpeg -y -r 10 -f lavfi -i testsrc=duration=50:size=160x120:rate=1 -c:v rawvideo -pix_fmt bgr24 in.avi

Следующая команда складывает кадр k, k + 1, k + 2, ..., k + 7 в две строки:

ffmpeg -y -ss 00:00:00.000 -i in.avi -ss 00:00:00.100 -i in.avi -ss 00:00:00.200 -i in.avi -ss 00:00:00.300 -i in.avi -ss 00:00:00.400 -i in.avi -ss 00:00:00.500 -i in.avi -ss 00:00:00.600 -i in.avi -ss 00:00:00.700 -i in.avi -filter_complex "[0:v][1:v][2:v][3:v]hstack=inputs=4[top];[4:v][5:v][6:v][7:v]hstack=inputs=4[bottom];[top][bottom]vstack=inputs=2[v]" -map "[v]" -c:v rawvideo -pix_fmt bgr24 out.avi

-ss 00:00:00.100, -ss 00:00:00.200 ... увеличено на 100 мсек, длительность одного кадра.
Отрегулируйте время в соответствии с частотой кадров вашего входного видео.

-c:v rawvideo -pix_fmt bgr24 out.avi создает несжатый AVI видеофайл.
Я выбрал несжатое видео, чтобы избежать артефактов перекодирования (цена очень большого файла).

Вы можете сделать шаг вперед / назад в любом видеоплеере.
Я знаю, что это не то решение, которое вы искали, но я надеюсь, что оно подходит ...

Пример кадра вывода:
enter image description here

0 голосов
/ 27 сентября 2019

В дополнение к подходу, предложенному Rotem, который дает преимущество в том, что вы можете воспроизводить его на любом проигрывателе, вы также можете использовать онлайн-проигрыватель с точностью до кадра и передавать видео двум игрокам одновременно.

Другими словами, вы можете открывать два окна браузера рядом, отправляя и передавая одно и то же видео, переходя от кадра к кадру, как требуется для каждого.

Есть несколько онлайн-плееров, которые позволят вам сделать это, включая популярный третийтакие, как BitMovin, FlowPlayer, TheoPlayer и т. д. Большинство из них будут иметь бесплатные демо-счета, которые вы можете использовать, чтобы увидеть, подходит ли вам этот подход.См. Пример, показанный ниже с использованием BitMovin:

enter image description here

Для этого также можно использовать видео с открытым исходным кодом - см. Эту статью о точности кадроввоспроизведение субтитров в качестве примера: https://cleriotsimon.com/posts/videojs-frame-accurate-subtitles/

...