하나는 화면을 AVI 비디오 파일로 녹화할 수 있는 명령이고 다른 하나는 비디오 파일을 (가짜) "웹캠"으로 스트리밍할 수 있는 명령입니다. 이는 공유할 화면 선택을 지원하지 않는 앱에 유용합니다(Slack을 살펴보겠습니다).
명령 #1(https://askubuntu.com/a/892683/721238):
ffmpeg -y -f alsa -i hw:0 -f x11grab -framerate 30 -video_size 1920x1080 -i :0.0+1920,0 -c:v libx264 -pix_fmt yuv420p -qp 0 -preset ultrafast screenStream.avi
명령 #2(https://unix.stackexchange.com/a/466683/253391):
ffmpeg -re -i screenStream.avi -map 0:v -f v4l2 /dev/video1
왜 이 두 가지를 병렬로 실행할 수 없나요? 글쎄, "웹캠"을 사용할 때마다 두 번째 명령은 파일 시작 부분부터 스트리밍을 시작합니다. 그래서 저는 일정을 아주 가깝게 잡아야 합니다. 그렇지 않으면 지연이 생길 것입니다.
나는 많은 솔루션(ffmpeg 대신 gstreamer를 사용하는 솔루션 포함)을 시도했지만 아무것도 작동하지 않습니다. 이것이 나의 마지막 희망이다.
데스크탑/화면을 Ubuntu의 /dev/video1에 (가짜) "웹캠"으로 스트리밍하려면 어떻게 해야 합니까?
답변1
해결되었습니다.
해결 단계:
- 이전 v4l2loopback을 제거합니다.
sudo modprobe -r v4l2loopback
git clone https://github.com/umlaeute/v4l2loopback/
make && sudo make install
(보안 부팅을 사용하는 경우 먼저 서명해야 합니다.https://ubuntu.com/blog/how-to-sign-things-for-secure-boot)sudo depmod -a
- videodev 드라이버 로드
sudo modprobe videodev
sudo insmod ./v4l2loopback.ko devices=1 video_nr=2 exclusive_caps=1
변화비디오 번호이미 보유하고 있는 카메라 수에 따라 다릅니다. 제로 인덱스ls -al /dev/video*
ffmpeg와 함께 /dev/video[video_nr] 사용sudo ffmpeg -f x11grab -r 60 -s 1920x1080 -i :0.0+1920,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 -vf 'hflip,scale=640:360' /dev/video2
- 가다https://webcamtests.com가짜 카메라를 테스트해 보세요
- 이익!
부팅 간에 이것이 지속되도록 하려면,https://askubuntu.com/a/1024786/721238그것은 이루어져야합니다.