Создать поток MJPEG с помощью GStreamer - PullRequest
3 голосов
/ 06 октября 2011

Я пытаюсь имитировать IP-камеру, которая использует MJPEG. В данный момент для получения потока в командной строке я использую:

gst-launch -v souphttpsrc location=http://IP:PORT/video.mjpg is-live=true user-id=USER user-pw=PASSWD ! multipartdemux ! jpegdec ! ffmpegcolorspace ! ximagesink

Но я понятия не имею, как отменить процесс

gst-launch -v videotestsrc ! ??? ! ...

Нет такого, как souphttpsink думать, как это сделать?

Ответы [ 2 ]

2 голосов
/ 18 марта 2013

Напишите сценарий CGI (Perl, C / C ++) и поместите в каталог веб-сервера cgi-bin / cgi_bin таких серверов, как Apache или Lighttpd, предоставив разрешения для исполняемого файла cgi и задав правильную конфигурацию веб-сервера.Посмотрите на этот пример, чтобы просмотреть изображение в формате JPEG в Perl http://www.perlmonks.org/?node_id=18565.Поскольку поток mjpeg представляет собой не что иное, как серию jpegs, вместо просмотра кадра изображения с диска все, что вам нужно, это получить изображение из памяти (это может быть кадр jpeg, полученный с веб-камеры или диска. Вы можете сжатьнесжатый кадр с использованием libjpeg) и поместите код в цикл while для серии изображений.Это становится вашим потоком mjpeg.MIME-тип, очевидно, images / jpeg.

1 голос
/ 26 февраля 2012

Для этого вам нужно написать (мини) сервер http.Вы можете посмотреть, например, на rygel (сервер upnp на gnome).

...