ffmpeg генерация изображения в равном интервале - PullRequest
1 голос
/ 08 августа 2009

Я использую ffmpeg в Ubuntu для создания изображений и конвертации видео. Моя проблема в том, что я хочу создавать изображения (миниатюры) через разные промежутки времени. Предположим, что я загружаю видео, затем он рассчитывает время видео и генерирует 5 изображений (миниатюру) с равными интервалами (например, предположим, что период времени видео составляет 50 минут, после чего изображения получают с 0,10,20,30,40, 50 интервалов)

помогите пожалуйста

спасибо

Ответы [ 2 ]

4 голосов
/ 08 августа 2009

Короткая версия:

ffmpeg -itsoffset -4 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg

Эта команда генерирует миниатюру PNG размером 320 × 240 на 4-й секунде видео. Поместите это в скрипт, который меняет время и имя файла, и все готово.

Длинная версия: http://blog.prashanthellina.com/2008/03/29/creating-video-thumbnails-using-ffmpeg/

2 голосов
/ 08 августа 2009

Хорошо, если вы просто запустите:

ffmpeg -i file.mp4

Вывод будет содержать длину видео на stderr. Если вы запустите свою программу и передадите ее вывод в файл, вы можете прочитать его или, если хотите, можете прочитать вывод stderr и просто написать некоторый код на любом языке, который вы используете, чтобы найти позицию в этом выводе. Это красиво, потому что я верю, что это на самом деле строка "Duration: 00:15:00" или что-то еще.

Если вы запустите:

ffmpeg -ss 00:03:00 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg
ffmpeg -ss 00:06:00 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg
ffmpeg -ss 00:09:00 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg
ffmpeg -ss 00:12:00 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg
ffmpeg -ss 00:15:00 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg

Тогда вы будете иметь кадры в формате JPEG каждые 3 минуты. Надеюсь, это поможет.

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