{"id":677,"date":"2015-10-22T20:51:08","date_gmt":"2015-10-22T19:51:08","guid":{"rendered":"http:\/\/www.walterschlag.net\/?p=677"},"modified":"2015-12-05T12:55:51","modified_gmt":"2015-12-05T11:55:51","slug":"am-raspberry-pi-eine-usb-webcam-betreiben","status":"publish","type":"post","link":"https:\/\/inator.at\/?p=677","title":{"rendered":"Am Raspberry PI eine USB Webcam betreiben"},"content":{"rendered":"<p>Dafuer gibt es unzaehlige Anleitungen im Internet. Die meissten davon funktionieren<br \/>\naber nicht, oder nicht ordentlich.<\/p>\n<p>Grundsaetzlich gibt es 2 vielversprechende Programme dafuer :<\/p>\n<p>motion -> braucht aber recht viel CPU (kann theoretisch auch mehr; z.B. aufzeichnen, sobald sich was bewegt&#8230;)<br \/>\nmjpegstreamer -> besser aber nur mit Tricks optimal :<\/p>\n<p>Wenn man den einfach so kompiliert, dann funktioniert die &#8222;mjpeg&#8220; Option nicht.<br \/>\nDie Webcam geht nur mit dem &#8222;-y&#8220; Parameter; sie liefert dann &#8222;raw&#8220; &#8211; Bilder<br \/>\nan die CPU und die CPU muss daraus den Mpeg Stream erzeugen.<br \/>\nBeim PI2 mit seinen 4 Kernen ist das zwar nicht schlimm, aber schoen ist es auch nicht.<br \/>\n(1 Kern zu 100% ausgelastet)<br \/>\nBeim PI1 ist das natuerlich voelliger Non-Sense. In diesem Fall waere der PI natuerlich fuer andere Einsatzzwecke<br \/>\nkaum mehr zu gebrauchen.<\/p>\n<p>Nach einiger Recherche hab ich dafuer aber einen Patch gefunden unter :<br \/>\nhttps:\/\/www.raspberrypi.org\/forums\/viewtopic.php?t=97983<\/p>\n<p>Damit klappts dann auch ohne &#8222;-y&#8220;; die Kamera liefert dann direkt komprimierte Bilder zur CPU.<br \/>\n -> CPU Last = 1% beim PI1; 0,3% beim PI2<\/p>\n<p>Allerdings es es halt doch einiges an Aufwand, alles korrekt zusammenzusuchen, zu patchen etc.<\/p>\n<p>Drum hab ich mein gepatchtes Build-Verzeichnis mal gepackt, und hier nochmal hochgeladen.<br \/>\nDann gehts einfacher :<\/p>\n<p>apt-get update<br \/>\napt-get install libjpeg8-dev imagemagick libv4l-dev<br \/>\nln -s \/usr\/include\/linux\/videodev2.h \/usr\/include\/linux\/videodev.h<br \/>\nmkdir -p \/install<br \/>\ncd \/install<br \/>\nwget http:\/\/downloads.walterschlag.net\/mjpg-streamer.tgz<br \/>\ntar xfz mjpg-streamer.tgz<br \/>\ncd mjpg-streamer<br \/>\nmake clean # Fuer den Fall, dass schon mal kompiliert wurde &#8230;<br \/>\nmake<\/p>\n<p>In der Datei &#8222;start.sh&#8220; finden sich nun einige Beispiele, wie der Streamer zu starten ist.<br \/>\nMein Start Script sieht so aus :<\/p>\n<p>#!\/bin\/sh<br \/>\ncd \/install\/mjpg-streamer<br \/>\nexport LD_LIBRARY_PATH=&#8220;\/install\/mjpg-streamer&#8220;<br \/>\n.\/mjpg_streamer -i &#8222;input_uvc.so -d \/dev\/video0 -r 1280&#215;960 -f 5&#8220; &#8211;output &#8222;output_http.so -c BENUTZERNAME:PASSWORT -w www\/&#8220; &#038;<\/p>\n<p>Und wird &#8211; ganz einfach &#8211; ueber die \/etc\/rc.local mitgestartet &#8230;<\/p>\n<p><iframe style=\"width:120px;height:240px;\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" frameborder=\"0\" src=\"\/\/ws-eu.amazon-adsystem.com\/widgets\/q?ServiceVersion=20070822&#038;OneJS=1&#038;Operation=GetAdHtml&#038;MarketPlace=DE&#038;source=ac&#038;ref=tf_til&#038;ad_type=product_link&#038;tracking_id=wwwwalterschl-21&#038;marketplace=amazon&#038;region=DE&#038;placement=B003R1O320&#038;asins=B003R1O320&#038;linkId=&#038;show_border=true&#038;link_opens_in_new_window=true\"><br \/>\n<\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dafuer gibt es unzaehlige Anleitungen im Internet. Die meissten davon funktionieren aber nicht, oder nicht ordentlich. Grundsaetzlich gibt es 2 vielversprechende Programme dafuer : motion -> braucht aber recht viel CPU (kann theoretisch auch mehr; z.B. aufzeichnen, sobald sich was bewegt&#8230;) mjpegstreamer -> besser aber nur mit Tricks optimal : Wenn man den einfach so &hellip; <a href=\"https:\/\/inator.at\/?p=677\" class=\"more-link\"><span class=\"screen-reader-text\">Am Raspberry PI eine USB Webcam betreiben<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-677","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"_links":{"self":[{"href":"https:\/\/inator.at\/index.php?rest_route=\/wp\/v2\/posts\/677","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inator.at\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inator.at\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inator.at\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/inator.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=677"}],"version-history":[{"count":3,"href":"https:\/\/inator.at\/index.php?rest_route=\/wp\/v2\/posts\/677\/revisions"}],"predecessor-version":[{"id":763,"href":"https:\/\/inator.at\/index.php?rest_route=\/wp\/v2\/posts\/677\/revisions\/763"}],"wp:attachment":[{"href":"https:\/\/inator.at\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=677"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inator.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=677"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inator.at\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}