AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1290334
Accepted
Thomas
Thomas
Asked: 2020-11-08 02:06:32 +0800 CST2020-11-08 02:06:32 +0800 CST 2020-11-08 02:06:32 +0800 CST

在 Ubuntu 20.04 上使用索尼数码相机 RX100M4 作为网络摄像头的问题

  • 772

按照说明安装v4l2loopback内核模块和gphoto2.
我可以使用 控制相机和拍照Entangle,还可以在其中查看实时预览视频Entangle,但我无法使用 ffmpeg 流式传输视频以在其他应用程序中使用它。

$ gphoto2 --abilities
Abilities for camera             : Sony DSC-RX100M4                            
Serial port support              : no
USB support                      : yes
Capture choices                  :
                                 : Image
                                 : Preview
                                 : Trigger Capture
Configuration support            : yes
Delete selected files on camera  : yes
Delete all files on camera       : no
File preview (thumbnail) support : yes
File upload support              : yes

杀死所有现有实例

$ sudo killall gvfs-gphoto2-volume-monitor
gvfs-gphoto2-volume-monitor: no process found

有 3 个 /dev/video*

$ ll /dev/video*
crw-rw----+ 1 root video 81, 0 Nov  7 08:46 /dev/video0
crw-rw----+ 1 root video 81, 1 Nov  7 08:46 /dev/video1
crw-rw----+ 1 root video 81, 2 Nov  7 09:35 /dev/video2

运行将视频传送到 /dev/video* 的命令对其中任何一个都不起作用:

$ gphoto2 --stdout --capture-movie | gst-launch-1.0 fdsrc ! decodebin3 name=dec ! queue ! videoconvert ! v4l2sink device=/dev/video2
Capturing preview frames as movie to 'stdout'. Press Ctrl-C to abort.
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0: Device '/dev/video2' is not a output device.
Additional debug info:
v4l2_calls.c(636): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:
Capabilities: 0x85208000
Setting pipeline to NULL ...
Freeing pipeline ...

*** Error ***              
Sorry, your Sony camera does not seem to return a JPEG image in LiveView mode
ERROR: Movie capture error... Exiting.
Movie capture finished (0 frames)

如官方说明中所述,我尝试了在相机上的 AUTO 和 MOVIE 模式之间切换的不同方法,但没有运气......

知道我错过了什么吗?

是否Sorry, your Sony camera does not seem to return a JPEG image in LiveView mode意味着它不适用于我的相机?( Sony DSC-RX100M4)

另一个命令(ffmpeg):

$ gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video1
Capturing preview frames as movie to 'stdout'. Press Ctrl-C to abort.
ffmpeg version n4.1.4 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
  configuration: --prefix= --prefix=/usr --disable-debug --disable-doc --disable-static --enable-avisynth --enable-cuda --enable-cuvid --enable-libdrm --enable-ffplay --enable-gnutls --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopus --enable-libpulse --enable-sdl2 --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-nonfree --enable-nvenc --enable-omx --enable-openal --enable-opencl --enable-runtime-cpudetect --enable-shared --enable-vaapi --enable-vdpau --enable-version3 --enable-xlib
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
[mjpeg @ 0x55bb2836b0c0] Format mjpeg detected only with low score of 25, misdetection possible!
Input #0, mjpeg, from 'pipe:':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 1024x680, 25 tbr, 1200k tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> rawvideo (native))
[swscaler @ 0x55bb283bef00] deprecated pixel format used, make sure you did set range correctly
[video4linux2,v4l2 @ 0x55bb28370dc0] Unable to open V4L2 device '/dev/video1'
Could not write header for output file #0 (incorrect codec parameters ?): Operation not permitted
Error initializing output stream 0:0 -- 
Conversion failed!
sony video usb webcam camera
  • 1 1 个回答
  • 530 Views

1 个回答

  • Voted
  1. Best Answer
    DmitrySandalov
    2021-11-05T16:58:46+08:002021-11-05T16:58:46+08:00
    1. 从这个线程: https ://sourceforge.net/p/gphoto/mailman/gphoto-user/thread/8D4C4496-8CF9-45D1-914A-36B217E044AC%40getmailspring.com/#msg37144578

    libgphoto2 2.5.26 我们也对索尼预览捕捉进行了一些修复。

    因此,要么使用带有 libgphoto2>=2.5.26 的现代发行版,要么使用以下脚本进行升级:https ://github.com/gonzalo/gphoto2-updater/

    检查 libgphoto2 版本

    gphoto2 --version
    
    1. 之后,将相机 USB 模式切换到 PC 控制(PC 远程)模式。如果需要,更改省电设置(以便在超时后不会关闭)。

    2. 检查照片拍摄

    gphoto2 --capture-image-and-download
    
    1. 如果可行,请继续进行电影捕捉测试
    gphoto2 --capture-movie=10s
    
    1. 如果影片捕捉成功,则创建一个虚拟 V4L2 摄像机,从真实摄像机接收流并将其写入ffmpegto /dev/video2。然后用VLC打开V4L2摄像头流进行测试。(v4l2-ctl是列出 V4L2 设备,之后rmmod可以选择卸载v4l2loopback)。
    sudo apt install v4l2loopback-utils
    sudo modprobe v4l2loopback devices=1 exclusive_caps=1 max_buffers=2 video_nr=2 card_label="fake-cam"
    v4l2-ctl --list-devices
    
    gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt rgb32 -threads 0 -f v4l2 /dev/video2
    
    vlc v4l2:///dev/video2
    
    sudo rmmod v4l2loopback
    
    • 1

相关问题

  • 如何为我的 Sansa Fuze 转换视频?

  • 断断续续的视频播放[关闭]

  • 如何从命令行重置 USB 设备?

  • 帮助让 Flash 播放器在第二个屏幕上工作?

  • Ubuntu 和交互式媒体安装

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve