cvlc -I dummy v4l2:// :input-slave=alsa:// :v4l-vdev="/dev/video0" :v4l-norm=3 :v4l-frequency=-1 :v4l-caching:1500 :v4l-samplerate=44100 :v4l-channel=0 :v4l-tuner=-1 :v4l-audio=-1 :v4l-stereo :v4l-width=480 :v4l-height=640 :v4l-brightness=0 :v4l-colour=-1 :v4l-hue=-1 :v4l-contrast=0 :no-v4l-mjpeg :v4l-decimation=1 :v4l-quality=100 --sout-mux-caching=5000 --sout="#transcode{vcodec=mp4v,scale=0.7,acodec=mp4a,ab=96,channels=1,samplerate=44100}:standard{access=file,mux=mp4,dst=Vídeos/Desde casa/cam_`date +%Y-%m-%d_%H-%M-%S`.mp4}"
Para lograr que la grabación termine automáticamente después de un tiempo determinado en segundos, fue necesario insertar el comando en un script, ya que las referencias sobre utilizar parámetros internos de VLC como vlc://quit
, --run-time=[segundos]
y --stop-time=[segundos]
no funcionaron en ninguna de las combinaciones. El script lo puse en ~/.local/bin/vlc_cam
y su contenido es este:- #!/bin/bash
- #Nombre del script: vlc_cam
- #Script para grabación desde webcam mediante vlc.
- #Este script fue desarrollado en Ubuntu 18.04.
- #Paquetes que deben instalarse previamente: vlc
- #Fecha de creación: 2019-01-22
- #Autor: @leoperbo
- echo '¿Cuántos segundos grabar?'
- read TIEMPO
- echo 'Presiona CTRL+C para interrumpir la grabación manualmente.' &&
- timeout "$TIEMPO" cvlc -I dummy v4l2: :input-slave=alsa: :v4l-vdev="/dev/video0" :v4l-norm=3 :v4l-frequency=-1 :v4l-caching:1500 :v4l-samplerate=44100 :v4l-channel=0 :v4l-tuner=-1 :v4l-audio=-1 :v4l-stereo :v4l-width=480 :v4l-height=640 :v4l-brightness=0 :v4l-colour=-1 :v4l-hue=-1 :v4l-contrast=0 :no-v4l-mjpeg :v4l-decimation=1 :v4l-quality=100 –sout-mux-caching=5000 –sout="#transcode{vcodec=mp4v,scale=0.7,acodec=mp4a,ab=96,channels=1,samplerate=44100}:standard{access=file,mux=mp4,dst=Vídeos/Desde casa/cam_`date +%Y-%m-%d_%H-%M-%S`.mp4}"
- Iniciar la grabación desde línea de comandos con una línea de texto corta (útil para control remoto vía SSH).
- Decidir la duración de forma variable y rápida al iniciar la orden de grabación.
.local/bin/vlc_cam
¿Cuántos segundos grabar?
20
Presiona CTRL+C para interrumpir la grabación manualmente.
VLC media player 3.0.4 Vetinari (revision 3.0.4-0-gf615db6332)
Páginas consultadas:
- https://dwaves.org/2016/06/18/linux-debian-webcam-recording-with-vlc-player/
- https://www.vlchelp.com/how-to-record-webcam-video-using-vlc-media-player/#comment-861
- https://forum.videolan.org/viewtopic.php?t=41489#p360406 (útil para mi script)
- https://wiki.videolan.org/Mp4v/ (el mejor resultado lo obtuve con el códec mp4).
- https://wiki.videolan.org/V4l/
- https://wiki.videolan.org/Documentation:Modules/v4l/
- https://www.linuxtv.org/wiki/index.php/Streaming-V4L
- https://www.theora.org/faq/#41 (mis grabaciones con el códec theora no funcionaron, el video se reproduce mucho más rápido que el audio).
- https://blog.sourcefabric.org/en/news/blog/2077/Schedule-stream-recordings-from-the-command-line-Part-2.htm (no funcionó).