Gst-launch: Сохранение каждого изображения видеопотока во время его просмотра

В настоящее время я пытаюсь сохранить видеопоток в файлы с помощью gst-launch, одновременно просматривая само видео (используя v4l2src). На данный момент я получил это, работая с сохранением изображений в файлы с помощью ! multifilesink при наличии tcl-скрипта, который автоматически показывает самый новый файл в одной папке в X-окнах. Это работает, но, конечно, есть небольшая задержка, которую я хотел бы уменьшить.

Есть ли возможность сделать это только с помощью gst-launch? К сожалению, я не очень разбираюсь в gstreamer. Можно ли сохранить файлы с помощью multifilesink, показывая их с помощью multifilesrc? Или нельзя только с gst-launch?


person miorli    schedule 22.09.2014    source источник


Ответы (1)


Возможно, есть элемент «тройник», который будет реплицировать поток в своих исходных площадках.

Так, например:

gst-launch-1.0 v4l2src ! tee name=t ! queue ! videoconvert ! autovideosink t. ! queue ! videoconvert ! jpegenc ! multifilesink location=image_%06d.jpg

Это должно отображать и сохранять в jpg с multifilesink.

Кроме того, кажется, что вы используете gstreamer 0.10, он (2 года?) устарел и не поддерживается. Пожалуйста, перейдите на 1.x

person thiagoss    schedule 22.09.2014
comment
Спасибо. Производитель камеры сказал мне использовать gstreamer 0.10, потому что сама камера тестируется только с ним. Уже интересовался этим. - person miorli; 22.09.2014
comment
То же решение применимо к 0,10. Tee присутствует в 0.10, замените videoconvert на ffmpegcolorspace. Все остальное должно быть одинаковым. - person thiagoss; 22.09.2014
comment
Да, я действительно должен был сделать это с 0.10. Камера, которую я использую, кажется, имеет проблемы при использовании 1.0. Видеоконвертировать просто не получится (камера монохромная). - person miorli; 23.09.2014
comment
Это странно. Videoconvert может обрабатывать ввод в градациях серого (если он не является монохромным / двоичным), он должен работать. Вы получаете какую-либо ошибку от конвейера? Возможно, вам не хватает видеоконвертера перед jpegenc. (Я только что обновил ответ выше). Было бы здорово перейти на 1.x, так как вы выиграете от обновлений и исправлений. - person thiagoss; 23.09.2014
comment
всякий раз, когда я использую gst-launch 1.0 v4l2src! видео конвертировать ! ximagesink пишет: Пытался захватить в YV12, но устройство вернуло формат GRAY Когда я добавляю ! видео/x-raw, формат=СЕРЫЙ ! он говорит, что не может связать v4l2src с видеоконвертером. Вот почему я использую 0,10. Он работает с ffmpegcolorspace. - person miorli; 25.09.2014
comment
Форматы заглавных букв версии 1.0: GRAY8, GRAY16_BE, GRAY16_LE и код v4l2src сопоставляют GRAY с GRAY8. Поэтому в фильтре заглавных букв вы должны использовать GRAY8, GRAY из API v4l2. Вы хотите снимать в YV12 или GRAY8? Ваше устройство поддерживает YV12? А что произойдет, если вы не укажете формат? - person thiagoss; 26.09.2014
comment
Если я не укажу формат, я получаю сообщение об ошибке, что gstreamer пытался получить формат в yv12, но столкнулся с СЕРЫМ, поэтому я попробовал СЕРЫЙ. Спасибо за подсказку, к сожалению, я смогу попробовать GRAY8 только через неделю. YV12 не поддерживается устройством, а с GRAY8 все в порядке. - person miorli; 28.09.2014
comment
Ok. После переустановки всей системы все работает. По крайней мере, с ximagesink. autovideosink вообще не работает, у меня все еще есть проблема GRAY/YV12. - person miorli; 06.10.2014