Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam.
Korzystam z aplikacji zoom a dokładniej siedzę, słucham i muszę udawać, że patrzę w ekran (kurs online).
Zastanawiam się czy jest możliwość, aby nagrać obraz i zapętlony wrzucić zamiast kamery?
Offline
Zainstaluj v4l2loopback-dkms, to zbuduje moduł dla twojego kernela pozwalający tworzyć wirtualne urządzenia wideo.
apt install v4l2loopback-dkms
Załaduj moduł (przy tworzeniu jednego wirtualnego urządzenia, wystarczy tak, bez dodatkowych konfiguracji). Z root-a.
modprobe v4l2loopback
Jak istnieje taka potrzeba skonfigurować ładowanie modułu przy uruchamianiu systemu.
Uruchom materiał wideo w nieskończonej pętli dla utworzonego wirtualnego /dev/video1, gdzie /dev/video0 jest kamerą wbudowaną w laptopa, z przełącznikiem wymuszającym przetwarzanie w czasie rzeczywistym, bo czasami przyspiesza.
ffmpeg -stream_loop -1 -re -i plik_wideo.mp4 -f v4l2 /dev/video1
Ustaw w programie kamerę, tu w przykładzie drugą, jako domyślną.
Ja używam tego rozwiązania czasami, do przekazywania obrazu z kamer PVR, jak nie ma możliwości uzyskania adresu publicznego, a inne rozwiązania są niedostępne.
Ostatnio edytowany przez jawojx (2022-08-20 20:00:31)
Offline
Dostaje taki komunikat przy instalacji.
DKMS make.log for v4l2loopback-0.12.1 for kernel 5.4.0-0.bpo.4-amd64 (x86_64) pią, 4 lis 2022, 21:50:03 GMT Building v4l2-loopback driver... make -C /lib/modules/5.4.0-0.bpo.4-amd64/build M=/var/lib/dkms/v4l2loopback/0.12.1/build modules make[1]: Wejście do katalogu '/usr/src/linux-headers-5.4.0-0.bpo.4-amd64' CC [M] /var/lib/dkms/v4l2loopback/0.12.1/build/v4l2loopback.o /var/lib/dkms/v4l2loopback/0.12.1/build/v4l2loopback.c: In function ‘vidioc_qbuf’: /var/lib/dkms/v4l2loopback/0.12.1/build/v4l2loopback.c:1509:4: error: implicit declaration of function ‘v4l2_get_timestamp’; did you mean ‘v4l2_get_subdevdata’? [-Werror=implicit-function-declaration] v4l2_get_timestamp(&b->buffer.timestamp); ^~~~~~~~~~~~~~~~~~ v4l2_get_subdevdata cc1: some warnings being treated as errors make[3]: *** [/usr/src/linux-headers-5.4.0-0.bpo.4-common/scripts/Makefile.build:271: /var/lib/dkms/v4l2loopback/0.12.1/build/v4l2loopback.o] Błąd 1 make[2]: *** [/usr/src/linux-headers-5.4.0-0.bpo.4-common/Makefile:1665: /var/lib/dkms/v4l2loopback/0.12.1/build] Błąd 2 make[1]: *** [/usr/src/linux-headers-5.4.0-0.bpo.4-common/Makefile:179: sub-make] Błąd 2 make[1]: Opuszczenie katalogu '/usr/src/linux-headers-5.4.0-0.bpo.4-amd64' make: *** [Makefile:43: v4l2loopback.ko] Błąd 2
Offline
Udało mi się zainstalować, mam problem przy odtwarzaniu
root@debian:/home/agnieszka/Pulpit# ffmpeg -stream_loop -1 -re -i kurs.mp4 -f v4l2 /dev/video1 ffmpeg version 4.1.9 Copyright (c) 2000-2022 the FFmpeg developers built with gcc 8 (Debian 8.3.0-6) configuration: --disable-decoder=amrnb --disable-decoder=libopenjpeg --disable-libopencv --disable-outdev=sdl2 --disable-podpages --disable-sndio --disable-stripping --enable-libaom --enable-avfilter --enable-avresample --enable-gcrypt --disable-gnutls --enable-openssl --enable-gpl --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libilbc --enable-libkvazaar --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx265 --enable-libzimg --enable-libxvid --enable-libzvbi --enable-nonfree --enable-opencl --enable-opengl --enable-postproc --enable-pthreads --enable-shared --enable-version3 --enable-libwebp --incdir=/usr/include/x86_64-linux-gnu --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --toolchain=hardened --enable-frei0r --enable-chromaprint --enable-libx264 --enable-libiec61883 --enable-libdc1394 --enable-vaapi --enable-libmfx --enable-libvmaf --disable-altivec --shlibdir=/usr/lib/x86_64-linux-gnu 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 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 3.100 / 5. 3.100 libswresample 3. 3.100 / 3. 3.100 libpostproc 55. 3.100 / 55. 3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'kurs.mp4': Metadata: major_brand : isom minor_version : 0 compatible_brands: mp41avc1 creation_time : 2022-11-04T22:47:02.000000Z encoder : vlc 3.0.12 stream output encoder-eng : vlc 3.0.12 stream output Duration: 00:00:14.09, start: 0.000000, bitrate: 616 kb/s Stream #0:0(eng): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv), 1280x720, 614 kb/s, 11 fps, 11 tbr, 90k tbn, 11 tbc (default) Metadata: creation_time : 2022-11-04T22:47:02.000000Z handler_name : VideoHandler Stream mapping: Stream #0:0 -> #0:0 (hevc (native) -> rawvideo (native)) Press [q] to stop, [?] for help [video4linux2,v4l2 @ 0x558ba3eb8c80] ioctl(VIDIOC_G_FMT): Invalid argument=N/A Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument Error initializing output stream 0:0 -- Conversion failed!
Edycja
Coś ten moduł się jednak nie ładuje
root@debian:/home/agnieszka# modprobe v4l2loopback modprobe: FATAL: Module v4l2loopback not found in directory /lib/modules/5.4.0-0.bpo.4-amd64
Ostatnio edytowany przez Grabek (2022-11-05 09:18:30)
Offline
Ty masz nowszy kernel niż dedykowany dla Debiana 10, to tak jak kernel i to zainstaluj z backports.
Odinstaluj stare, wcześniej usuń moduł. (z root-a, lub sudo)
modprobe -r v4l2loopback
apt purge v4l2loopback-dkms
I zainstaluj z backport-ów
apt install -t buster-backports v4l2loopback-dkms
Co do pierwszego błędu, musiałeś użyć takiego kodeka, a nie najpopularniejszego h264. :)
Nie pomyślałem o tym. Nie wiem, dlaczego z góry założyłem, że to będzie materiał prosty h264. Jak dalej będą problemy, przy nowym, to spróbuj wymusić to, z czym sobie nie radzi, dodaj -vcodec rawvideo -vf format=yuv420p i nie uruchamiaj tego z root-a, jak wyżej. Wyglądałoby to tak.
ffmpeg -stream_loop -1 -re -i kurs.mp4 -vcodec rawvideo -vf format=yuv420p -f v4l2 /dev/video1
Ostatnio edytowany przez jawojx (2022-11-05 12:49:22)
Offline
Dzięki, działa. Czym najlepiej nagrać obraz z kamery? obecnie VLC do tego używam.
Offline
A co kto ma i czym kto lubi, ważniejsze jest by klatka, początkowa i końcowa przy pętli się pokrywała, bo będzie widać cięcie. W konsoli można ffmpeg-iem, zatrzymujemy wiadomo ctrl-c.
ffmpeg -f v4l2 -i /dev/video0 webcam0.mp4
Edycja: Teraz mi tak przyszło do głowy, że wolałbyś może coś graficznego (jest tego trochę) i co ważniejsze przypomniałem sobie o tym, że czasami jest kłopot z wykryciem tak uruchomionego źródła. I takim programem, który ma problemy z wykryciem jest cheese (jakby nie było graficzny program do obsługi web-kamer, ma też nagrywanie) i dla takich programów musisz uruchomić to z parametrem exclusive_caps, wcześniej wyładowując działający moduł. Dla ułatwienia, już nie wymagane, dodana nazwa dla kamery, dla cheese będzie.
modprobe -r v4l2loopback
modprobe v4l2loopback card_label="Nowa" exclusive_caps=1
Dalej uruchomić strumień. I teraz będzie wykrywana w ustawieniach cheese, druga kamera. Może się przyda.
Ostatnio edytowany przez jawojx (2022-11-05 20:06:43)
Offline
Dzięki. Póki co nagrałem kilkuminutowy film przez vlc. Jak się zapętla to mały przeskok jest, ale ja specjalnie na początku zgłaszam, że mam problem z połączeniem i może rwać połączenie. Do tego stara kamerka (kupiona w 2009 r - już wtedy była to jakaś tańsza). Wymóg jest, że musi być widać twarz. A, że widać słabo, to nie mój problem :-)
Offline