Kesulitan mendapatkan VLC untuk direkam dari webcam melalui baris perintah

8

my ~ / .bashrc berisi fungsi berikut

webcamrecord () {
vlc v4l2:// :v4l-vdev="/dev/video0" :v4l-adev="/dev/audio2" :v4l-norm=3 :v4l-frequency=-1 :v4l-caching=300 :v4l-chroma="" :v4l-fps=-1.000000 :v4l-samplerate=44100 :v4l-channel=0 :v4l-tuner=-1 :v4l-audio=-1 :v4l-stereo :v4l-width=640 :v4l-height=480 :v4l-brightness=-1 :v4l-colour=-1 :v4l-hue=-1 :v4l-contrast=-1 :no-v4l-mjpeg :v4l-decimation=1 :v4l-quality=100 --sout="#transcode{vfilter=adjust{gamma=1.5},vcodec=theo,vb=2000,scale=0.67,acodec=vorb,ab=128,channels=2}:standard{access=file,mux=ogg,dst="output_file.ogg"}" 
}

Perintah berfungsi dengan baik untuk merekam langsung dari webcam saya, dengan satu atau dua kelemahan. Pertama, video yang dihasilkan bergerak terlalu cepat, antara dua kali dan tiga kali lipat dari laju normal.

Juga, tidak ada audio. Ini bukan masalah, tapi saya masih ingin memperbaikinya.

Dapatkah seseorang membantu saya men-debug perintah ini, untuk memperbaiki masalah ini?

ixtmixilix
sumber

Jawaban:

4

One-liner ini berfungsi untuk saya, dengan audio dan video:

vlc v4l2:// :input-slave=alsa:// :v4l-vdev="/dev/video0" :v4l-norm=3 :v4l-frequency=-1 :v4l-caching=300 :v4l-chroma="" :v4l-fps=-1.000000 :v4l-samplerate=44100 :v4l-channel=0 :v4l-tuner=-1 :v4l-audio=-1 :v4l-stereo :v4l-width=480 :v4l-height=360 :v4l-brightness=-1 :v4l-colour=-1 :v4l-hue=-1 :v4l-contrast=-1 :no-v4l-mjpeg :v4l-decimation=1 :v4l-quality=100 --sout="#transcode{vcodec=theo,vb=2000,fps=12,scale=0.67,acodec=vorb,ab=90,channels=1,samplerate=44100}:standard{access=file,mux=ogg,dst=output.ogg}"

Anda juga dapat mencoba yang ini:

vlc v4l2:// :v4l-vdev="/dev/video0" :v4l-adev="/dev/pcm" :v4l-norm=3 :v4l-frequency=-1 :v4l-caching=300 :v4l-chroma="" :v4l-fps=-1.000000 :v4l-samplerate=44100 :v4l-channel=0 :v4l-tuner=-1 :v4l-audio=-1 :v4l-stereo :v4l-width=480 :v4l-height=360 :v4l-brightness=-1 :v4l-colour=-1 :v4l-hue=-1 :v4l-contrast=-1 :no-v4l-mjpeg :v4l-decimation=1 :v4l-quality=100 --sout="#transcode{vcodec=theo,vb=2000,fps=12,scale=0.67,acodec=vorb,ab=90,channels=1,samplerate=44100}:standard{access=file,mux=ogg,dst=output.ogg}"

Pengalaman Anda dapat bervariasi, tergantung pada perangkat keras Anda. Semoga berhasil!

balkian
sumber
Huh, tidak ada yang bekerja untuk saya. Hanya 'v4l2: /// dev / videoX' yang berfungsi, tetapi saya tidak tahu cara menentukan opsi di sana. Opsi pada wiki tampaknya tidak berfungsi baik ( wiki.videolan.org/Documentation:Modules/v4l2#Video_input )
gatoatigrado
1

Karena penasaran, apakah Anda yakin bahwa sumber audio adalah sumber yang tepat?

Kedua (sekali lagi, hanya pertanyaan) mengapa Anda tidak menggunakan ffmpeg untuk melakukan streaming video?
Sesuatu seperti tetapi tidak cukup:

ffmpeg -b 100K -an -f video4linux2 -s 320x240 -r 10 -i /dev/audio2 -i /dev/video0 -b 100K -f ogg - | mplayer - -idle -demuxer ogg

Tukar input audio dan input video sesuai keinginan Anda dan kemudian main-main dengan konversi file yang sebenarnya, saya agak berkarat di ffmpeg dan mplayer tapi itu bisa dilakukan. + seorang teman melakukannya dengan raspberry pi dengan ~ 20fps @ 1080p sehingga Anda harus baik-baik saja dengan peralatan standar melalui metode ini :)

Torx
sumber
0

Dapatkan ikhtisar semua perangkat (dalam contoh ini: / dev / video0):

v4l2-ctl --list-devices

Periksa format yang tersedia:

v4l2-ctl --list-formats-ext -d /dev/video0

Tentukan sumber suara (kartu: 0 ..., perangkat: 1 ... sama dengan hw: 0,1 . Dalam contoh ini hw: 0,0):

arecord -l

Rekam video + audio, langsung ke file:

cvlc v4l2:///dev/video0:width=640:height=480 :input-slave=alsa://hw:0,0 --sout="#transcode{vcodec=theo,vb=2000,fps=20,scale=1.0,acodec=vorb,ab=90,channels=1,samplerate=44100}:standard{access=file,mux=ogg,dst=output.ogg}"

Sama tetapi dengan video langsung:

cvlc v4l2:///dev/video0:width=640:height=480 :input-slave=alsa://hw:0,0 --sout="#transcode{vcodec=theo,vb=2000,fps=20,scale=1.0,acodec=vorb,ab=90,channels=1,samplerate=44100}:duplicate{dst=display,dst=standard{access=file,mux=ogg,dst=output.ogg}}"  

Anda dapat mengubah cvlckembali ke vlcjika Anda ingin memiliki menu + kontrol.

Opsi lainnya dengan modul v4l2 di VLC.

bahaya89
sumber
0

Tidak dapat memperoleh hasil yang konsisten atau menemukan contoh minimal, saya mencoba membaca instruksi memahami hal-hal seperti ini,

 vlc --longhelp --advanced | grep v4l | grep dev

akhirnya ini tampaknya berfungsi sebagai contoh minimal,

 vlc  alsa://plughw:1,0 --input-slave=v4l2:///dev/video0

sementara saya tidak memeriksa sinkronisasi atau kualitas sama sekali, memang saya penasaran untuk melihat umpan balik audio dan video apa yang dapat saya hasilkan dengan menunjuk kamera di layar dan menyalakan spektrometer, mungkin kedua saluran dapat diputar dan Anda dapat mengubah dari sana. Anda bisa mendapatkan perangkat yang sesuai dari respons sebelumnya AFAICT.

Saya memiliki versi ini:

VLC media player 2.2.2 Weatherwax (revision 2.2.2-0-g6259d80)
VLC version 2.2.2 Weatherwax (2.2.2-0-g6259d80)
Compiled by buildd on lgw01-09.buildd (Aug  8 2017 18:59:52)
Compiler: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
This program comes with NO WARRANTY, to the extent permitted by law.
You may redistribute it under the terms of the GNU General Public License;
see the file named COPYING for details.
Written by the VideoLAN team; see the AUTHORS file.
mike marchywka
sumber