Gst-launch: Запазване на всяко изображение на видео поток, докато го гледате

В момента се опитвам да запазя видео поток във файлове с помощта на gst-launch, докато едновременно с това гледам самото видео (използвайки v4l2src). Към момента получих това, като направих работа със запазване на изображенията във файлове с помощта на ! multifilesink, докато има tcl-скрипт, който автоматично показва най-новия файл в една папка в X windows. Това работи, но разбира се има малко забавяне, което бих искал да намаля.

Има ли възможност да направите това само с помощта на gst-launch? За съжаление нямам много опит с gstreamer. Може ли да се направи запазване на файловете с multifilesink, докато се показват с помощта на multifilesrc? Или е невъзможно само с gst-launch?


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


Отговори (1)


Възможно е, има елемент "tee", който ще възпроизведе потока в неговите изходни подложки.

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

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. Videoconvert просто няма да работи (това е монохромна камера). - person miorli; 23.09.2014
comment
Това е странно. Videoconvert може да обработва въведени стойности на сивото (стига да не е наистина монохромен/двоичен), трябва да работи. Получавате ли някаква грешка от конвейера? Възможно е да ви липсва видеоконвертиране преди jpegenc. (Току-що актуализирах отговора по-горе). Би било чудесно да преминете към 1.x, тъй като ще се възползвате от актуализации и корекции на грешки. - person thiagoss; 23.09.2014
comment
всеки път, когато използвам gst-launch 1.0 v4l2src! видеоконвертиране! ximagesink казва: Опитах да заснема в YV12, но устройството върна формат СИВ Когато добавя! video/x-raw,format=GREY ! казва, че не може да свърже v4l2src с videconvert. Ето защо използвам 0.10. Работи с ffmpegcolorspace. - person miorli; 25.09.2014
comment
Форматите 1.0 caps са: GRAY8, GRAY16_BE, GRAY16_LE и v4l2src кодът преобразува GRAY в GRAY8. Така че във филтъра за главни букви трябва да използвате GRAY8, GRAY е от v4l2 API. Искате ли да заснемете в YV12 или GRAY8? Вашето устройство поддържа ли YV12? И какво се случва, ако не посочите формата? - person thiagoss; 26.09.2014
comment
Ако не посоча формата, получавам грешка, че gstreamer се е опитал да получи формата в yv12, но е срещнал СИВО, така че опитах СИВО. Благодаря за подсказката, за съжаление мога да пробвам GRAY8 само след една седмица. YV12 не се поддържа от устройството и ние сме добре с GRAY8. - person miorli; 28.09.2014
comment
Добре. След преинсталиране на цялата система вече работи. Поне с ximagesink. autovideosink изобщо не работи, все още имам проблема с GREY/YV12 там. - person miorli; 06.10.2014