это мой первый пост здесь, и я надеюсь, что смогу найти некоторую помощь
Я работаю над встроенным linux на плате samsung ok6410 и камере ov9650 cmos
Мне нужно сделать видеозаписьи сохранить его на SD-карте
Я хочу использовать кольцевой буфер, который захватывает видео и, когда он заполнится, позволяет новым данным перезаписывать старые.
Есть флаг, который, когда поднят, захват продолжается в течение 10 секунд, затем останавливается.Видео сохраняется на SD-карте должно содержать 10 секунд до поднятия флага и 10 секунд после поднятия.
Я читал пример захвата на официальном сайте спецификаций API v4l2 здесь
http://free -electrons.com / kerneldoc / latest / video4linux / API.html
но есть некоторые моменты, которые я не могу понять или не знаю, правильно ли я понимаю
В этом примере имеется 4 буфера кадров, каждый буфер может содержать один кадр.Это правильно?
Существует переменная (frame_count), которая инициализирована на 70, означает ли это, что после завершения этой программы у меня будет видео, содержащее 70 кадров?
Что делают fns (основной цикл) и (рамка чтения)?Я знаю, что они должны делать, но не могу понять написанный код, циклы ... и т.д.
Как я могу настроить fps в этом коде?или я должен записать значение в регистры камеры?
После захвата видео у меня будет буфер, заполненный необработанными данными, я хочу сжать его или использовать кодеки для его сохраненияКак MPEG, я могу изменить формат пикселя, который будет сжат (например, MPEG) вместо YUYV?или что я должен сделать, чтобы сжать видео?кодеки или что?
Можно ли записать эти необработанные данные из буфера в файл .yuv?Я нашел программное обеспечение, которое может воспроизводить видео этого формата.
Можно ли использовать циклические буферы вместо линейных буферов для хранения захваченного видео?
Я знаю, что мой пост слишком длинный, но я новичок и не могу найти учебники, которые могли бы помочь мне написать мой код.
заранее спасибо