{"id":105321,"date":"2022-10-18T09:36:38","date_gmt":"2022-10-18T07:36:38","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/pervyj-vypusk-libcamera-steka-dlya-podderzhki-kamer-v-linux"},"modified":"2022-10-18T09:36:38","modified_gmt":"2022-10-18T07:36:38","slug":"pervyj-vypusk-libcamera-steka-dlya-podderzhki-kamer-v-linux","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/pervyj-vypusk-libcamera-steka-dlya-podderzhki-kamer-v-linux","title":{"rendered":"Primeira vers\u00e3o do libcamera, uma pilha de suporte a c\u00e2meras no Linux","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ap\u00f3s quatro anos de desenvolvimento, foi formada a primeira vers\u00e3o do projeto libcamera (0.0.1), que oferece uma pilha de software para trabalhar com webcams, c\u00e2meras fotogr\u00e1ficas e sintonizadores de TV no Linux, Android e ChromeOS, continuando o desenvolvimento da API V4L2 e, eventualmente, substituindo-a. Como a API da biblioteca ainda continua a mudar e n\u00e3o est\u00e1 estabilizada, o projeto at\u00e9 agora se desenvolveu sem bifurca\u00e7\u00e3o de vers\u00f5es individuais, utilizando um modelo de desenvolvimento cont\u00ednuo. Em resposta \u00e0 necessidade das distribui\u00e7\u00f5es de acompanhar as mudan\u00e7as na API que afetam a compatibilidade e para simplificar a entrega da biblioteca em pacotes, agora foi tomada a decis\u00e3o de formar lan\u00e7amentos periodicamente, refletindo o n\u00edvel de mudan\u00e7a do ABI e da API. O c\u00f3digo do projeto \u00e9 escrito em C++ e distribu\u00eddo sob a licen\u00e7a LGPLv2.1.       <\/p>\n<p>O projeto est\u00e1 sendo desenvolvido por desenvolvedores de subsistemas multim\u00eddia do n\u00facleo Linux em colabora\u00e7\u00e3o com alguns fabricantes de c\u00e2meras, visando normalizar a situa\u00e7\u00e3o do suporte a c\u00e2meras para smartphones e dispositivos embutidos no Linux, que est\u00e3o vinculados a drivers propriet\u00e1rios. A API V4L2 j\u00e1 existente no n\u00facleo Linux foi criada considerando o funcionamento com webcams tradicionais, e \u00e9 mal adaptada para a recente tend\u00eancia de transferir a funcionalidade do MCU para o CPU.    <\/p>\n<p>Ao contr\u00e1rio das c\u00e2meras tradicionais, nas quais as opera\u00e7\u00f5es de processamento inicial de imagens s\u00e3o realizadas por um processador especializado embutido na c\u00e2mera (MCU), nos dispositivos incorporados, para reduzir os custos, essas fun\u00e7\u00f5es s\u00e3o transferidas para o CPU principal e requerem um driver mais complexo, incluindo componentes licenciados que n\u00e3o podem ser abertos. Dentro do projeto libcamera, apoiadores de software livre e fabricantes de hardware tentaram criar uma solu\u00e7\u00e3o de compromisso que, por um lado, atendesse \u00e0s necessidades dos desenvolvedores de software livre e, por outro, protegesse a propriedade intelectual dos fabricantes de c\u00e2meras.     <\/p>\n<p>A pilha proposta pela biblioteca libcamera \u00e9 completamente implementada no espa\u00e7o do usu\u00e1rio. Para garantir a compatibilidade com os ambientes e aplicativos existentes, s\u00e3o fornecidas camadas de compatibilidade com as APIs V4L, Gstreamer e Android Camera HAL. Componentes propriet\u00e1rios espec\u00edficos de cada c\u00e2mera que interagem com o hardware s\u00e3o organizados na forma de m\u00f3dulos executados em processos separados e que interagem com a biblioteca atrav\u00e9s de IPC. Os m\u00f3dulos n\u00e3o t\u00eam acesso direto ao dispositivo e se comunicam com o hardware atrav\u00e9s de uma API intermedi\u00e1ria, cujos pedidos s\u00e3o verificados, filtrados e limitados apenas ao acesso \u00e0s funcionalidades necess\u00e1rias para o controle da c\u00e2mera.    <\/p>\n<p>A biblioteca tamb\u00e9m oferece acesso a algoritmos para processamento e aprimoramento da qualidade de imagens e v\u00eddeos (ajuste de balan\u00e7o de brancos, redu\u00e7\u00e3o de ru\u00eddo, estabiliza\u00e7\u00e3o de v\u00eddeo, foco autom\u00e1tico, sele\u00e7\u00e3o da exposi\u00e7\u00e3o, etc.), que podem ser conectados na forma de bibliotecas externas abertas ou m\u00f3dulos isolados propriet\u00e1rios. A API oferece acesso a fun\u00e7\u00f5es como defini\u00e7\u00e3o das funcionalidades de c\u00e2meras externas e integradas dispon\u00edveis, utiliza\u00e7\u00e3o de perfis de dispositivos, processamento de eventos de conex\u00e3o e desconex\u00e3o de c\u00e2meras, controle da captura de dados das c\u00e2meras em n\u00edvel de quadros individuais e sincroniza\u00e7\u00e3o de fotos com a opera\u00e7\u00e3o do flash. \u00c9 poss\u00edvel operar separadamente com v\u00e1rias c\u00e2meras no sistema e organizar a captura simult\u00e2nea de v\u00e1rios fluxos de v\u00eddeo de uma \u00fanica c\u00e2mera (por exemplo, um com baixa resolu\u00e7\u00e3o para videoconfer\u00eancia, e outro com alta resolu\u00e7\u00e3o para grava\u00e7\u00e3o em disco).<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57931\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043b\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 libcamera (0.0.1), \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0441\u0442\u0435\u043a \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u043c\u0435\u0440\u0430\u043c\u0438, \u0444\u043e\u0442\u043e\u043a\u0430\u043c\u0435\u0440\u0430\u043c\u0438 \u0438 TV-\u0442\u044e\u043d\u0435\u0440\u0430\u043c\u0438 \u0432 Linux, Android \u0438 ChromeOS, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 API V4L2 \u0438 \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0437\u0430\u043c\u0435\u043d\u0438\u0442 \u0435\u0433\u043e. \u0422\u0430\u043a \u043a\u0430\u043a API \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0435\u0449\u0451 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0438 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d, \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043f\u0440\u043e\u0435\u043a\u0442 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u043b\u0441\u044f \u0431\u0435\u0437 \u043e\u0442\u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u044b\u043f\u0443\u0441\u043a\u043e\u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-105321","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043b\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 libcamera (0.0.1), \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0441\u0442\u0435\u043a \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u043c\u0435\u0440\u0430\u043c\u0438, \u0444\u043e\u0442\u043e\u043a\u0430\u043c\u0435\u0440\u0430\u043c\u0438 \u0438 TV-\u0442\u044e\u043d\u0435\u0440\u0430\u043c\u0438 \u0432 Linux, Android \u0438 ChromeOS, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/news\/pervyj-vypusk-libcamera-steka-dlya-podderzhki-kamer-v-linux\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a libcamera, \u0441\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043a\u0430\u043c\u0435\u0440 \u0432 Linux | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043b\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 libcamera (0.0.1), \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0441\u0442\u0435\u043a \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u043c\u0435\u0440\u0430\u043c\u0438, \u0444\u043e\u0442\u043e\u043a\u0430\u043c\u0435\u0440\u0430\u043c\u0438 \u0438 TV-\u0442\u044e\u043d\u0435\u0440\u0430\u043c\u0438 \u0432 Linux, Android \u0438 ChromeOS, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/pervyj-vypusk-libcamera-steka-dlya-podderzhki-kamer-v-linux\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2022-10-18T07:36:38+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-10-18T07:36:38+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Primeiro lan\u00e7amento do libcamera, pilha para suporte a c\u00e2meras no Linux | ProHoster","description":"Ap\u00f3s quatro anos de desenvolvimento, foi formado o primeiro lan\u00e7amento do projeto libcamera (0.0.1), que oferece uma pilha de software para trabalhar com c\u00e2meras de v\u00eddeo, c\u00e2meras fotogr\u00e1ficas e sintonizadores de TV no Linux, Android e ChromeOS, que continua.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/pervyj-vypusk-libcamera-steka-dlya-podderzhki-kamer-v-linux","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a libcamera, \u0441\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043a\u0430\u043c\u0435\u0440 \u0432 Linux | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043b\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430 libcamera (0.0.1), \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0441\u0442\u0435\u043a \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u043c\u0435\u0440\u0430\u043c\u0438, \u0444\u043e\u0442\u043e\u043a\u0430\u043c\u0435\u0440\u0430\u043c\u0438 \u0438 TV-\u0442\u044e\u043d\u0435\u0440\u0430\u043c\u0438 \u0432 Linux, Android \u0438 ChromeOS, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442.","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/pervyj-vypusk-libcamera-steka-dlya-podderzhki-kamer-v-linux","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2022-10-18T07:36:38+00:00","article:modified_time":"2022-10-18T07:36:38+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/105321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=105321"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/105321\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=105321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=105321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=105321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}