Извлечение изображений JPEG из потока mjpeg на терминале

2512
Andrew

Я пытаюсь извлечь изображения JPEG из потока mjpeg. Я выполнил поиск и нашел несколько источников, но они извлекали изображения в формате jpeg из файла mjpeg, такого как этот здесь . В моем случае, у меня нет файла, но есть прямая трансляция видео. Как я могу извлечь изображения JPEG из этого потока mjpeg? В конце концов, моя цель - воссоздать видео из серии JPEG.

Я ищу ответ командной строки для использования в терминале, так как я использую Ubuntu Server без графического интерфейса. Если возможно, было бы здорово, если бы частота кадров и / или качество могли быть настроены. Я смотрел на ffmpeg, libav и vlc, но не могу понять это. Кто-нибудь может помочь?

0
Не могли бы вы просто сохранить поток и извлечь его позже - или не извлекать его вообще, так как вам нужно только видео? У вас есть пример потока URL? slhck 10 лет назад 0
Помимо воссоздания видео, у меня также есть использование для изображений. Кроме того, поток может продолжаться в течение продолжительных периодов времени (несколько часов). В этом случае у меня был бы очень большой файл, который мне неудобен. Я планирую отправить эту запись в прямом эфире на сервер Tomcat. Я не очень знаком со всеми этими видео / медиа материалами, но я предполагаю, что легче отправлять изображения, а не пакеты данных видео. Примером URL потока может быть `http: //192.168.254.102: 8080 / stream? Topic = / camera / rgb / image_color`. Andrew 10 лет назад 0

1 ответ на вопрос

0
Andrew

Я нашел команду vlc, которая решила мою проблему:

vlc -I dummy \ http://192.168.254.102:8080/stream?topic=/camera/rgb/image_color/ \ --video-filter=scene \ --vout=dummy \ --scene-format=jpg \ --scene-ratio=1 \ --scene-prefix=snapshot \ --scene-path=/home/andrew/frames \ vlc://quit 

Это сохраняет каждый кадр из потока. Если я хочу, чтобы захватить один кадр каждые 10, --scene-ratioзначение может изменено на 10: --scene-ratio=10.