Первый вопрос здесь, так как я находил ответы на все остальное, с чем у меня были проблемы ранее, спасибо всем, кто вносит свой вклад.
Я следовал этому руководству, чтобы использовать gphoto2 и ffmpeg для использования моей прямой трансляции Fuji X-T2 в качестве веб-камеры:
https://medium.com/nerdery/dslr-webcam-setup-for-linux-9b6d1b79ae22
он работает хорошо, когда я впервые запускаю машину и включаю камеру:
$ pkill -f gphoto2
(отмонтировать камеру как том)
$ gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -f v4l2 /dev/video0
ffmpeg версии 4.4-6ubuntu5 Copyright (c) 2000-2021 разработчики FFmpeg
построен с помощью gcc 11 (Ubuntu 11.2.0-7ubuntu1)
конфигурация: --prefix=/usr --extra-version=6ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu -- arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca -- enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack -- enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy -- enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp -- enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx -- enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 -- enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libswscale 5.9.100 / 5.9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
Захват кадров предварительного просмотра в виде фильма на стандартный вывод. Нажмите Ctrl-C, чтобы прервать.
[mjpeg @ 0x55b4c5b39340] Формат mjpeg обнаружен только с низким баллом 25, возможно неправильное определение!
Введите #0, mjpeg, из 'pipe:':
Продолжительность: нет данных, битрейт: нет данных
Поток #0:0: Видео: mjpeg (базовый уровень), yuvj422p(pc, bt470bg/неизвестно/неизвестно), 1024x768, 25 tbr, 1200k tbn, 25 tbc
Отображение потока:
Поток #0:0 -> #0:0 (mjpeg (собственный) -> rawvideo (собственный))
[swscaler @ 0x55b4c5b8c800] используется устаревший формат пикселей, убедитесь, что вы правильно установили диапазон
Вывод №0, video4linux2,v4l2, в '/dev/video0':
Метаданные:
кодировщик: Lavf58.76.100
Поток #0:0: Видео: rawvideo (I420 / 0x30323449), yuv420p(tv, bt470bg/неизвестно/неизвестно, прогрессивный), 1024x768, q=2-31, 235929 кб/с, 25 к/с, 25 тр/с
Метаданные:
кодировщик: Lavc58.134.100 rawvideo
кадр = 444 кадра в секунду = 32 q = -0,0 Lsize = нет данных время = 00:00:17,76 битрейт = нет данных скорость = 1,29x
Однако, если я выключу камеру и попытаюсь запустить снова позже в тот же день, я в конечном итоге получу сообщение об ошибке ниже:
gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -f v4l2 /dev/video0
ffmpeg версии 4.4-6ubuntu5 Copyright (c) 2000-2021 разработчики FFmpeg
построен с помощью gcc 11 (Ubuntu 11.2.0-7ubuntu1)
конфигурация: --prefix=/usr --extra-version=6ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu -- arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca -- enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack -- enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy -- enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp -- enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx -- enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 -- enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libswscale 5.9.100 / 5.9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
Захват кадров предварительного просмотра в виде фильма на стандартный вывод. Нажмите Ctrl-C, чтобы прервать.
[mjpeg @ 0x5635c5ca0340] Формат mjpeg обнаружен только с низким баллом 25, возможно неправильное определение!
Введите #0, mjpeg, из 'pipe:':
Продолжительность: нет данных, битрейт: нет данных
Поток #0:0: Видео: mjpeg (базовый уровень), yuvj422p(pc, bt470bg/неизвестно/неизвестно), 1024x768, 25 tbr, 1200k tbn, 25 tbc
Отображение потока:
Поток #0:0 -> #0:0 (mjpeg (собственный) -> rawvideo (собственный))
[swscaler @ 0x5635c5cfc600] используется устаревший формат пикселей, убедитесь, что вы правильно установили диапазон
[video4linux2,v4l2 @ 0x5635c5ca4080] ioctl(VIDIOC_G_FMT): неверный аргумент
Не удалось записать заголовок для выходного файла №0 (неверные параметры кодека?): Неверный аргумент
Ошибка инициализации выходного потока 0:0 --
Преобразование не удалось!
Единственное решение, которое у меня есть в настоящее время, - это перезагрузить рабочий стол. Есть идеи, как исправить / устранить неполадки, пожалуйста?