Как одновременно писать и смотреть видео с вебкамеры в Linux?
Вылезла тут у меня задачка — надо одновременно показывать видео с вебкамеры (на весь экран) и писать его же на диск (картинка 320х240 от 15 до 30 fps). При этом критично время отображения, т.е. задержек быть не должно или они должны быть незначительными.
Казалось бы VLC отлично подойдет, но он упорно не хочет показывать видео real-time, хотя кеширование убрал (но смутно помню что где-то есть еще одно то ли кеширование, то ли задержка), так что добавлять еще и запись даже не пробовал. А вот mplayer вполне шустро показывает, но одновременно писать не может.
Как бы это сделать в ubuntu (11.10, архитектура ARM (Toshiba AC100))? Да еще и запихать в скрипт.
решение проблемы (вдруг кому то тоже пригодится) — использовать gstreamer
вот такая простенькая команда в консоле gst-launch-0.10 --eos-on-shutdown v4l2src device=/dev/video1 ! video/x-raw-yuv,width=360,height=288,framerate=25/1,norm=NTSC ! tee name=my_videosink ! videorate ! jpegenc ! avimux ! filesink location=video.avi my_videosink. ! queue ! ffmpegcolorspace ! ximagesink
берет видео с аналогового источника (easycap60), показывает картинку с него и кодирует MotionJPEG
к сожалению выше 360х288 видео совсем медленно работает, но и 320х240 под мои задачи подходит более чем =)
Странно, ради интереса запустил VLC под Debian на своем ноуте Asus P81IJ — выбрал потоковое вещание, запись в файл и отображать на весь экран — все показывает без тормозов + пишет файл.
у меня мощности не те может быть, но VLC не осиливает подобное (хотя и просто вывод через VLC идет с задержкой)… ладно, буду сам ковырять дальше варианты