Skip to content

Syntro/SyntroLCam

Repository files navigation

SyntroLCam

SyntroLCam is a Linux only Syntro application for connecting USB webcams to a Syntro system.

Dependencies

  1. Qt4 or Qt5 development libraries and headers
  2. SyntroCore libraries and headers

Fetch

    git clone git://github.com/Syntro/SyntroLCam.git

Build

    qmake 
    make 
    sudo make install

Run

GUI mode

    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.

Console mode

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.

Daemon mode

This runs SyntroLCam as a background process with no console interaction.

    SyntroLCam -c -d

This only works in conjunction with console mode.

Configuration

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>

About

Syntro Linux only webcam application

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages