J'ai besoin d'enregistrer une vidéo à partir de ma webcam, et bien que Cheese fonctionne, il manque de paramètres, et ne produit que le format webm qui est plein de bégaiements, etc.
Je n'arrive pas à trouver d'alternative...
J'ai besoin d'enregistrer une vidéo à partir de ma webcam, et bien que Cheese fonctionne, il manque de paramètres, et ne produit que le format webm qui est plein de bégaiements, etc.
Je n'arrive pas à trouver d'alternative...
Guvcview a pour but de fournir une interface GTK simple pour la capture et la visualisation de vidéos à partir de périphériques supportés par le pilote UVC de Linux, bien qu'il doive également fonctionner avec tout périphérique compatible v4l2.
Le projet est basé sur luvcview pour le rendu vidéo, mais tous les contrôles sont construits en utilisant une interface GTK2.
Guvcview (depuis la version 0.9.9) a une fenêtre de contrôle seulement, (depuis la console : guvcview --control_only
, --control_panel
dans les nouvelles versions), cela permet de contrôler les images sur d'autres applications, comme ekiga, cheese, mplayer, skype...
Le support audio de Guvcview est basé sur la bibliothèque portaudio, jusqu'à la version 0.9.3 l'API bloquante était utilisée pour la capture audio, depuis la version 0.9.4 la méthode callback est utilisée à la place, ceci fournit de meilleures performances, c'est aussi la méthode préférée pour l'API portaudio.
Toutes les interfaces (ALSA, OSD, JACK, ...) supportées par portaudio devraient être disponibles dans guvcview. Assurez-vous simplement que portaudio a été compilé avec les interfaces désirées activées.
Le pilote UVC Linux dispose d'une implémentation pour les contrôles d'extension (il s'agit de contrôles spécifiques au fournisseur et ils sont pris en charge dans la spécification UVC), ils sont appelés contrôles dynamiques car ils doivent être chargés dynamiquement dans le pilote.
Jusqu'à aujourd'hui, seul Logitech a fourni des spécifications pour leurs commandes d'extension de webcam UVC, celles-ci sont supportées par guvcview.
Dans les nouvelles révisions de pilotes, des droits d'administrateur sont nécessaires pour ajouter ces contrôles au pilote, il y a donc essentiellement deux solutions :
démarrer guvcview en tant que root (en utilisant sudo
) au moins une fois par session, depuis la version 1.2.0 vous pouvez le faire avec l'option --add_ctrls
éviter la nécessité de lancer complètement guvcview
installer libwebcam ce logiciel a un udev script qui devrait ajouter les contrôles nécessaires à votre caméra logitech.
sudo add-apt-repository ppa:pj-assis/ppa
sudo apt-get update
sudo apt-get install guvcview
Si vous avez besoin d'une nouvelle application, guvcview est bon.
Une partie de cette question provient de la réponse à cette question : Enregistrer à partir de cassettes VHS .
Nous devons nous assurer que le logiciel collecte les bonnes données à partir du bon appareil. Déposons une requête dans le terminal qui nous permettra de voir combien de périphériques sont connectés à votre ordinateur, ce qui peut être utilisé pour recueillir des images, utilisez cette commande dans un terminal :
ls -l /dev/video*
Les résultats devraient être comme ceci :
geppettvs@DYLAN:~$ ls -l /dev/video*
crw-rw----+ 1 root video 81, 0 2012-04-17 19:53 /dev/video0
crw-rw----+ 1 root video 81, 1 2012-04-17 19:53 /dev/video1
crw-rw----+ 1 root video 81, 2 2012-04-18 17:54 /dev/video2
geppettvs@DYLAN:~$
Dans mon cas, j'ai 3 appareils vidéo, dont l'un est le tuner TV USB que j'utilise pour regarder/enregistrer des émissions de télévision en direct, un magnétoscope, un convertisseur vidéo et d'autres signaux RF.
Les autres dispositifs sont des Webcam USB fixées aux fentes USB de l'ordinateur.
Si votre webcam est dotée d'un microphone, il est possible d'enregistrer à la fois l'audio et la vidéo à l'aide de l'outil d'enregistrement. tvcap-script par Andreas Schalk que je place ici pour votre commodité :
#!/bin/bash
#
# tvcap-script by Andreas Schalk, easycap.blogspot.com (Dec. 2011)
# This script is based an a template TV-script from Jose Catre-Vandis (Jan 2006).
# The ascii artwork is based on a template i found here: http://www.retrojunkie.com/asciiart/electron/tv.txt
# Contact: easycapdc60-blogspot@yahoo.de
#-----------------------------------------------------------------------------
#
# FUNCTION: This script provides Zenity menues for viewing an capturing video with a tv-card on Linux.
#
# Supported programs: MPlayer, MEncoder, VLC, Tvtime, Cheese und Sox
#
#-----------------------------------------------------------------------------
#
# Basic options:
#
# Change the following parameters for viewing/ capturing according to your needs
#
#-----------------------------------------------------------------------------
VERBOSE=1 # if '0', this script does not show messages window and does not ask for norm and input number anymore
NORM="PAL" # preselect tv norm 'PAL' or 'NTSC'
INPUT_NR=0 # preselect input number of your easycap where video source is plugged in
input_width=720 # preselect width an height of video source (mplayer, vlc, mencoder)
input_height=576 # other possible combinations: 640/480; 320/240
ASPECT=169 # '169' (16:9) or '43' (4:3); this value affects video playback with mplayer or vlc only!
FREQ="48000" # on soundproblems reduce audio frequency (44100 oder 32000 oder 8000)
TV_INPUT="no" # if 'yes' the analogue antenna input of the tv-card will be used (mplayer only)
CHAN="chanlist=europe-west:channel=60" # channel setting (nur mplayer/ mencoder) the analogue antenna input of the tv-card is used
NORM="PAL" # preselect TV-norm 'PAL' oder 'NTSC'
INPUT_NR=1 # preselct the Input on the TV-card, where the videosource is plugged in ('0' normally is the antenna, '1' the first CVBS ...
#-----------------------------------------------------------------------------
MESSAGE=()
R_MESSAGE=()
EXITCODE=0
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# test videodevices
##-----------------------------------------------------------------------------
declare -a VIDEO_DEV
VIDEO_DEV=( TRUE none
FALSE none
FALSE none
FALSE none
)
i1=0;
i2=0;
while `test -e "/dev/video${i1}"`; do
VIDEO_DEV[$i2+1]="/dev/video${i1}";
i1=$[$i1+1];
i2=$[$i2+2];
done
if [ "xnone" = "x${VIDEO_DEV[1]}" ]; then
zenity --error --timeout=5 --text "Cannot find /dev/video0!\n Script ends in 5 seconds" --title "No videodevice!";
exit 1;
fi
if [ "x${VIDEO_DEV[$i2+1]}" = "xnone" ]; then
VIDEO_DEV[$i2]="" && VIDEO_DEV[$i2+1]="" && VIDEO_DEV[$i2+2]="" && VIDEO_DEV[$i2+3]="" && VIDEO_DEV[$i2+4]="" && VIDEO_DEV[$i2+5]="";
fi
DEV_VIDEO=$(zenity --list --text "Select videodevice" --radiolist --column "Choice" --column "Device" ${VIDEO_DEV[@]}) || exit 0
if [ ${VERBOSE} = 1 ]; then
#-----------------------------------------------------------------------------
# select TV norm
#-----------------------------------------------------------------------------
title="Select tv norm"
NORM=`zenity --title="$title" --list --radiolist --column="Choice" \
--column="Norm" --column="Description" \
TRUE "PAL" "PAL Norm" \
FALSE "NTSC" "NTSC Norm" \
` || exit 0
fi
#-----------------------------------------------------------------------------
# select Input number
#-----------------------------------------------------------------------------
title="Select Input NR"
INPUT_NR=`zenity --title="$title" --list --radiolist --column="Choice" \
--column="Input NR" --column="Description" \
TRUE "0" "Input 1 (TV)" \
FALSE "1" "Input 2" \
FALSE "2" "Input 3" \
FALSE "3" "Input 4" \
FALSE "4" "Input 5" \
FALSE "5" "Input 6"
` || exit 0
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Check if snd_usb_audio module is loaded
#-----------------------------------------------------------------------------
SND_USB=`lsmod | grep snd_usb_audio | wc -l`
if [ "${SND_USB}" -ge "1" ]; then
# MESSAGE=("${MESSAGE[@]}" "\nNOTE: snd_usb_audio module was loaded and may conflict with your USB capture device")
zenity --info --text "NOTE: The snd_usb_audio module was loaded\nand may conflict with your USB capture device.\n \nIf sound problems appear,\nplug out your USB capturedevice and run\n rmmod snd_usb_audio \nas root in the terminal!" --title "Snd_usb_audio module loaded!"
fi
#-----------------------------------------------------------------------------
# test and select soundcard
#-----------------------------------------------------------------------------
if `test ! -e /dev/dsp` && [ -z "`ls -1 /proc/asound`" ]; then
if_audio="no";
echo "No soundcard detected";
MESSAGE=("${MESSAGE[@]}" "Note: No soundcard can be found!\nSound is not supported.\n");
else
if_audio="yes"
declare -a SOUND_DEV
SOUND_DEV=( FALSE /dev/dsp OSS
FALSE card1 ALSA
TRUE card2 ALSA
FALSE card3 ALSA
)
test ! -e /dev/dsp && echo "No dsp" && SOUND_DEV[0]="" && SOUND_DEV[1]="" && SOUND_DEV[2]=""
ALSA_CARD=$(cat /proc/asound/cards | cut -d":" -f1 -s)
declare -a ALSA_CARDS
ALSA_CARDS=(${ALSA_CARD})
i5=1
for P in ${ALSA_CARDS[@]}; do
ALSA_NAME=$(echo ${ALSA_CARDS[$i5]} | tr -d [=[=] );
SOUND_DEV[$i5+3]=$ALSA_NAME
if [ "x${ALSA_NAME}" = "x" ]; then
SOUND_DEV[$i5+2]="" && SOUND_DEV[$i5+3]="" && SOUND_DEV[$i5+4]=""
fi
i5=$[$i5+3];
done
fi
DEV_AUDIO=$(zenity --list --text "Select soundcard" --radiolist --column "Choice" --column "Device" --column "Type" ${SOUND_DEV[@]}) || exit 0
if [ $DEV_AUDIO = "/dev/dsp" ]; then
AUDIO_TYPE="oss"
else
AUDIO_TYPE="alsa"
fi
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# test, if devicenodes are read- and writable for unprivileged users
#-----------------------------------------------------------------------------
if [ -r ${DEV_VIDEO} ] && [ -w ${DEV_VIDEO} ]; then
MESSAGE=("${MESSAGE[@]}" "\nSUCCESS! ${DEV_VIDEO} is read- and writable!\n")
elif [ -e ${DEV_VIDEO} ]; then
zenity --info --text "Cannot access ${DEV_VIDEO}!\nRun 'sudo chmod a+rw ${DEV_VIDEO}'\nin the terminal!" --title "Message"
EXITCODE=1
fi
if [ -r ${DEV_AUDIO} ] && [ -w ${DEV_AUDIO} ]; then
MESSAGE=("${MESSAGE[@]}" "\nSUCCESS! ${DEV_AUDIO} is read- and writable!")
elif [ -e ${DEV_AUDIO} ]; then
zenity --info --text "\nCannot access ${DEV_AUDIO}!\nRun 'sudo chmod a+rw ${DEV_AUDIO}'\nin the terminal!" --title "Message"
MESSAGE=("${MESSAGE[@]}" "\n\nCannot access ${DEV_AUDIO}!\nRun 'sudo chmod a+rw ${DEV_AUDIO}'\nin the terminal!!")
if_audio="no"
fi
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# find executable programs
#-----------------------------------------------------------------------------
PROG_LIST=( TRUE vlc #
FALSE mplayer #
FALSE cheese #
FALSE tvtime #
FALSE mencoder #
FALSE sox #
)
PROGS=(vlc mplayer cheese tvtime mencoder sox)
i4=0
for P in ${PROGS[@]}; do
PROG=`which $P`
if [ "x" = "x${PROG}" ] || [ ! -x ${PROG} ]; then
echo "Cannot find or execute $P. Is t installed?"
MESSAGE=("${MESSAGE[@]}" "\nCannot find or execute $P. Is it installed?")
PROG_LIST[$i4]=""
PROG_LIST[$i4+1]=""
if [ "${PROG_LIST[11]}" = "" ]; then
echo "Sox is needed for sound with tvtime!"
MESSAGE=("${MESSAGE[@]}" "\nSox is needed for sound with tvtime!")
fi
fi
i4=$i4+2
done
PROG_LIST[10]="" # Sox does not show up on list
PROG_LIST[11]="" #
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# messages are displayed and script ends
#-----------------------------------------------------------------------------
if [ ${EXITCODE} = 1 ]; then
MESSAGE=("${MESSAGE[@]}" "\nScript ends")
fi
echo ${MESSAGE[*]}
#########################
if [ ${VERBOSE} = 1 ]; then
zenity --height="50" --info --text "${MESSAGE[*]}" --title "Messages"
fi
if [ ${EXITCODE} = 1 ]; then
exit 1
fi
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# create logfile
#-----------------------------------------------------------------------------
LOGFILE="./test`echo "${DEV_VIDEO}" | sed -e "s,/dev/,," - `.log"
# echo "Log file is: ${LOGFILE}"
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# zenity list - program choice
#-----------------------------------------------------------------------------
view_cap=$(zenity --list --width=250 --height=400 --text " ___________\n | .----------. o|\n | | Easy | o|\n | | CAP_ | o|\n |_\`-----------´ _|\n ´\` ´\`\\nTv-norm: $NORM Input-Nr:$INPUT_NR\nVideodevice: $DEV_VIDEO $input_width x $input_height \nAudiodevice: $AUDIO_TYPE $DEV_AUDIO $FREQ Hz\nIs audio on? $if_audio\nLogfile: $LOGFILE " --radiolist --column "Choice" --column "program" ${PROG_LIST[@]}) || exit 0
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# mplayer command
#-----------------------------------------------------------------------------
if [ "alsa" = "${AUDIO_TYPE}" ]; then
M_AUDIO="buffersize=16:alsa:amode=1:forcechan=2:audiorate=${FREQ}:adevice=plughw.${DEV_AUDIO}"
elif [ "oss" = "${AUDIO_TYPE}" ]; then
M_AUDIO="adevice=${DEV_AUDIO}"
fi
if [ "$NORM" = "PAL" ]; then
fps_count=25
else
fps_count=30
fi
if [ "$ASPECT" = 169 ]; then
M_ASPECT="-aspect 1.78"
# elif [ "$ASPECT" = 43 ]; then
# M_ASPECT="-aspect 1"
else
M_ASPECT=""
fi
if [ "yes" = "${TV_INPUT}" ]; then
M_VIDEO="${CHAN}"
elif [ "no" = "${TV_INPUT}" ]; then
M_VIDEO="norm=${NORM}:width=${input_width}:height=${input_height}:outfmt=uyvy:device=${DEV_VIDEO}:input=${INPUT_NR}:fps=${fps_count}"
fi
#echo $M_VIDEO
#echo $M_AUDIO
#echo $view_cap
if [ "mplayer" = "${view_cap}" ]; then
if [ "$if_audio" = "yes" ]; then
1>${LOGFILE} 2>&1 \
mplayer tv:// -tv driver=v4l2:${M_VIDEO}:${M_AUDIO}:forceaudio:immediatemode=0 -hardframedrop ${M_ASPECT} -ao sdl, ${AUDIO_TYPE} -msglevel all=9
elif [ "$if_audio" = "no" ]; then
1>${LOGFILE} 2>&1 \
mplayer tv:// -tv driver=v4l2:${M_VIDEO} -hardframedrop ${M_ASPECT} -msglevel all=9 -nosound
fi
fi
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# vlc command
#-----------------------------------------------------------------------------
if [ "vlc" = "${view_cap}" ]; then
if [ "alsa" = "${AUDIO_TYPE}" ]; then
V_AUDIO="//plughw:${DEV_AUDIO}"
elif [ "oss" = "${AUDIO_TYPE}" ]; then
V_AUDIO="//${DEV_AUDIO}"
fi
if [ "$NORM" = "PAL" ]; then
V_NORM="pal"
elif [ "$NORM" = "NTSC" ]; then
V_NORM="ntsc"
fi
if [ "$ASPECT" = 169 ]; then
V_ASPECT="--aspect-ratio=16:9"
elif [ "$ASPECT" = 43 ]; then
V_ASPECT="--aspect-ratio=4:3"
else
V_ASPECT=""
fi
1>${LOGFILE} 2>&1 \
vlc -vvv v4l2://${DEV_VIDEO}:input=${INPUT_NR}:width=$input_width:height=$input_height:norm=${V_NORM} ${V_ASPECT} :input-slave=${AUDIO_TYPE}:${V_AUDIO} --demux rawvideo
fi
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# tvtime command
#-----------------------------------------------------------------------------
if [ "tvtime" = "${view_cap}" ]; then
if [ "alsa" = "${AUDIO_TYPE}" ]; then
T_AUDIO="-t alsa plughw:${DEV_AUDIO} -s2 -c 2 -r ${FREQ} -s2 -t alsa default"
elif [ "oss" = "${AUDIO_TYPE}" ]; then
T_AUDIO="-t raw -s2 ${DEV_AUDIO} -c 2 -r ${FREQ} -s2 -t ossdsp /dev/dsp"
fi
echo $T_AUDIO
1>${LOGFILE} 2>&1 \
>./tvtime.err
(tvtime -d ${DEV_VIDEO} -i 0 -n "${NORM}" 1>/dev/null 2>>./tvtime.err) &
rc=1
while [ 0 -ne ${rc} ];
do
tvtime-command run_command "(sox -c 2 -r ${FREQ} ${T_AUDIO} 1>/dev/null 2>>./tvtime.err)" 1>/dev/null 2>>./tvtime.err
rc=$?
if [ 0 -eq ${rc} ]; then break; fi
sleep 0.5
done
fi
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# cheese command
#-----------------------------------------------------------------------------
if [ "cheese" = "${view_cap}" ]; then
1>${LOGFILE} 2>&1 \
cheese
fi
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# mencoder command - recording section
#-----------------------------------------------------------------------------
if [ "mencoder" = "${view_cap}" ]; then
#Auswahl des Seitenverhältnisses der Aufnahme?
title="Chose aspect of your target file!"
aspect_type=`zenity --width="400" --height="220" --title="$title" --list --radiolist --column="Click Here" \
--column="choice" --column="source >> target" \
TRUE "1" "4:3 > 4:3"\
FALSE "2" "4:3 > scale=16:9" \
FALSE "3" "4:3 > crop borders=16:9" \
` || exit 0
if [ "$aspect_type" = "1" ]; then
crop_scale="scale=640:480"
elif [ "$aspect_type" = "2" ]; then
crop_scale="scale=720:406"
elif [ "$aspect_type" = "3" ]; then
crop_scale="crop=720:406:0:72"
fi
#################################################################################
#Quality?
title="What quality do you want to record at ?"
qual_type=`zenity --width="380" --height="380" --title="$title" --list --radiolist --column="Click Here" \
--column="Record Time" --column="Description" \
FALSE "500" "Passable Quality"\
FALSE "900" "OK Quality"\
FALSE "1100" "VHS Quality"\
TRUE "1300" "SVHS Quality"\
FALSE "1500" "VCD Quality"\
FALSE "1800" "SVCD Quality" \
FALSE "2000" "Very Good Quality"\
FALSE "2500" "High Quality" \
FALSE "3000" "Excellent Quality"\
` || exit 0
##################################################################################
#How Long?
title="How long do you want to record for ?"
time_type=`zenity --width="380" --height="500" --title="$title" --list --radiolist --column="Click Here" \
--column="Record Time" --column="Description" \
FALSE "00:00:00" "unlimited"\
TRUE "00:00:30" "30 seconds for testing"\
FALSE "00:10:00" "0.2 hours"\
FALSE "00:30:00" "0.5 hours"\
FALSE "00:45:00" "0.75 hours"\
FALSE "01:00:00" "1 hour"\
FALSE "01:15:00" "1.25 hours"\
FALSE "01:30:00" "1.5 hours" \
FALSE "01:45:00" "1.75 hours"\
FALSE "02:00:00" "2 hours" \
FALSE "02:15:00" "2.25 hours"\
FALSE "02:30:00" "2.5 hours" \
FALSE "02:45:00" "2.75 hours"\
FALSE "03:00:00" "3 hours" \
FALSE "03:15:00" "3.25 hours" \
FALSE "03:30:00" "3.5 hours" \
` || exit 0
#M_TIME="-endpos $time_type"
#################################################################################
#user must enter a filename
filedate=$(date +%F_%H:%M-%S)
title="Please enter a filename for your recording, no spaces"
file_name=`zenity --width="480" --height="150" --title="$title" --file-selection --save --confirm-overwrite --filename="tvcap_$filedate"` || exit 0
###########################################################################################
# summary
R_MESSAGE=("${R_MESSAGE[@]}" "\nRecording options:")
R_MESSAGE=("${R_MESSAGE[@]}" "\nRecording audio: $if_audio")
R_MESSAGE=("${R_MESSAGE[@]}" "\nRecording from Input $INPUT_NR - Norm: $NORM $fps_count fps")
R_MESSAGE=("${R_MESSAGE[@]}" "\nCrop and scale options: $crop_scale")
R_MESSAGE=("${R_MESSAGE[@]}" "\nEncoding quality: $qual_type kb/s")
R_MESSAGE=("${R_MESSAGE[@]}" "\nRecording time:$time_type hours")
R_MESSAGE=("${R_MESSAGE[@]}" "\nFile name: $file_name.avi ")
echo ${R_MESSAGE[*]}
if [ ${VERBOSE} = 1 ]; then
zenity --info --text "${R_MESSAGE[*]}" --title "Recording options"
fi
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# mencoder line
#-----------------------------------------------------------------------------
if [ "$if_audio" = "yes" ]; then
zenity --info --title="Start recording with audio" --text="Press OK to start."
mencoder tv:// -tv driver=v4l2:norm=$NORM:width=$input_width:height=$input_height:outfmt=uyvy:device=${DEV_VIDEO}:input=${INPUT_NR}:fps=$fps_count:${M_AUDIO}:forceaudio:immediatemode=0 -msglevel all=9 -ovc lavc -ffourcc DX50 -lavcopts vcodec=mpeg4:mbd=2:turbo:vbitrate=$qual_type:keyint=15 -vf pp=lb,$crop_scale -oac mp3lame -endpos $time_type -o $file_name.avi | tee ${LOGFILE} | zenity --progress --pulsate --auto-close --auto-kill --text="Processing Video - length: $time_type H:M:S"
zenity --info --title="Job complete" --text="The recording is now complete."
elif [ "$if_audio" = "no" ]; then
zenity --info --title="Start recording without audio" --text="Press ok to start recording"
1>${LOGFILE} 2>&1 \
mencoder tv:// -tv driver=v4l2:norm=$NORM:width=$input_width:height=$input_height:outfmt=uyvy:device=${DEV_VIDEO}:input=${INPUT_NR}:fps=$fps_count -msglevel all=9 -nosound -ovc lavc -ffourcc DX50 -lavcopts vcodec=mpeg4:mbd=2:turbo:vbitrate=$qual_type:keyint=15 -vf pp=lb,$crop_scale -endpos $time_type -o $file_name.avi | tee ${LOGFILE} | zenity --progress --pulsate --auto-close --auto-kill --text="Processing Video - length: $time_type H:M:S"
zenity --info --title="Job complete" --text="The recording is now complete."
fi
fi
exit 1
Il suffit de copier/coller tout ce code dans un fichier appelé tvcap-script.sh, de lui donner les droits d'exécution et de l'exécuter dans un terminal. Le processus est assez simple et je vais l'expliquer comme suit :
1.- Après avoir appuyé sur Entrée, on vous demandera la source de capture, et selon l'emplacement du périphérique (testé auparavant), vous pouvez avoir - comme dans mon cas - plusieurs sources vidéo, j'utilise le /dev/video2 pour cet exemple, qui fait référence à mon Tuner TV USB. Notez que cette capture d'écran n'a pas obtenu le décorateur de fenêtre mais les options et le bouton "OK" peuvent être vus juste là.
2.- Au Mexique, nous utilisons la norme NTSC, et à moins que vous ne souhaitiez capturer votre vidéo en utilisant une norme différente avec un rapport d'aspect carré, vous ne devriez pas utiliser la norme PAL, qui peut en effet nuire un peu à la qualité de votre vidéo. Cela dépend aussi de votre lieu de résidence et de la norme de votre pays.
3.- Mon tuner TV a plusieurs entrées, le vôtre peut avoir un nombre différent d'entrées, vérifiez-le et faites autant de tests que nécessaire pour déterminer lequel est le meilleur pour votre capture. Je vais utiliser celle qui fait référence à la télévision (Input 1 (TV)).
4.- Ensuite, vous serez (ou non) averti et on vous proposera une solution si quelque chose ne va pas pendant la capture du son (l'audio et la vidéo vont être capturés en même temps mais si votre module snd_usb_audio a déjà été chargé, il peut faire échouer la capture audio et donc la capture vidéo elle-même).
5.- Mon tuner TV prend en charge plusieurs entrées audio, ce qui inclut l'intégration avec le dispositif de son intégré à ma carte mère (via la connexion d'un câble à la ligne auxiliaire et contrôlé par une table de mixage). Vérifiez quelle est la meilleure pour vous et n'oubliez pas que les valeurs par défaut sont généralement marquées comme étant les "meilleures pour vous".
Si tout se passe bien, vous verrez une petite fenêtre avec un message qui ressemble à ceci :
"SUCCESS ! /dev/video2 est accessible en lecture et en écriture !"
cliquez sur "OK" pour continuer.
7.- Ensuite, vous pouvez choisir dans la liste des options d'enregistrement disponibles sur votre système. J'ai installé ce que vous pouvez voir dans la capture d'écran suivante. Tout le monde est valide et la qualité ne reflète pas de changements majeurs mais je préfère personnellement mencoder . Si aucun de ces éléments n'est installé, vous devez le faire pour pouvoir exécuter vos tests.
8.- Après avoir choisi votre logiciel d'encodage préféré (dans l'étape précédente), il vous sera demandé le rapport d'aspect. Si vous n'avez pas d'expérience dans ce domaine, laissez-le tel quel. Normalement, le rapport par défaut est celui qui correspond le mieux au signal de votre tuner TV.
9.- En fonction de votre choix concernant le rapport hauteur/largeur, vous aurez plusieurs options pour la qualité vidéo, également basée sur le débit binaire, la description dans la fenêtre suivante est très spécifique. N'oubliez pas que : plus le débit binaire est élevé (meilleure qualité), plus la taille du fichier vidéo peut être importante.
10.- Après cela, il ne nous reste plus qu'à choisir la durée de notre capture vidéo. Il y a plusieurs présélections, j'ai choisi "30 secondes pour le test" dans cet exemple mais vous pouvez choisir n'importe laquelle ou même choisir "illimité" afin de décider quand arrêter l'enregistrement.
11.- Ensuite, il vous sera demandé un nom de fichier, en donnant un par défaut, que vous pouvez changer dans cet écran.
12.- Vous serez invité à vérifier vos "options d'enregistrement" dans l'écran suivant, cliquez simplement sur "OK".
13.- Encore un clic pour commencer.
14.- Lors de l'enregistrement, le terminal peut montrer une certaine activité, et une petite fenêtre comme celle-ci :
15.- A la fin du processus, vous recevrez une fenêtre de confirmation.
Et... c'est tout...
Vous pouvez annuler l'enregistrement ou le processus lui-même en appuyant sur ESC à tout moment, il n'y aura aucune modification.
A la fin de l'enregistrement, vous aurez la vidéo à l'endroit que vous avez choisi à l'étape 11, en accompagnement d'un fichier journal avec un nom comme : "testvideo0.log" ou quelque chose comme ça.
C'est la manière la plus simple d'encoder à partir de tuners TV à signal RF, en rassemblant l'audio et la vidéo dans le même fichier.
J'ai un autre processus qui est réalisé à l'aide d'un processus Python qui dispose d'une interface graphique dans laquelle vous pouvez gérer plusieurs choses utiles, comme changer le canal, exécuter des tests de pré-enregistrement et même enregistrer mais parfois il me laisse tomber des échecs. Si vous le souhaitez, faites-moi savoir comment je peux vous joindre. Je ne veux pas écrire des parchemins ou une bible... LOL !
Si cette procédure ne fonctionne pas dans votre cas, veuillez me le faire savoir en incluant vos résultats afin de vous apporter un soutien avant de supprimer cette réponse. Merci et...
Bonne chance !
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.