Member
Статус: Не в сети Регистрация: 04.03.2008 Откуда: Москва
Привет всем. Суть вопроса в следующем - нужно написать программу , которая выделяет из видеофайла (mpeg-2/4) движущиеся части и передаёт их дальше. Конкретно видео с камер наблюдения , и нужно передавать на сервер не всю картинку , а только двигающиеся части, а сервер отправляет это дальше клиентам в локальной сети. Сейчас делается код сервера и клиента , а вот с алгоритмом обработки видео туговато.. Собственно , подобные вещи наверняка уже делались , но поиск пока даёт мало. Буду благодарен за тыканье носом в форумы и темы , где подобное обсуждается, крайне желательно с примерами кода. Как хотя бы С++ работает c mpeg-4 .. Или другой вариант сделать это на уровне протокола , например UDP или RTP , это возможно вообще , как думаете ? Если да , то может будут мысли по алгоритму ? Такой вариант , кстати , более предпочителен..
_________________ В наших глазах крики "Вперёд!", в наших глазах окрики "Стой!" ... в наших глазах закрытая дверь что тебе нужно - выбирай..
этта... с мпег2, наверное, так просто не получится, а в мпег4 собственно одной из фичей сжатия является кодирование движения блоков. т.е. достаточно вытаскивать вектора движения блоков, оценивать их, на основе этой оценки вырезать кусок кадра (тут уже придётся распаковать видео до конца), закодировать обратно и заслать. ну либо на камере ещё до сжатия в мпег4 это дело делать, для этого опять же можно использовать алгоритм из мпег4. чтоб алгоритмы поглядеть скачай ffmpeg и пошарься там в libavcodec
Member
Статус: Не в сети Регистрация: 04.03.2008 Откуда: Москва
ToSHiC Хм.. Попробую сформулировать конкретней. Будет с камер поступать поток mpeg4, требуется сделать приложение , которое этот поток обработает , и отправит дальше только движущуюся часть картинки. Собственно нужно понять , как это приложение сделать , т.е. как открыть и "разобрать" видеопоследовательность. ffmpeg скачал , порылся в libavcodec ,посмотрел mpegvideo.h и mpeg4video_parser.c .. Ну, понятно , что отношение это имеет , только вот как применить.. Я так подумал , это же фактически детектор движения , а он куда только не пихается , вон даже в старых смартфонах есть проги, реагирующие на движение. Необязательно , кстати, сжимать видео кодеком при передаче . Какие короче файлы нужно использовать из libavcodec , чтобы открыть видео в С и чё то сделать с ним ?
_________________ В наших глазах крики "Вперёд!", в наших глазах окрики "Стой!" ... в наших глазах закрытая дверь что тебе нужно - выбирай..
двиущуюся часть - это вырезать прямоугольник из картинки и его слать, или полный кадр нужен, но информацию отправлять только о тех областях, где движуха есть? если второе - то мпег4 собственно так и работает.
как распаковать-запаковать - смотри в примерах, которые вместе с ффмпегом идут, там всё довольно просто.
Member
Статус: Не в сети Регистрация: 04.03.2008 Откуда: Москва
ToSHiC писал(а):
двиущуюся часть - это вырезать прямоугольник из картинки и его слать
вообще изначально задумывалось так.
ToSHiC писал(а):
полный кадр нужен, но информацию отправлять только о тех областях, где движуха есть
то есть? на выходе ведь будет полная картинка. Хотя .. То есть один раз посылается вся картинка , а потом только движущиеся части? Тут нужно то , что проще в реализации. кстати , в папке tests исходники уже не такой ад =) но всё же.. не подскажешь , в каком файле описывается код воспроизведения?
_________________ В наших глазах крики "Вперёд!", в наших глазах окрики "Стой!" ... в наших глазах закрытая дверь что тебе нужно - выбирай..
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения