Lý lịch
Được rồi, vì vậy tôi đã có thể thiết lập máy tính để bàn Windows 10 của mình với WSL2 để chạy Ubuntu 18.04. Tôi đang cố gắng làm cho webcam có thể truy cập được và đã chọn và ghép các hướng dẫn sau đây để đưa bản thân đến vị trí hiện tại.
Tại sao
"Tại sao bạn phải trải qua nỗ lực khó khăn này? Có vẻ ngu ngốc." bạn có thể đang nói với chính mình. Chà, tôi nghĩ rằng thật ngớ ngẩn khi WSL2 không có cổng USB, vì vậy có điều đó. Nhưng tôi phát triển trên Windows theo truyền thống và với một dự án thị giác máy tính gần đây tôi đang thực hiện kết hợp SDK Nvidia Isaac (chỉ khả dụng trên Ubuntu 18.04), tôi đã hy vọng tiếp tục sử dụng Windows để phát triển và sau đó là Ubuntu 18.04 để thử nghiệm. Tôi đang cố gắng tránh khởi động kép vì việc chuyển đổi qua lại giữa các hệ điều hành rất tốn thời gian.
Tình trạng hiện tại
Những gì tôi có thể làm là chuyển qua camera web bằng usbip từ windows bằng các lệnh sau
.\usbip.exe liên kết -b 1-189
.\usbipd.exe -d -4
và sau đó về phía linux, tôi kết nối nó bằng cách chạy
sudo usbip đính kèm --remote=172.30.64.1 --busid=1-220
ngoại trừ việc tôi nhập địa chỉ từ xa và xe buýt của mình
Kết quả là khả năng nhìn thấy máy ảnh được gắn và nhìn thấy bởi linux, nhưng cho dù tôi sử dụng chương trình/thư viện nào, không ai trong số họ có thể mở webcam
Dưới đây là một số đầu ra từ các lệnh khác nhau mà mọi người đã sử dụng để hiển thị thông tin camera:
~$ v4l2-ctl --list-devices
Webcam Logitech C930e (usb-vhci_hcd.0-1):
/dev/video0
/dev/video1
~$ thông tin v4l /dev/video0
### thông tin thiết bị v4l2 [/dev/video0] ###
thông tin chung
VIDIOC_QUERYCAP
trình điều khiển: "uvcvideo"
thẻ : "Logitech Webcam C930e"
bus_info : "usb-vhci_hcd.0-1"
phiên bản: 4.19.84
khả năng: 0x84a00001 [VIDEO_CAPTURE,?,?,STREAMING,(null)]
tiêu chuẩn
đầu vào
VIDIOC_ENUMINPUT(0)
chỉ số : 0
tên: "Máy ảnh 1"
loại: MÁY ẢNH
bộ âm thanh : 0
bộ chỉnh: 0
tiêu chuẩn: 0x0 []
trạng thái: 0x0 []
quay video
VIDIOC_ENUM_FMT(0,VIDEO_CAPTURE)
chỉ số : 0
gõ: VIDEO_CAPTURE
cờ : 0
description : "YUYV 4:2:2"
định dạng pixel : 0x56595559 [YUYV]
VIDIOC_ENUM_FMT(1,VIDEO_CAPTURE)
chỉ số : 1
gõ: VIDEO_CAPTURE
cờ : 1
mô tả: "Chuyển động-JPEG"
định dạng pixel: 0x47504a4d [MJPG]
VIDIOC_G_FMT(VIDEO_CAPTURE)
gõ: VIDEO_CAPTURE
fmt.pix.width : 640
fmt.pix.height : 480
fmt.pix.pixelformat : 0x56595559 [YUYV]
fmt.pix.field : KHÔNG CÓ
fmt.pix.bytesperline : 1280
fmt.pix.sizeimage : 614400
fmt.pix.colorspace : SRGB
fmt.pix.priv : 4276996862
điều khiển
VIDIOC_QUERYCTRL(BASE+0)
id : 9963776
loại: INTEGER
Tên: "Độ sáng"
tối thiểu : 0
tối đa : 255
bước 1
default_value : 128
cờ: không rõ
VIDIOC_QUERYCTRL(BASE+1)
id : 9963777
loại: INTEGER
tên: "tương phản"
tối thiểu : 0
tối đa : 255
bước 1
default_value : 128
cờ: không rõ
VIDIOC_QUERYCTRL(BASE+2)
id : 9963778
loại: INTEGER
tên: "bão hòa"
tối thiểu : 0
tối đa : 255
bước 1
default_value : 128
cờ: không rõ
VIDIOC_QUERYCTRL(BASE+12)
id : 9963788
loại: BOOLESE
name : "Nhiệt độ cân bằng trắng, Tự động"
tối thiểu : 0
tối đa : 1
bước 1
default_value : 1
cờ: không rõ
VIDIOC_QUERYCTRL(BASE+19)
id : 9963795
loại: INTEGER
tên: "đạt được"
tối thiểu : 0
tối đa : 255
bước 1
giá_trị_mặc_định : 0
cờ: không rõ
VIDIOC_QUERYCTRL(BASE+24)
id : 9963800
loại: THỰC ĐƠN
tên: "Tần số dòng điện"
tối thiểu : 0
tối đa : 2
bước 1
default_value : 2
cờ: không rõ
VIDIOC_QUERYCTRL(BASE+26)
id : 9963802
loại: INTEGER
tên: "Nhiệt độ cân bằng trắng"
tối thiểu: 2000
tối đa: 7500
bước 1
default_value : 4000
cờ: KHÔNG HOẠT ĐỘNG
VIDIOC_QUERYCTRL(BASE+27)
id : 9963803
loại: INTEGER
Tên: "Độ sắc nét"
tối thiểu : 0
tối đa : 255
bước 1
default_value : 128
cờ: không rõ
VIDIOC_QUERYCTRL(BASE+28)
id : 9963804
loại: INTEGER
tên: "Bù ngược sáng"
tối thiểu : 0
tối đa : 1
bước 1
giá_trị_mặc_định : 0
cờ: không rõ
~$ sudo ffmpeg -y -t 5 -f video4linux2 -i /dev/video0 out.mov
ffmpeg phiên bản 3.4.8-0ubuntu0.2 Bản quyền (c) 2000-2020 các nhà phát triển FFmpeg
được xây dựng với gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
cấu hình: --prefix=/usr --extra-version=0ubuntu0.2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass -- enable-libbluray -- enable-libbs2b -- enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm -- enable-libmp3lame -- enable-libmysofa -- enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy -- enable-libsoxr -- enable-libspeex -- enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 -- enable-libxml2 -- enable-libxvid -- enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libie c61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100/57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100/6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
/dev/video0: Lỗi đầu vào/đầu ra
~$ ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -frames 1 out.jpg
ffmpeg phiên bản 3.4.8-0ubuntu0.2 Bản quyền (c) 2000-2020 các nhà phát triển FFmpeg
được xây dựng với gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
cấu hình: --prefix=/usr --extra-version=0ubuntu0.2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass -- enable-libbluray -- enable-libbs2b -- enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm -- enable-libmp3lame -- enable-libmysofa -- enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy -- enable-libsoxr -- enable-libspeex -- enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 -- enable-libxml2 -- enable-libxvid -- enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libie c61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100/57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100/6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
/dev/video0: Lỗi đầu vào/đầu ra
Tôi không chắc liệu mình có thư viện, trình điều khiển cụ thể hay những thứ ngẫu nhiên khác hay không, nhưng mọi thứ tôi đã thử cho đến nay dường như không giải quyết được vấn đề.
Câu hỏi
Linux nhìn thấy camera web, biết rằng đó là camera web nhưng không xử lý nguồn cấp dữ liệu camera. Bạn khuyên tôi nên làm gì để có thể xử lý nguồn cấp dữ liệu video? Tôi nghĩ rằng đây là một vấn đề với cài đặt của tôi khi tôi thiết lập linux ban đầu với menuconfig
.
Bất kỳ trợ giúp sẽ được đánh giá cao :)