DDG - 2020-04-16: Below a simple example to use your computers webcam into a Tcl/Tk application on Linux/Unix with X-Windows using the mplayer. I got the webcam commandline option which works on my Laptop from this site: https://www.geekyhacker.com/2013/08/31/how-to-use-mplayer-to-display-your-webcam/
package require Tk
package provide tkxcam 0.1
namespace eval tkxcam {}
proc tkxcam::tkxcam {path} {
variable fid
set frame [frame $path -container true]
if {[auto_execok mplayer] eq ""} {
error "mplayer must be installed"
}
set fid [open "|mplayer -zoom -slave -idle -fstype fullscreen -wid [winfo id $path] tv:// -tv driver=v4l2:width=800:height=600:device=/dev/video0:fps=30:outfmt=yuy2" r+]
fconfigure $fid -blocking 0 -buffering line
fileevent $fid readable [list [namespace current]::ReadPipe $fid]
bind $path <Destroy> [list [namespace current]::command stop]
return $path
}
proc ::tkxcam::ReadPipe {chan} {
variable fid
set d [read $chan]
if {[eof $chan]} {
fileevent $chan readable {}
close $chan
set fid ""
}
}
proc ::tkxcam::command {cmd} {
variable fid
if {$fid ne ""} {
puts $fid $cmd
flush $fid
}
}And here an usage example:
if {[llength $argv] > 0 && [lindex $argv 0] eq [info script]}
tkxcam::tkxcam .cam
pack .cam -side left -fill both -expand true
}Please discuss here ...