{"id":415,"date":"2017-06-30T19:43:38","date_gmt":"2017-06-30T17:43:38","guid":{"rendered":"https:\/\/sharedinventions.com\/?page_id=415"},"modified":"2019-11-11T11:32:11","modified_gmt":"2019-11-11T10:32:11","slug":"rivetcam","status":"publish","type":"page","link":"https:\/\/sharedinventions.com\/rivetcam","title":{"rendered":"RivetCam"},"content":{"rendered":"<p>RivetCam is a photographic software for Linux operating system, where you can capture still images with full screen live-view. The software was design to be used to create stop-motion videos.<\/p>\n<p><a href=\"https:\/\/sharedinventions.com\/rivetcam\/vlcsnap-2017-07-01-11h19m10s801\/\" rel=\"attachment wp-att-449\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-449\" src=\"https:\/\/sharedinventions.com\/wp-content\/uploads\/2017\/06\/vlcsnap-2017-07-01-11h19m10s801.jpg\" alt=\"\" width=\"2880\" height=\"1674\" \/><\/a><\/p>\n<h1>Key features<\/h1>\n<ul>\n<li>Utilizes the full screen for viewing images,<\/li>\n<li>All actions are taken with the computer keyboard (thus no mouse is needed to use),<\/li>\n<li>Works with all v4l (video4linux) cameras (UVC webcams),<\/li>\n<li>Built with stop-motion in mind:\n<ul>\n<li>Onion skins,<\/li>\n<li>Motion preview,<\/li>\n<li>Manual camera controls, e.g. manual focus.<\/li>\n<li>Images can be organized to batches.<\/li>\n<\/ul>\n<\/li>\n<li>Camera specific configurations can be applied by the user,<\/li>\n<li>Resolution of the live-view can be set to match your screen resolution and have better fps.<\/li>\n<li>Open source with Java language.<\/li>\n<\/ul>\n<h1>Users guide<\/h1>\n<p>Please note, that at this state of the software RivetCam is <strong>not recommended for beginners<\/strong>. You will need to run commands in Linux terminal, edit configuration files to access camera specific features, etc.<\/p>\n<h2>Install<\/h2>\n<h4>Requirements<\/h4>\n<ul>\n<li>Linux<\/li>\n<li>Web camera<\/li>\n<\/ul>\n<p>This software uses v4l (video4linux), so obviously a Linux PC with a compatible web camera is required for this application to work. Java-Runtime needs to be installed (either Oracle JRE, or OpenJDK RE 1.8 or higher) but that is usually already available on most Linux installations.<\/p>\n<p>Install dependencies (Debian, Ubuntu):<\/p>\n<pre>sudo apt-get install openjdk-8-jre libjpeg8<\/pre>\n<p>Install dependencies &#8211; Raspbian:<\/p>\n<pre>sudo apt-get install openjdk-8-jre libjpeg8 wiringpi<\/pre>\n<h4>Download<\/h4>\n<blockquote>\n<p>Download: <a href=\"https:\/\/github.com\/prampec\/RivetCam\/releases\">https:\/\/github.com\/prampec\/RivetCam\/releases<\/a><\/p>\n<\/blockquote>\n<ol>\n<li>Download the ZIP release from the project page above, or you can alternatively build your own release from the sources.<\/li>\n<li>Unzip the RivetCam.zip archive to a desired place. (You want create a subfolder to unzip the content on that folder.)<\/li>\n<\/ol>\n<p>Some helper scripts are provided for specific platforms. (As the v4l requires some native libraries to work with java).<\/p>\n<p><a href=\"https:\/\/sharedinventions.com\/rivetcam\/screen-shot-2017-07-01-at-11-53-50\/\" rel=\"attachment wp-att-451\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-451\" src=\"https:\/\/sharedinventions.com\/wp-content\/uploads\/2017\/06\/Screen-Shot-2017-07-01-at-11.53.50.jpg\" alt=\"\" width=\"1858\" height=\"1238\" \/><\/a><\/p>\n<h2>Startup<\/h2>\n<p>To run the program you can use the provided helper scripts e.g. use the <strong>start-x86-64.sh<\/strong> . After startup you should see the preview of the connected webcam in full screen. Now you can use the keyboard to capture a still image, or modify options. See the &#8220;Keys&#8221; section for details.<\/p>\n<p>You are very likely to want to specify custom configurations (most likely the capture device and resolutions) in the <strong>setup.properties<\/strong>. See &#8220;Configuration&#8221; for details.<\/p>\n<p>A diagnostic tool is also provided see &#8220;Diagnostics&#8221; for details.<\/p>\n<h2>Keys<\/h2>\n<p>All the user interaction is done by the keyboard. Thus it is essential to know the keyboard shortcuts. Which are:<\/p>\n<p>[table]<\/p>\n<p>Key, Function, Description<\/p>\n<p>Esc, Quit, Exit from the application.<\/p>\n<p>Space, Capture, Captures a still image<\/p>\n<p>L, Live view, Turns between live-view\/preview<\/p>\n<p>Left\/Right arrow, Navigate in playback, When in playback mode\\, with the arrow keys you can step to a previous and a next image.<\/p>\n<p>P, Playback, Turns into Playback mode\\, where the last (some) images are played back in a high fps.<\/p>\n<p>O, Onion skin, Toggles onion skins on\/off: no onion\\, 1 layer\\, 2 layers<\/p>\n<p>Backspace, Remove last, Removes the last captured image.<\/p>\n<p>B, New batch, Creates new batch for storing further images.<\/p>\n<p>[custom],Control,You can configure keys to modify camera-specific controls.<\/p>\n<p>[\/table]<\/p>\n<p>Other keyboard actions can be associate with camera controls in the configuration. See the &#8220;Configuration&#8221; for details.<\/p>\n<p><a href=\"https:\/\/sharedinventions.com\/rivetcam\/vlcsnap-2017-07-01-11h17m24s591\/\" rel=\"attachment wp-att-448\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-448\" src=\"https:\/\/sharedinventions.com\/wp-content\/uploads\/2017\/06\/vlcsnap-2017-07-01-11h17m24s591.jpg\" alt=\"\" width=\"2880\" height=\"1672\" \/><\/a><\/p>\n<h2>Features in details<\/h2>\n<p>When the program starts up, you will see a live view of the webcam image. The <strong>live-view<\/strong> is likely to be in a lower resolution and lower image quality than the captured image. In RivetCam you can configure different <strong>resolution<\/strong> for live-view and for capture. This way the live view can be smooth with high fps. On the down side of this, webcams likely to loose controls when switching. Meaning: e.g. the focus you have set previously are lost when switching to a higher resolution. This is why manual configuration needs to persisted before switching, and loaded in the new resolution.<\/p>\n<p>In <strong>preview mode<\/strong> however you will see the actual captured image. In preview mode you can step back and forward within the previously captured photos. We have a cache here with a default of 20 images to choose from.<\/p>\n<p><strong>Playback mode<\/strong> actually the same as the preview mode, but in this mode the last frames played back automatically in a constant frequency.<\/p>\n<p><strong>Onion skin<\/strong> &#8211; With this option, previously captured images are also appears on the live view with a transparency. This is very handy when forming moves in a stop-motion video shoot.<\/p>\n<p>Note, the <strong>aspect<\/strong> ratio of the still image (preview and onion skin) and the aspect ratio of the live-view may differs according to your configuration. That might cause onion skin pointless, so please consider setting up the still-image and the live-view with same aspect ratio in the configuration.<\/p>\n<p>When <strong>removing<\/strong> the last captured photo, it will delete the image from both the filesystem, and the cache. You can delete more images one after an other.<\/p>\n<p><strong>Batch<\/strong> is a group of images. You can organize your shots in batches to simplify further processing. When the software starts up, it always creates photos in a new batch.<\/p>\n<p>Probably to most powerful feature of the application is the <strong>camera-specific setup<\/strong>. You can configure your own keyboard shortcuts, that controls the camera. See &#8220;Configuration&#8221; for details.<\/p>\n<p><a href=\"https:\/\/sharedinventions.com\/rivetcam\/screen-shot-2017-07-01-at-12-05-34\/\" rel=\"attachment wp-att-450\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-450\" src=\"https:\/\/sharedinventions.com\/wp-content\/uploads\/2017\/06\/Screen-Shot-2017-07-01-at-12.05.34.jpg\" alt=\"\" width=\"2127\" height=\"1239\" \/><\/a><\/p>\n<h2>Configuration<\/h2>\n<p>Many of the software behavior can be changed by a configuration file. A sample configuration file is provided (setup-sample.properties) where you can find samples of the available configurations.<\/p>\n<p>The configuration file is in <a href=\"https:\/\/docs.oracle.com\/cd\/E23095_01\/Platform.93\/ATGProgGuide\/html\/s0204propertiesfileformat01.html\">java-properties format<\/a>, and should be saved with name &#8220;setup.properties&#8221; in the launching folder.<\/p>\n<p>If you want to create your own configuration file, I recommend you to start from the provided file like follows:<\/p>\n<ol>\n<li>Copy the existing &#8220;setup-sample.properties&#8221; file.<\/li>\n<li>Paste it into the same (installation) folder. (Make a duplication.)<\/li>\n<li>Rename the newly created file to become &#8220;setup.properties&#8221;.<\/li>\n<li>Edit the new setup.properties file, to apply your configuration.<\/li>\n<\/ol>\n<p><a href=\"https:\/\/sharedinventions.com\/rivetcam\/rivetcam-editconfiguration\/\" rel=\"attachment wp-att-474\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-474\" src=\"https:\/\/sharedinventions.com\/wp-content\/uploads\/2017\/06\/RivetCam-EditConfiguration.png\" alt=\"\" width=\"1700\" height=\"376\" \/><\/a><\/p>\n<p>Note that all configurable parameters are optional, and has a default value. This way you do not even need to provide any setup.properties file.<\/p>\n<p>[table]<\/p>\n<p>Parameter, Description, Default<\/p>\n<p>videoDevice,Video device file name,\/dev\/video0 (or videoDeviceName\\, if provided)<\/p>\n<p>videoDeviceName,Let RivetCam to look up the video device by a provided name. This time do not provide a videoDevice value.,-<\/p>\n<p>imageCacheSize,Preview\/playback images count, 10<\/p>\n<p>playbackFps,Instant playback FPS, 20<\/p>\n<p>onionAlpha, Onion skin transparency (0.1 means not transparent\\, 0.9 barely to see),0.6<\/p>\n<p>liveView.resolution,Webcam mode for preview, 960&#215;544<\/p>\n<p>stillImage.resolution,Webcam mode for photo capture, 1280&#215;720<\/p>\n<p>stillImage.delayMs,Wait milliseconds before take a still image. It is a good idea to let the camera initialize itself after mode switching.,1000<\/p>\n<p>baseDirectoryPath,Path for storing batches,.<\/p>\n<p>directoryPrefix,Prefix when creating batch folders,batch-<\/p>\n<p>directoryIndexDigits,Number of digits used for batch numbering,2<\/p>\n<p>filePrefix,Prefix of photo files,img-<\/p>\n<p>filePostfix,Postfix of photo files,.jpg<\/p>\n<p>fileIndexDigits,Number of digits used for file numbering,4<\/p>\n<p>restartFileIndexWithNewDirectory,Define whether numbering should be reset to zero when creating a new batch,False<\/p>\n<p>manual,List of manual control ids,<\/p>\n<p>manual.&lt;id&gt;.name,Name of the control (as seen on &#8220;Diagnostics&#8221;),<\/p>\n<p>manual.&lt;id&gt;.value,Value of the control to set manual mode.,<\/p>\n<p>preserve,List of ids for persistent controls,<\/p>\n<p>preserve.&lt;id&gt;.name,Name of the control to preseve (as seen on &#8220;Diagnostics&#8221;),<\/p>\n<p>keys,List of ids for custom controls,<\/p>\n<p>keys.&lt;id&gt;.name,Name of the control to utilize key (as seen on &#8220;Diagnostics&#8221;),<\/p>\n<p>keys.&lt;id&gt;.inc,Key to increment the control value. Use java.awt.event.KeyEvent constants\\, e.g. VK_Q,<\/p>\n<p>keys.&lt;id&gt;.dec,Same as before\\, but to decrement the value.,<\/p>\n<p>[\/table]<\/p>\n<p>Sample:<\/p>\n<pre><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n\nvideoDevice = \/dev\/video0\n#videoDeviceByName = UVC Camera (046d:0823)\n\n## -- User settings\nimageCacheSize = 10\nplaybackFps = 20\nonionAlpha = 0.6\n\n## -- Camera specific settings\nliveView.resolution = 960x544\nstillImage.resolution = 1280x720\nstillImage.delayMs = 1000\n\nmanual = focus\nmanual.focus.name = Focus, Auto\nmanual.focus.value = 0\n\npreserve = focus\npreserve.focus.name = Focus (absolute)\n\nkeys = focus\nkeys.focus.name = Focus (absolute)\nkeys.focus.inc = VK_Q\nkeys.focus.dec = VK_W\n\n## -- Files and folders\ndirectoryPrefix = batch-\ndirectoryIndexDigits = 2\nfilePrefix = img-\nfilePostfix = .jpg\nfileIndexDigits = 4\nbaseDirectoryPath = .\nrestartFileIndexWithNewDirectory = False\n<\/pre><\/pre>\n<h2>Diagnostics<\/h2>\n<h3>List devices<\/h3>\n<p>You can list available v4l devices with the command below.<\/p>\n<p>E.g.:<\/p>\n<pre><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ .\/start-x86-64.sh --devices\n&#x5B; libvideo.c:68 ] Using libvideo version 0.9-UNKNOWN\nFound video devices:\n  \/dev\/video0 - UVC Camera (046d:0823)\n<\/pre><\/pre>\n<h3>Device information<\/h3>\n<p>RivetCam provides a diagnostic feature where you can get detailed information of your webcam device.<\/p>\n<pre><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ .\/start-x86-64.sh --info \/dev\/video0\n&#x5B; libvideo.c:68 ] Using libvideo version 0.9-UNKNOWN\nInfo for device \/dev\/video0:\n  Name: UVC Camera (046d:0823)\n  Resolutions:\n    MJPEG - 640x480 160x120 176x144 320x176 320x240 432x240 352x288 544x288 640x360 752x416 800x448 864x480 960x544 1024x576 800x600 1184x656 960x720 1280x720 1392x768 1504x832 1600x896 1280x960 1712x960 1792x1008 1920x1080 1600x1200 2048x1536 2592x1944\n    YUYV - 640x480 160x120 176x144 320x176 320x240 432x240 352x288 544x288 640x360 752x416 800x448 864x480 960x544 1024x576 800x600 1184x656 960x720 1280x720 1392x768 1504x832 1600x896 1280x960 1712x960 1792x1008 1920x1080 1600x1200 2048x1536 2592x1944\n\n  Attributes:\n    &quot;Backlight Compensation&quot; = 0 (0..1\/1)\n    &quot;Brightness&quot; = 128 (0..255\/1)\n    &quot;Contrast&quot; = 32 (0..255\/1)\n    &quot;Exposure (Absolute)&quot; = 664 (3..2047\/1)\n    &quot;Exposure, Auto&quot; = 3 (1: Manual, 2: Shutter priority, 0: Auto, 3: Aperture priority)\n    &quot;Exposure, Auto Priority&quot; = 1 (0..1\/1)\n    &quot;Focus (absolute)&quot; = 68 (0..255\/17)\n    &quot;Focus, Auto&quot; = 0 (0..1\/1)\n    &quot;Gain&quot; = 128 (0..255\/1)\n    &quot;Pan (Absolute)&quot; = 0 (-36000..36000\/3600)\n    &quot;Power Line Frequency&quot; = 2 (1: 50 Hz, 0: Disabled, 2: 60 Hz)\n    &quot;Saturation&quot; = 32 (0..255\/1)\n    &quot;Sharpness&quot; = 72 (0..255\/1)\n    &quot;Tilt (Absolute)&quot; = 0 (-36000..36000\/3600)\n    &quot;White Balance Temperature&quot; = 4000 (2800..6500\/1)\n    &quot;White Balance Temperature, Auto&quot; = 1 (0..1\/1)\n    &quot;Zoom, Absolute&quot; = 1 (1..5\/1)\n<\/pre><\/pre>\n<h2>Troubleshooting<\/h2>\n<ul>\n<li>\u00a0<\/li>\n<\/ul>\n<h2>Frequently asked questions<\/h2>\n<ul>\n<li><strong>Will it run on Android?<\/strong> &#8211; I don&#8217;t think so.<\/li>\n<li><strong>Will it run on RaspberryPi?<\/strong> &#8211; Yes.<\/li>\n<\/ul>\n<h2>Known bugs<\/h2>\n<ul>\n<li>Playback FPS is not stable.<\/li>\n<\/ul>\n<h2>Planned improvements<\/h2>\n<ul>\n<li>Do not crash, when facing with wrong configuration.<\/li>\n<li>Continue file numbering when starting up from previous batch.<\/li>\n<li>Support more platforms and cameras according to user tests.<\/li>\n<li>Use RGB or YUV format instead of mpg when creating a snapshot.<\/li>\n<li>Force to use strict FPS while playback.<\/li>\n<li>Introduce camera-type\u00a0 based configuration system.<\/li>\n<li>Introduce modular access to the main system, e.g. attach a GPIO based control module.<\/li>\n<li>On-screen-display message items to have a validity.<\/li>\n<li>Multilingual messages<\/li>\n<\/ul>\n<h2>Found a bug or want to Contact me?<\/h2>\n<p>Please fill free to contact me with feature requests. If found a problem, please check issues for possible solution at <a href=\"https:\/\/github.com\/prampec\/RivetCam\/issues\">GitHub issues page<\/a>, where you can also report bugs.<\/p>\n<h2>Notes<\/h2>\n<p>Run the following command to join the image sequences into an AVI:<\/p>\n<pre><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\nffmpeg -r 10 -start_number 0 -i img-%04d.jpg anim.mp4\n\n<\/pre><\/pre>\n<p>Where the &#8220;-r 10&#8221; means the frame rate (fps), the &#8220;-start_number 0&#8221; specifies the first file index.<\/p>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>RivetCam is a photographic software for Linux operating system, where you can capture still images with full screen live-view. The software was design to be used to create stop-motion videos. Key features Utilizes the full screen for viewing images, All actions are taken with the computer keyboard (thus no mouse is needed to use), Works\u2026 <span class=\"read-more\"><a href=\"https:\/\/sharedinventions.com\/rivetcam\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":452,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-415","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/sharedinventions.com\/index.php?rest_route=\/wp\/v2\/pages\/415","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sharedinventions.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sharedinventions.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sharedinventions.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sharedinventions.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=415"}],"version-history":[{"count":62,"href":"https:\/\/sharedinventions.com\/index.php?rest_route=\/wp\/v2\/pages\/415\/revisions"}],"predecessor-version":[{"id":823,"href":"https:\/\/sharedinventions.com\/index.php?rest_route=\/wp\/v2\/pages\/415\/revisions\/823"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sharedinventions.com\/index.php?rest_route=\/wp\/v2\/media\/452"}],"wp:attachment":[{"href":"https:\/\/sharedinventions.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}