Saya ingin membuat streaming langsung (jendela pada) desktop linux saya menggunakan situs streaming gratis, menggunakan video yang diambil sebagai webcam palsu. Ada banyak alat untuk ini di windows. ffmpeg memungkinkan saya untuk mengambil input pada jendela tertentu, tetapi saya tidak dapat menemukan cara untuk output video ke perangkat bergaya webcam palsu yang dapat digunakan oleh flash.
Adakah yang bisa merekomendasikan metode (atau perangkat lunak) untuk melakukan ini?
linux
ffmpeg
screencasts
virtual-webcam
bkconrad
sumber
sumber
Jawaban:
Anda dapat menginstal v4l2loopback . Ini adalah modul kernel yang mensimulasikan webcam. Muat dengan:
Maka Anda perlu mengirim aliran video ke perangkat / dev / video0 menggunakan program seperti ffmpeg. Untuk menangkap desktop dan meneruskannya ke / dev / video0 dengan ffmpeg, Anda dapat menggunakan baris perintah berikut:
Ubah nilai -r dari 15 menjadi sesuatu yang lain jika Anda menginginkan frame rate yang berbeda. Resolusi dipilih dalam parameter -s. Jika Anda ingin menentukan offset dari sudut kiri atas layar, berikan dalam parameter -i dalam bentuk "-i: 0,0 + x, y", di mana x dan y masing-masing merupakan offset horizontal dan vertikal.
sumber
[x11grab @ 0x24013c0] Stream #0: not enough frames to estimate rate; consider increasing probesize
,[v4l2 @ 0x2409520] ioctl(VIDIOC_G_FMT): Invalid argument
danCould not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Gunakan v4l2loopback dengan mplayer .
make
dansu -c 'make install'
),su -c 'modprobe v4l2loopback'
,kemudian ubah satu baris dalam file
examples/yuv4mpeg_to_v4l2.c
dari folder sumber v4l2loopback dariuntuk
dan lakukan
make
di folder ini.Kemudian jalankan dari
examples
direktori seperti ini:tempat Anda mengganti
movie.mp4
dengan nama file video Anda. Dan ganti/dev/video0
dengan perangkat loopback Anda.MPlayer dapat memainkan streaming web apa pun, semua jenis file video, bahkan dari stdin! Saya baru saja mengujinya dengan file dari http://www.tagesschau.de yang merupakan situs berita Jerman.
Alih-alih $ TS Anda bisa meletakkan
-
(yang merupakan singkatan dari stdin). Dan di depan mplayer, perintah ffmpeg Anda mengarahkan ulang outputnya ke stdout. Jadi sesuatu seperti:Tidak menguji yang terakhir, karena Anda tidak tahu seperti apa perintah ffmpeg Anda.
sumber
./yuv4mpeg_to_v4l2 < /dev/video0 &
mengarah ke./yuv4mpeg_to_v4l2: : missing YUV4MPEG2 header
. Bagaimana cara mengganti/tmp/pipe
dengan/dev/video0
?Distro apa yang Anda gunakan? Saya sudah sukses dengan WebCamStudio di bawah Arch dikombinasikan dengan "studio" berbasis web Livestream. Sudah agak lama sejak saya menggunakannya.
http://www.ws4gl.org/
Apa yang sebenarnya ingin Anda lakukan? ffmpeg yang dikompilasi dengan x11grab dapat merekam desktop. Saya memiliki keberhasilan yang terbatas untuk mendorong hal itu ke Ustream, tetapi sekali lagi sudah lama dan saya pikir apa yang saya lakukan tidak akan berhasil lagi.
Jika Anda hanya ingin melakukan streaming file daripada desktop Anda (saya berpikir ketika Anda mengatakan, "Sebuah jendela," maksud Anda, "VLC"), saya bisa mengarahkan Anda ke arah yang benar untuk membuatnya bekerja dengan Livestream (mungkin Ustream). Dengan kikuk mencari tahu bagaimana melakukan ini melalui eksperimen. Itu tidak fantastis tetapi bekerja dengan Livestream.
Justin.tv memiliki skrip yang dapat streaming dari VLC ke layanan mereka, juga.
http://apiwiki.justin.tv/mediawiki/index.php/Linux_Broadcasting_API
sumber
Pertama ,erge.in mungkin melakukan apa yang Anda inginkan tanpa kerumitan (saya tidak berafiliasi): http://appear.in/
Kedua, Anda dapat melakukan streaming ke Twitch atau layanan lain menggunakan OBS, yang baru-baru ini menambahkan dukungan linux (!): Https://obsproject.com/
OBS juga memecahkan masalah yang jauh lebih sulit dari muxing suara sistem dan input audio saat menangkap layar di Ubuntu (tidak dipecahkan oleh apa pun di
universe
repo yang saya temukan sejauh ini).Saya tidak punya solusi unix-y yang mengagumkan. Tetapi itu berhasil bagi saya di dunia nyata.
sumber