私の〜/ .bashrcには次の関数が含まれています
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"}"
}
このコマンドは美しく機能し、1つまたは2つの欠陥があり、私のウェブカメラから直接記録します。まず、生成されたビデオの動きが速すぎて、通常の2倍から3倍の間です。
また、音声はありません。これはそれほど問題ではありませんが、私はこれを修正したいと思っています。
これらの問題を修正するために、誰かがこのコマンドのデバッグを手伝ってくれる?
このワンライナーはオーディオとビデオで私のために働きました:
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}"
これを試すこともできます:
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}"
ハードウェアによっては、体験が異なる場合があります。幸運を!
好奇心から、オーディオソースが適切なソースであると確信していますか?
2番目に(ここでも質問です)、代わりにffmpegを使用してビデオをストリーミングしないのはなぜですか?
次のようなものですが、完全ではありません:
ffmpeg -b 100K -an -f video4linux2 -s 320x240 -r 10 -i /dev/audio2 -i /dev/video0 -b 100K -f ogg - | mplayer - -idle -demuxer ogg
オーディオ入力とビデオ入力を好きなように入れ替えて、実際のファイル変換をいじくりまわしてください。私はffmpegとmplayerで少し錆びていますが、それは可能です。 +友人がRaspberry Piで〜20fps @ 1080pでそれを行ったので、この方法で標準的な機器で問題ないはずです:)
すべてのデバイスの概要を取得します(この例では/ dev/video0):
v4l2-ctl --list-devices
利用可能なフォーマットを確認してください:
v4l2-ctl --list-formats-ext -d /dev/video0
音源を決定(カード:...、デバイス:1 ...はhw:0,1と同じです。この例では、hw:0,0):
arecord -l
ビデオ+オーディオを直接ファイルに記録:
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}"
同じですが、ライブビデオ:
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}}"
コントロール+メニューが必要な場合は、cvlc
をvlc
に戻すことができます。
一貫した結果を得ることができないか、最小限の例を見つけることができませんでした。
vlc --longhelp --advanced | grep v4l | grep dev
最終的にこれは最小限の例として機能するようですが、
vlc alsa://plughw:1,0 --input-slave=v4l2:///dev/video0
私は同期や品質をまったくチェックしませんでしたが、実際に、画面でポインティングカメラを生成して分光計をオンにできるオーディオとビデオのフィードバックを知りたいと思ったので、両方のチャネルを再生して、そこから微調整できます。あなたは前の応答AFAICTからあなたの適切なデバイスを得ることができます。
私はこのバージョンを持っています:
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.