Sự cố khiến VLC ghi lại từ webcam thông qua dòng lệnh


8

my ~ / .bashrc chứa hàm sau

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"}" 
}

Lệnh này hoạt động rất đẹp để ghi trực tiếp từ webcam của tôi, với một hoặc hai lỗi. Đầu tiên, video được tạo ra di chuyển quá nhanh, từ hai lần đến ba lần tốc độ bình thường.

Ngoài ra, không có âm thanh. Đây không phải là một vấn đề, nhưng tôi vẫn muốn khắc phục điều này.

Ai đó có thể giúp tôi gỡ lỗi lệnh này, để khắc phục những vấn đề này không?

Câu trả lời:


4

Điều này làm việc cho tôi, với âm thanh và 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}"

Bạn cũng có thể thử cái này:

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}"

Kinh nghiệm của bạn có thể thay đổi, tùy thuộc vào phần cứng của bạn. Chúc may mắn!


Huh, không ai trong số này đang làm việc cho tôi. Chỉ 'v4l2: /// dev / videoX' hoạt động, nhưng tôi không biết cách chỉ định các tùy chọn ở đó. Các tùy chọn trên wiki dường như không hoạt động ( wiki.videolan.org/Documentation:Modules/v4l2#Video_input )
gatoatigrado

1

Vì tò mò, bạn có chắc rằng nguồn âm thanh là nguồn thích hợp?

Thứ hai (một lần nữa, chỉ là một câu hỏi) tại sao bạn không sử dụng ffmpeg để truyền phát video thay thế?
Một cái gì đó thích nhưng không hoàn toàn:

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

Hoán đổi đầu vào âm thanh và đầu vào video theo ý thích của bạn và sau đó loay hoay với việc chuyển đổi tập tin thực tế, tôi hơi khó chịu với ffmpeg và mplayer nhưng điều đó là có thể. + một người bạn đã làm điều đó với raspberry pi với ~ 20fps @ 1080p, vì vậy bạn sẽ ổn với thiết bị tiêu chuẩn thông qua phương pháp này :)


0

Nhận tổng quan về tất cả các thiết bị (trong ví dụ này: / dev / video0):

v4l2-ctl --list-devices

Kiểm tra các định dạng có sẵn:

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

Xác định nguồn âm thanh (thẻ: 0 ..., thiết bị: 1 ... bằng hw: 0,1 . Trong ví dụ này hw: 0,0):

arecord -l

Ghi video + âm thanh, trực tiếp vào tập tin:

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}"

Tương tự nhưng với video trực tiếp:

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}}"  

Bạn có thể thay đổi cvlctrở lại vlcnếu bạn muốn có menu điều khiển +.

Nhiều tùy chọn hơn với mô-đun v4l2 trong VLC.


0

Không thể có được kết quả nhất quán hoặc tìm một ví dụ tối thiểu, tôi đã cố đọc hướng dẫn grepping cho những thứ như thế này,

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

cuối cùng, điều này dường như hoạt động như một ví dụ tối thiểu,

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

Mặc dù tôi hoàn toàn không kiểm tra đồng bộ hóa hoặc chất lượng, nhưng thực sự tôi tò mò muốn xem phản hồi âm thanh và video nào tôi có thể tạo ra camera trỏ trên màn hình và bật máy quang phổ, nó có thể phát cả hai kênh và bạn có thể điều chỉnh từ đó. Bạn có thể nhận được các thiết bị phù hợp của mình từ các phản hồi trước AFAICT.

Tôi có phiên bản này:

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.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.