SyntroLCam is a Linux only Syntro application for connecting USB webcams to a Syntro system.
- Qt4 or Qt5 development libraries and headers
- SyntroCore libraries and headers
git clone git://github.com/Syntro/SyntroLCam.git
qmake
make
sudo make install
SyntroLCam
With some cameras you may see errors like this
Corrupt JPEG data: 2 extraneous bytes before marker 0xd4
Corrupt JPEG data: 1 extraneous bytes before marker 0xd5
Corrupt JPEG data: 5 extraneous bytes before marker 0xd5
Corrupt JPEG data: 3 extraneous bytes before marker 0xd4
Corrupt JPEG data: 1 extraneous bytes before marker 0xd5
Corrupt JPEG data: 5 extraneous bytes before marker 0xd1
Corrupt JPEG data: 2 extraneous bytes before marker 0xd1
Corrupt JPEG data: 2 extraneous bytes before marker 0xd5
Those are coming from Qt's built-in libjpeg. It is complaining about some bad JPEG encoding done by the camera. The errors are harmless but there is no easy way to turn them off without rebuilding libjpeg. They can be ignored and discarded by running SyntroLCam in GUI mode this way
SyntroLCam &> /dev/null &
The errors are generated during the uncompression of the JPEG images when displaying and do not affect console or daemon mode operations.
Use this mode when you have no display on the local system or in the typical case where you only want to watch the streamed video on a remote system using SyntroView or another Syntro app.
SyntroLCam -c
Enter h to get some help.
This runs SyntroLCam as a background process with no console interaction.
SyntroLCam -c -d
This only works in conjunction with console mode.
SyntroLCam writes a configuration file to the local directory where it was invoked, so if you run it from your home directory like this
~$ SyntroLCam &
Then you will get a file called SyntroLCam.ini like this created
scott@hex:~$ cat SyntroLCam.ini
[General]
appName=hex
appType=SyntroLCam
componentType=SyntroLCam
controlRevert=0
heartbeatInterval=1
heartbeatTimeout=5
localControl=0
localControlPriority=0
runtimeAdapter=
runtimePath=
[Camera]
device=0
format=MJPG
frameRate=30
height=480
streamName=video
width=640
[Logging]
diskLog=true
logKeep=5
logLevel=info
netLog=true
....
You may want to edit fields in the [Camera] section. You can look in the log file generated by SyntroLCam to see the available choices. The log file will be called SyntroLCam-.log or in this case SyntroLCam-hex.log
And example might look like this
scott@hex:~$ cat SyntroLCam-hex.log
INFO 2013-06-12T10:11:10.299 Log start: SyntroLCam-hex
INFO 2013-06-12T10:11:10.299 Using IP adaptor 192.168.10.3
INFO 2013-06-12T10:11:10.299 Subnet = 192.168.10.0, netmask = 255.255.255.0, bcast = 192.168.10.255
INFO 2013-06-12T10:11:10.303 === Available Formats ===
INFO 2013-06-12T10:11:10.303 [0] YUYV
INFO 2013-06-12T10:11:10.303 [1] MJPG
INFO 2013-06-12T10:11:10.304 Choosing format MJPG
INFO 2013-06-12T10:11:10.304 === Available Frame Sizes (W x H) ===
INFO 2013-06-12T10:11:10.304 [0] 160 x 120
INFO 2013-06-12T10:11:10.304 [1] 176 x 144
INFO 2013-06-12T10:11:10.304 [2] 320 x 240
INFO 2013-06-12T10:11:10.304 [3] 352 x 288
INFO 2013-06-12T10:11:10.304 [4] 432 x 240
INFO 2013-06-12T10:11:10.304 [5] 640 x 360
INFO 2013-06-12T10:11:10.304 [6] 640 x 480
INFO 2013-06-12T10:11:10.304 [7] 800 x 448
INFO 2013-06-12T10:11:10.304 [8] 800 x 600
INFO 2013-06-12T10:11:10.304 [9] 864 x 480
INFO 2013-06-12T10:11:10.304 [10] 960 x 720
INFO 2013-06-12T10:11:10.304 [11] 1024 x 576
INFO 2013-06-12T10:11:10.304 [12] 1280 x 720
INFO 2013-06-12T10:11:10.304 [13] 1600 x 896
INFO 2013-06-12T10:11:10.305 [14] 1920 x 1080
INFO 2013-06-12T10:11:10.305 Requested frame size was (640 x 480) choosing (640 x 480)
INFO 2013-06-12T10:11:10.305 === Available Frame Rates (fps) ===
INFO 2013-06-12T10:11:10.305 [0] 5
INFO 2013-06-12T10:11:10.305 [1] 7.5
INFO 2013-06-12T10:11:10.305 [2] 10
INFO 2013-06-12T10:11:10.305 [3] 15
INFO 2013-06-12T10:11:10.305 [4] 20
INFO 2013-06-12T10:11:10.305 [5] 24
INFO 2013-06-12T10:11:10.305 [6] 30
INFO 2013-06-12T10:11:10.305 Requested frame rate was (30) choosing (30)
INFO 2013-06-12T10:11:12.428 SyntroLink connected
If you set the logLevel to 'debug' in the [Logging] section the camera information will be dumped to the console as well.
If you run more then one SyntroLCam instance on the same machine then you must give them distinct settings files with distinct appNames in them. The settings files can have any name you want. The convention is to give them a .ini extension. Specify the non-default settings file when launching SyntroLCam using the -s flag.
Example:
scott@hex:$ SyntroLCam -scamera2.ini <other options>