質問: v4l2-loopbackデバイスの正しいffmpeg出力フォーマットは何ですか? この質問 のガイドに従って、私はしました:$ sudo modprobe v4l2loopback $ ffmpeg -f x11grab -r 15 -s 1280x720 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0 デバイス/dev/video0は期待どおりに表示されますが、ffmpegコマンドは次の出力で失敗します。$ ffmpeg -f x11grab -r 15 -s 1280x720 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0 ffmpeg version 4.0 copyright (c) 2000-2018 the ffmpeg developers ... [x11grab @ 0x559767794cc0] stream #0: not enough frames to estimate rate; consider increasing probesize .... [v4l2 @ 0x55976779e6c0] ioctl(vidioc_g_fmt): invalid argument could not write header for output file #0 (incorrect codec parameters ?): invalid argument error initializing output stream 0:0 -- conversion failed! 私はすでに答えの下の提案に従おうとしましたが無駄になりました。 v4l2がffmpeg -formatsでのみdemuxとしてリストされていることに気付きました。 /dev/video0への出力に使用できないということですか?もしそうなら、代わりに何を使うべきですか? h264を試しましたが、約1000フレーム後にクラッシュし、次のエラーメッセージが表示されます。$ ffmpeg -f x11grab -r 15 -s 1280x720 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f h264 /dev/video0 ffmpeg version 4.0 copyright (c) 2000-2018 the ffmpeg developers ... [x11grab @ 0x55da61e29cc0] stream #0: not enough frames to estimate rate; consider increasing probesize ... file '/dev/video0' already exists. overwrite ? [y/n] y .... error writing trailer of /dev/video0: invalid argument .... conversion failed!
回答: v4l2loopback v0.11.0には bug が修正されているため、バグレポートに示されているようにソースコードを手動で変更する必要はありません。現在のところ、修正された新しいリリースバージョンはないため、修正が含まれているマスターブランチにアップグレードしてください。インストールarch linux新しいリリースバージョンがリリースされるまで、 v4l2loopback-dkms の代わりにaurパッケージ v4l2loopback-dkms-git を使用できます。debianとubuntusudo apt-get remove v4l2loopback-dkms sudo apt-get install build-essential libelf-dev linux-headers-$(uname -r) unzip wget https://github.com/umlaeute/v4l2loopback/archive/master.zip unzip master.zip cd v4l2loopback-master make sudo make install sudo depmod -a sudo modprobe v4l2loopback ffmpegの例デスクトップをつかむ:ffmpeg -f x11grab -framerate 25 -video_size 1280x720 -i :0.0+0,0 -f v4l2 /dev/video0 ファイルを送信:ffmpeg -re -i input.mp4 -f v4l2 /dev/video0 ビデオを再生するffplayffplay -f v4l2 /dev/video0 mpvmpv --demuxer-lavf-format v4l2 /dev/video0 vlcメディア→キャプチャデバイスを開く