1つは画面をAVIビデオファイルとして録画できるコマンド、もう1つはビデオファイルを(偽)「Webカメラ」にストリーミングできるコマンドです。これは、共有する画面の選択をサポートしていないアプリに役立ちます(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
なぜこれら2つを並列に実行できないのですか?まあ、「ウェブカメラ」を使用するたびに、2番目のコマンドはファイルの先頭からストリーミングを開始します。だから私はスケジュールを非常に近づけなければなりません。それ以外の場合は遅延が発生します。
私は多くのソリューション(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それは行わなければなりません。