One of the following:
Some combination of the following:
The following software was compiled and installed via the 'Open Video Reference Build' project on Trisquel 7 GNU/Linux:git clone git://code.openvideo.pro/openvideo-build.git
At this point you should have have the Elphel 353 camera attached to a tripod, powered on, with the network connection physically setup.
Additional parameters are needed with recently-released SSH clients as camera-supported crypto methods are being deprecated:ssh -c aes128-cbc -m hmac-sha1 root@192.168.0.9 scp -c aes128-cbc -o MACs=hmac-sha1 root@192.168.0.9:/any/file .
Use the above additional parameters if you receive the following error message when attempting to connect:debug1: expecting SSH2_MSG_KEXDH_REPLYRead from socket failed: Connection reset by peer
The default password is the four-letter word 'pass'; 'root' is the only account. Connecting to the camera in this way is only necessary for persistent configuration changes. Note that the camera requires approximately 60 seconds to boot after power is supplied.
It's helpful to modify parameter defaults to set the preferred capture mode automatically upon each boot -- note that if the image format provided by the camera is mismatched to the GStreamer pipeline the pipeline will fail. An example that changes the window-of-interest to match our "extra-widescreen" pipelines, increases the default JPEG image quality, and disables camera autoexposure in favor of manual control is as follows:
Start by obtaining a copy of the default parameter set:scp -c aes128-cbc -o MACs=hmac-sha1 root@192.168.0.9:/etc/autocampars.xml .
Copy the following patch into a text editor and save as 'elphel-widescreen.patch' :
--- autocampars.xml.original 2015-09-11 00:45:09.479139493 -0400
+++ autocampars.xml 2015-09-11 01:13:09.405220797 -0400
@@ -532,10 +532,10 @@
<TRIG>"0"</TRIG>
<EXPOS>"10000"</EXPOS>
<VIRT_KEEP>"0"</VIRT_KEEP>
- <WOI_LEFT>"0"</WOI_LEFT>
- <WOI_TOP>"0"</WOI_TOP>
- <WOI_WIDTH>"10000"</WOI_WIDTH>
- <WOI_HEIGHT>"10000"</WOI_HEIGHT>
+ <WOI_LEFT>"336"</WOI_LEFT>
+ <WOI_TOP>"428"</WOI_TOP>
+ <WOI_WIDTH>"2592"</WOI_WIDTH>
+ <WOI_HEIGHT>"1120"</WOI_HEIGHT>
<FLIPH>"0"</FLIPH>
<FLIPV>"0"</FLIPV>
<FPSFLAGS>"0"</FPSFLAGS>
@@ -563,7 +563,7 @@
<RSCALE_CTL>"0"</RSCALE_CTL>
<GSCALE_CTL>"0"</GSCALE_CTL>
<BSCALE_CTL>"0"</BSCALE_CTL>
- <QUALITY>"80"</QUALITY>
+ <QUALITY>"90"</QUALITY>
<PORTRAIT>"0"</PORTRAIT>
<CORING_INDEX>"327685"</CORING_INDEX>
<COLOR_SATURATION_BLUE>"200"</COLOR_SATURATION_BLUE>
@@ -581,7 +581,7 @@
<DGAINGB>"32768"</DGAINGB>
<DGAINB>"32768"</DGAINB>
<CORING_PAGE>"0"</CORING_PAGE>
- <AUTOEXP_ON>"1"</AUTOEXP_ON>
+ <AUTOEXP_ON>"0"</AUTOEXP_ON>
<HISTWND_RWIDTH>"32768"</HISTWND_RWIDTH>
<HISTWND_RHEIGHT>"32768"</HISTWND_RHEIGHT>
<HISTWND_RLEFT>"32768"</HISTWND_RLEFT>
@@ -614,7 +614,7 @@
<COMPMOD_DCSUB>"0"</COMPMOD_DCSUB>
<SENSOR_REGS>""</SENSOR_REGS>
<DAEMON_EN>"0"</DAEMON_EN>
- <DAEMON_EN_AUTOEXPOSURE>"1"</DAEMON_EN_AUTOEXPOSURE>
+ <DAEMON_EN_AUTOEXPOSURE>"0"</DAEMON_EN_AUTOEXPOSURE>
<DAEMON_EN_STREAMER>"1"</DAEMON_EN_STREAMER>
<DAEMON_EN_CCAMFTP>"0"</DAEMON_EN_CCAMFTP>
<DAEMON_EN_CAMOGM>"0"</DAEMON_EN_CAMOGM>
Then apply the patch we just created to the local copy of the camera parameter set:patch autocampars.xml widescreen_patch.patch
Finally, upload the patched file to the camera:ssh -c aes128-cbc -m hmac-sha1 root@192.168.0.9 'cat - > /etc/autocampars.xml; sync' < autocampars.xml
Power-cycle the camera to check that the changes were properly applied.
Start by setting brightness ("white sun" icon) in the 'Camera GUI (camvc) Controls' to a high value (~90% of max) then slowly decrease the value until 18FPS is achieved, regardless of final streaming framerate. If the resulting image is too dark enlarge the lens aperture and ambient lighting; if the image remains too dark increase gain ("green sun" icon) and gamma ("black/white" marble with vertical divider). Alternatively, 16-17FPS (~4FPS in completely-dark rooms) is acceptable at the cost of noticeable motion blur.
Then, slowly increase the black level ("black/white marble" with horizontal divider) until black objects start to transition into true black in the image. Click the gain icon ("green sun") once to change color control to manual, increase color saturation slightly ("red|green|blue" striped icon) then proceed to tweak the remaining color controls. Clicking on any slider from the bottom will provide coarse adjustment; clicking from the top will provide fine ajustment.
After initial camera values have been set resize the GUI window to hide the in-browser preview image and monitor focus using the GStreamer live preview window.
The Pyle PAD10MXU ("mini-board") is a small form-factor audio capture/playback device useful for live-streaming applications. The mini-board has two capture channels as follows:
Ch 1 has a dedicated gain control knob that provides +10dB signal/volume boost. A corresponding Peak red LED indicator lights if the gain and/or signal level is high enough to cause undesirable sound distortion; the indicator, which flickers in realtime according to level, is a warning light and should remain unlit during normal operation.
Line 2/3 Level is a dedicated control knob that provides 0 - 10dB gain to Channel 2. The individual levels for each line, including USB playback, are not controlled individually but rather globally. For USB-audio-playback-only via the USB to Computer jack simply disconnect the RCA input jacks and depress the USB Assign to Line button.
Monitor is a dedicated control knob that provides 0 - 10dB gain for the 1/4" headphone jack labelled Phones Monitor. It is provided simply for listening convenience and does not affect any other aspect of the mini-mixer.
Master is a dedicated control knob that provides 0 - 10dB gain for Main Out and USB capture. Master has an associated Clip LED indicator which is akin to the Peak indicator with the exception that green coloration indicates "active sound in 80% of maximum range" (good) and red coloration when output is being actively clipped (bad).
USB to Computer is a bi-directional USB Type B jack located on the back of the mini-mixer that either a) converts Master to digital samples suitable for capture by applications such as Audacity, and/or b) mixes digital samples received to Line 2/3 depending on the state of the USB Assign to Line button. The mini-mixer is powered directly by the host computer when the jack is used as USB to Computer – Ext. DC In is the term used when the mixer is disconnected from a host computer and is powered via any USB power adapter or hub rated 500mA or higher.
Phantom Power is a depressible button that provides 18V of XLR-delivered phantom power (17.3V actual) for microphones that require it for operation. It will have no effect on microphones that do not require it. The associated red LED indicator will slowly fade-to-unlit after the button has been disabled or if the mini-mixer has lost power.
Power is a green LED that remains lit if the mini-mixer is powered.
In this example please replace the following with your own information:
Additional pipelines are listed in the GST Cookbook.
gst-launch-1.0 -e rtspsrc location=rtsp://192.168.48.2:554 latency=100 ! queue max-size-bytes=100000000 max-size-time=0 ! rtpjpegdepay ! queue max-size-bytes=100000000 max-size-time=0 ! jpegdec max-errors=-1 ! queue max-size-bytes=100000000 max-size-time=0 ! videorate ! video/x-raw,framerate=14/1 ! queue max-size-bytes=100000000 max-size-time=0 ! videoscale ! video/x-raw, width=1296, height=560 ! queue max-size-bytes=100000000 max-size-time=0 ! tee name=halfres ! queue max-size-bytes=100000000 max-size-time=0 ! jpegenc idct-method=2 ! queue max-size-bytes=100000000 max-size-time=0 ! matroskamux name=mux jackaudiosrc connect=1 client-name="GStreamer Input" ! audio/x-raw,rate=48000,channels=1 ! queue max-size-bytes=100000000 max-size-time=0 ! tee name=jackaudio ! queue max-size-bytes=100000000 max-size-time=0 ! vorbisenc ! queue max-size-bytes=100000000 max-size-time=0 ! tee name=vorbisaudio ! queue max-size-bytes=100000000 max-size-time=0 ! mux. mux. ! queue max-size-bytes=100000000 max-size-time=0 ! filesink location=speaker_mountpoint`date +%s`.mkv sync=false halfres. ! queue max-size-bytes=100000000 max-size-time=0 ! videoscale ! video/x-raw,width=648, height=280 ! queue max-size-bytes=100000000 max-size-time=0 ! theoraenc bitrate=400 speed-level=1 ! queue max-size-bytes=100000000 max-size-time=0 ! oggmux name=livestream vorbisaudio. ! queue max-size-bytes=100000000 max-size-time=0 ! livestream. livestream. ! queue max-size-bytes=0 max-size-time=0 ! shout2send ip=live.example.org port=80 password=examplepassword mount=/speaker_mountpoint.ogv halfres. ! videoscale add-borders=true ! queue max-size-bytes=100000000 max-size-time=0 ! videoconvert ! queue max-size-bytes=100000000 max-size-time=0 ! xvimagesink sync=false jackaudio. ! queue max-size-bytes=100000000 max-size-time=0 jackaudio. ! queue max-size-bytes=100000000 max-size-time=0 ! audioconvert ! queue max-size-bytes=100000000 max-size-time=0 ! alsasink
gst-launch-1.0 --eos-on-shutdown ximagesrc use_damage=false ! capsfilter caps=video/x-raw,framerate=4/1,width=1280,height=800 ! queue max-size-bytes=100000000 max-size-time=0 ! videoscale ! video/x-raw, width=1056, height=660 ! queue max-size-bytes=100000000 max-size-time=0 ! videoconvert ! queue max-size-bytes=100000000 max-size-time=0 ! theoraenc bitrate=400 keyframe-auto=false keyframe-force=12 keyframe-freq=12 speed-level=1 drop-frames=false ! queue max-size-bytes=100000000 max-size-time=0 ! oggmux ! queue max-size-bytes=100000000 max-size-time=0 ! shout2send ip=live.example.com port=80 password=examplepassword mount=/slides-mountpoint.ogv
The live stream web client was written using MithrilJS. This interface depends on Icecast >= 2.4.0 for the JSON statistics API. Source code.
Additionally, a LibreJS-compatible fork of the KiwiIRC client was embedded onto the page. Source code.
This page was a featured resource in May 2015.