Как конвертировать изображение из стандартного ввода в видео с помощью gstreamer - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь преобразовать изображения из stdin в реальном времени в видео с помощью gstreamer

Например, у меня есть несколько изображений JPEG в папке изображений с именем img.% 04d.jpeg.Я хочу передать изображение как stdin на gstreamer, чтобы я мог обработать его в реальном времени для моего случая использования.Ниже приведен лишь упрощенный пример

Я могу это сделать, если сначала преобразую его в ogg.

gst-launch-1.0 multifilesrc location="image/img.%04d.jpeg" index=0 caps="image/jpeg,framerate=\(fraction\)1/1" ! jpegdec ! videoconvert ! videorate ! theoraenc ! oggmux ! filesink location="images.ogg"


cat images.ogg | gst-launch-1.0 fdsrc fd=0 ! decodebin ! progressreport update-freq=1 ! videoscale ! video/x-raw,width=960,height=480 ! queue ! videoconvert ! videorate ! video/x-raw, framerate=1/1 ! x264enc ! avimux ! filesink location=new_video.avi

Однако, если я хочу преобразовать его напрямую, используя метод ниже, avi видео пусто

cat image/*.jpeg | gst-launch-1.0 fdsrc fd=0 ! decodebin ! progressreport update-freq=1 ! videoscale ! video/x-raw,width=960,height=480 ! queue ! videoconvert ! videorate ! video/x-raw, framerate=1/1 ! x264enc ! avimux ! filesink location=new_video.avi

Кто-нибудь может помочь с этой проблемой?Обратите внимание, что я хочу использовать stdin, потому что в моем случае jpeg генерируется один за другим в реальном времени.

...