LINUX.ORG.RU

Перекодировать поток .h264 в набор bmp на de0-nano-soc

 , , ,


0

1

Всем доброго дня.

В линуксе новичок (то есть никогда его не использовал). Изучаю по мере решения задачи. Есть плата DE0-nano-SOC (cortex-A9 1GHz, 2 ядра, 1Гб ddr3б). На ней стоит какой-то linux (в такого рода сборках я не особо разбираюсь) из yocto project, kernel 3.13.

Мне нужно из двух камер на проце Hi3518C получать видео поток, конвертировать кадры в bmp и, далее, обрабатывать своим алгоритмом. По сути я хочу получить периферийное зрение и испытывать нейросеточку. Я не особо владею инструментарием линукс (кроме тех, что прошел на курсах степика) и не совсем понимаю с какой стороны мне нужно подойти к этой задаче. Погуглив я так понял, что мне нужно получать кадры через v4l2 с камеры и конвертировать их с помощью ffmpeg. Далее я их уже смогу обрабатывать.

Подскажите правильно ли я выбрал подход? Или я вообще предложил ерунду и есть нормальный рабочий метод?

PS. Еще заодно эта камера имеет управляемый зум. Знает ли кто как им можно управлять? У меня на винде есть некая тестовая прога (даже не помню где взял), с помощью которой можно произвести настройки IP и другие у камеры. Также получить видео поток и вывести на монитор вплоть до 16 камер. У этой проги открыт проект на VC++, но он ни разу не компилится. Вываливается миллиард ошибок и я не стал его особо копать. Он использует либы .h264 для декодирования. Они естественно на одноплатнике не пойдут и я не стал париться особо с этим проектом. Правда если потребуется я буду выкапывать оттуда команды управления ptz камеры.

Всем заранее спасибо за советы.

Делай всё как на венде, ведь в ней ты уже профи. Только с

инструментарием линукс

mos ★★☆☆☆ ()

зачем перекодировать h264, у hisilicon есть sdk в котором примеры как получать видео, можно забирать сразу сырое и посылать в «нейросеточку»

hizel ★★★★★ ()
Ответ на: комментарий от Nakita-Markov

Вроде прикопаться не к чему, но мне кажется, что можно наколоться с нумерацией «%07d.bmp», обломаться с объёмом данных или ещё чем то в этом роде.

И, кстати, это и есть прямой запрос кадров с камеры в ffmpeg, или он будет получать видеопоток h264 и из него нарезать кадры? На арм-е это было бы накладно. Как и 25 кадров в секунду.

kirill_rrr ★★★★★ ()
Последнее исправление: kirill_rrr (всего исправлений: 2)

В общем поймал кадры пока что с десктопа: ffmpeg -i ‘rtsp://192.168.0.110:554/user=admin&password=&channel=1&stream=0’ -frames 200 -f image2 image_%03d.bmp

В данном случае снимается 200 кадров и укладываются в разные bmp.

Предложение транслировать поток в чистом виде мне нравится, но один файл с разрешением 1280*960 выходит на 3 686 454 байт, что равно 1280 * 960 * 3 * 25fps * 8bit * 2камеры = 1,5гБит lan.

Для моей дев борды это слишком много, да и не нужно. Вообще хочется получить максимум fps, но это будет наименьшим приоритетом.

Raiden ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.