logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 13-01-2023 19:02:13

Papadakis
Membre
Lieu : Far ouest environ
Distrib. : Bookworm
Noyau : Linux 6.1.0-9-amd64
(G)UI : xfce 4.18
Inscription : 23-04-2014

[Résolu] Enregistrement d'une fenêtre

Bonjour à tous,

que me conseillez-vous pour enregistrer du web avec audio et vidéo ?

J'ai testé kazam mais pas de son. Vu l'offre que je découvre, j'aimerais avoir votre avis avant d'installer quoi que ce soit.

Bonne soirée !

Dernière modification par Papadakis (14-01-2023 18:54:45)


Le désordre, c'est l'ordre, moins le pouvoir.

Hors ligne

#2 13-01-2023 19:48:47

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : [Résolu] Enregistrement d'une fenêtre

Hello
Suivant la source , youtube-dl ou sinon en screencast j'utilise un script ffmpeg

-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#3 13-01-2023 20:03:07

Papadakis
Membre
Lieu : Far ouest environ
Distrib. : Bookworm
Noyau : Linux 6.1.0-9-amd64
(G)UI : xfce 4.18
Inscription : 23-04-2014

Re : [Résolu] Enregistrement d'une fenêtre

Non, non, il ne s'agit pas de ça.
Je veux enregistrer une video qui n'est pas accessible par ces moyens.
Un script ffmpeg ?

Dernière modification par Papadakis (14-01-2023 14:03:28)


Le désordre, c'est l'ordre, moins le pouvoir.

Hors ligne

#4 13-01-2023 21:19:45

Anonyme
Invité

Re : [Résolu] Enregistrement d'une fenêtre

Bonsoir,

apt install zenity slop ffmpeg



Mon script vcr


#!/bin/bash

OUTPUT=~/MAGNETO

theRegex='.*CARD.*'
while read -r;  do {
    [[ $REPLY =~ $theRegex ]] && {
        [[ $lst == *${BASH_REMATCH[0]}* ]] || lst+="FALSE ${BASH_REMATCH[0]} "
    }
}
done <<< $(LANG=C aplay -L)
cards=( $lst )

cards[0]="TRUE"

choice=$(zenity --list --radiolist --width=450 --height=500 \
        --title "Capture"                                           \
        --text="Sélectionnez un périphérique"                       \
        --column="Choix" --column="Périphériques" ${cards[@]})

# https://www.cyberciti.biz/faq/bash-shell-find-out-if-a-variable-has-null-value-or-not/
condition="$choice"
if [ -z "$condition" ]
then
      echo "Annulation"
exit 0
else
      echo "Choix validé"

[ -d "$OUTPUT" ] || mkdir "$OUTPUT"
size=$(slop -f "-s %wx%h -i :0.0+%x,%y")

ffmpeg -y  -guess_layout_max 0  -f alsa -thread_queue_size 512 -ac 2 -i $choice -f x11grab $size -filter:v fps=30 -acodec copy -c:v libx264 -pix_fmt yuv420p -preset ultrafast -crf 0 -threads 0 -loglevel repeat+verbose "$OUTPUT/CAPTURE-[Le $(date +%d-%m-%y) à $(date +%H:%M:%S)].mkv"

fi



 




Après lancement du script --- choix pour la carte audio -- une croix qui apparait pour une sélection de la zone, une fenêtre ou le bureau par un clic dessus.

Tes captures se retrouveront dans ~/MAGNETO

smile


Terminal :

./vcr

Zenity.png


Choix validé
ffmpeg version n5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 12.2.0 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-version3 --enable-vulkan
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
Input #0, alsa, from 'default:CARD=Audigy2':
  Duration: N/A, start: 1673641440.377591, bitrate: 1536 kb/s
  Stream #0:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
Input #1, x11grab, from ':0.0+380,220':
  Duration: N/A, start: 1673641440.411548, bitrate: 497166 kb/s
  Stream #1:0: Video: rawvideo, 1 reference frame (BGR[0] / 0x524742), bgr0, 900x576, 497166 kb/s, 29.97 fps, 29.97 tbr, 1000k tbn
Stream mapping:
  Stream #1:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
  Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
[graph 0 input from stream 1:0 @ 0x5624fc75ac40] w:900 h:576 pixfmt:bgr0 tb:1/1000000 fr:30000/1001 sar:0/1
[auto_scale_0 @ 0x5624fc75dfc0] w:iw h:ih flags:'' interl:0
[format @ 0x5624fc75bd80] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_fps_0' and the filter 'format'
[Parsed_fps_0 @ 0x5624fc75a740] fps=30/1
[auto_scale_0 @ 0x5624fc75dfc0] w:900 h:576 fmt:bgr0 sar:0/1 -> w:900 h:576 fmt:yuv420p sar:0/1 flags:0x0
[Parsed_fps_0 @ 0x5624fc75a740] Set first pts to 0
[libx264 @ 0x5624fc753800] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x5624fc753800] profile High 4:4:4 Predictive, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x5624fc753800] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=0 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=0 chroma_qp_offset=0 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=cqp mbtree=0 qp=0
Output #0, matroska, to '/home/patrick/MAGNETO/CAPTURE-[Le 13-01-23 à 21:24:00].mkv':
  Metadata:
    encoder         : Lavf59.27.100
  Stream #0:0: Video: h264, 1 reference frame (H264 / 0x34363248), yuv420p(tv, progressive), 900x576 (0x0), q=2-31, 30 fps, 1k tbn
    Metadata:
      encoder         : Lavc59.37.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
  Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, 2 channels, s16, 1536 kb/s
frame=  650 fps= 30 q=-1.0 Lsize=  104001kB time=00:00:21.63 bitrate=39381.4kbits/s speed=0.993x    
video:99962kB audio:4032kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.006824%
Input file #0 (default:CARD=Audigy2):
  Input stream #0:0 (audio): 126 packets read (4128768 bytes);
  Total: 126 packets (4128768 bytes) demuxed
Input file #1 (:0.0+380,220):
  Input stream #1:0 (video): 650 packets read (1347840000 bytes); 650 frames decoded;
  Total: 650 packets (1347840000 bytes) demuxed
Output file #0 (/home/patrick/MAGNETO/CAPTURE-[Le 13-01-23 à 21:24:00].mkv):
  Output stream #0:0 (video): 650 frames encoded; 650 packets muxed (102361216 bytes);
  Output stream #0:1 (audio): 126 packets muxed (4128768 bytes);
  Total: 776 packets (106489984 bytes) muxed
[AVIOContext @ 0x5624fc756480] Statistics: 106497913 bytes written, 2 seeks, 408 writeouts
[Parsed_fps_0 @ 0x5624fc75a740] 650 frames in, 651 frames out; 0 frames dropped, 1 frames duplicated.
[libx264 @ 0x5624fc753800] frame I:3     Avg QP: 0.00  size:202863
[libx264 @ 0x5624fc753800] frame P:647   Avg QP: 0.00  size:157268
[libx264 @ 0x5624fc753800] mb I  I16..4: 100.0%  0.0%  0.0%
[libx264 @ 0x5624fc753800] mb P  I16..4: 53.5%  0.0%  0.0%  P16..4: 31.4%  0.0%  0.0%  0.0%  0.0%    skip:15.0%
[libx264 @ 0x5624fc753800] coded y,uvDC,uvAC intra: 74.5% 73.9% 73.8% inter: 65.6% 67.0% 66.9%
[libx264 @ 0x5624fc753800] i16 v,h,dc,p: 44% 55%  1%  0%
[libx264 @ 0x5624fc753800] i8c dc,h,v,p: 40% 33% 26%  1%
[libx264 @ 0x5624fc753800] kb/s:37794.71
Exiting normally, received signal 2.

 



ctrl + c pour sortir

Dernière modification par Anonyme (13-01-2023 21:30:00)

#5 14-01-2023 09:11:57

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : [Résolu] Enregistrement d'une fenêtre

je suis pas du tout d'accord pour crf 0 , le poids du fichier sera grandement augmenté pour aucun qu'un gain en terme de qualité d'image
le crf en par defaut de 23, en peut poussé a 26 , voir même 30 sur des écrans pas trop grand

La plage de l'échelle CRF est de 0 à 51, où 0 est sans perte, 23 est la valeur par défaut et 51 est la pire qualité possible. Une valeur inférieure conduit généralement à une qualité supérieure, et une fourchette subjectivement saine est de 17 à 28. Considérez que 17 ou 18 est visuellement sans perte ou presque ; il devrait avoir la même apparence ou presque que l'entrée mais il n'est pas techniquement sans perte.



#!/bin/bash
#option -vf scale=hd720 pour mise à échelle , on pourrait utilsé -vf scale=-1:720  voir wiki ffmpeg
#https://trac.ffmpeg.org/wiki/Scaling
#https://ffmpeg.org/ffmpeg-utils.html#toc-Video-size
#
##27 est acceptable mais baissé ne serait pas un lux 23 étant le défaut, 23 ne semble pas trop impacter le poid du fichier a voir
#25 images par secondes (-r 25)
#
#la luminosité ou température de l'écran n'impacte pas la vidéo

OUTPUT=~/SCREENSHOT

[ -d "$OUTPUT" ] || mkdir "$OUTPUT"
zenity --warning --text="inhibé la veille automatique" --ok-label="J'ai compris" --width=250

notify-send -t 10000 "Capture 1080P" "Début de l'enregistrement"

ffmpeg -thread_queue_size 512 -f pulse -ac 2 -i $(pactl list sources | sed -n '/alsa.*monitor/s/.*: \(.*\)$/\1/p') \
-f x11grab -probesize 42M -s "1920"x"1080" -i :0.0+0,0 -r 25 -acodec libmp3lame -vcodec libx264 -preset ultrafast -crf 23 -pix_fmt yuv420p -threads 0 -loglevel \
repeat+verbose "$OUTPUT/[Le $(date +%d-%m-%y) à $(date +%H:%M:%S)].mkv" ;
sleep 10 ; exit
 


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#6 14-01-2023 10:22:46

CouCou
Adhérent(e)
Lieu : Voir Signature "sud du coin"
Distrib. : Bullseyes 11.8
Noyau : Linux 5.10.0-27-amd64
(G)UI : XFCE
Inscription : 25-01-2020

Re : [Résolu] Enregistrement d'une fenêtre

bonjour,
si tu ne veux pas utiliser une appli, il existe également une -des ? - plateforme web en ligne.
à l'origine , faite pour youtube, ça marche pour les vidéos que le créateur - ou celui qui l'a uploadé... - n'a pas verrouillé.
mais en, fait marche avec tout site qui n'a pas verrouillé sa vidéo.
https://youtubeto.org/fr/
bruno

Hors ligne

#7 14-01-2023 10:34:34

Croutons
Membre
Distrib. : Debian12
Noyau : Linux 6.1.0-13-amd64
(G)UI : Fluxbox(NakeDeb)
Inscription : 16-12-2016

Re : [Résolu] Enregistrement d'une fenêtre

sinon tu peux essayer simplescreenrecorder

apt install simplescreenrecorder



Description: enregistreur d’écran riche de possibilités pour X11 et OpenGL
Simple Screen Recorder est, en dépit de son nom, un enregistreur d’écran
vraiment riche en fonctionnalités. Le nom traduit le fait qu’il est simple
d’utilisation au contraire d’autres applications libres d’enregistrement
d’écran disponibles. Il peut facilement être configuré pour démarrer à
partir d’une interface d'assistance.
.
Il peut enregistrer directement l’écran en entier ou seulement une partie.
L’enregistrement peut être arrêté et redémarré à tout moment. Plusieurs
formats de fichier et codecs sont gérés. Pour réaliser un enregistrement
X11, il suffit de sélectionner une zone sur la fenêtre racine avec la
souris, de choisir un fichier de sortie et d'appuyer sur enregistrement,
soit en utilisant la souris, soit avec un raccourci clavier.
.
Son interface graphique est basée sur Qt.
.
Sa complexité devient manifeste avec ses fonctions puissantes. Il permet
d’enregistrer des zones d’écran X11 et des applications plein écran OpenGL
y compris le son pris en charge par ALSA, PulseAudio, JACK ou OSS. Il
utilise libavformat pour encoder le contenu enregistré dans divers formats
vidéo. Le dimensionnement de la vidéo enregistrée est possible ainsi que
la configuration de la qualité d’encodage pour le codec choisi directement
dans l’interface utilisateur.
.
Ce paquet fournit le programme principal.


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<-- 
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#8 14-01-2023 11:14:26

Anonyme
Invité

Re : [Résolu] Enregistrement d'une fenêtre

@Croutons

Bonjour

pour le crf, il faut voir à l'usage au niveau des images perdues et une éventuelle perte de synchro au niveau de l'audio.
Un crf à 0 me permet d'échapper à ce problème. smile

[Parsed_fps_0 @ 0x5624fc75a740] 650 frames in, 651 frames out; 0 frames dropped, 1 frames duplicated.



EDIT:

Ton script au post 5 me chagrine un peu. Il faut avoir obligatoirement pulseaudio d'installé. ( urticaire ) tongue

le choix 1920x1080, une explication peut-être ? ( j'ai un écran 1680x1050 )

 Capture area 1920x1080 at position 0.0 outside the screen size 1680x1050
:0.0+0,0: Invalid argument
 



size=$(slop -f "-s %wx%h -i :0.0+%x,%y")



me paraissait pas mal non ? ( je n'impossai pas une résolution avec cette option )

J'ai testé crf 23, ça passe bien ( un petit saut de la vidéo au démarrage de la lecture peut-être mais minime )

Dernière modification par Anonyme (14-01-2023 11:54:54)

#9 14-01-2023 12:03:50

Papadakis
Membre
Lieu : Far ouest environ
Distrib. : Bookworm
Noyau : Linux 6.1.0-9-amd64
(G)UI : xfce 4.18
Inscription : 23-04-2014

Re : [Résolu] Enregistrement d'une fenêtre

Bonjour à tous,

merci pour vos contributions à ma culture debian.
Je crois que je ne vais pas attaquer les trucs de barbus, je vais faire simple.
En fait, j'aurai dû dire simple depuis le début ^^
Je vais prendre la solution de Croutons (simplescreenrecorder) qui fonctionne très bien pour ce que je veux.

Merci encore et bisous les amis.

Dernière modification par Papadakis (14-01-2023 12:06:45)


Le désordre, c'est l'ordre, moins le pouvoir.

Hors ligne

#10 14-01-2023 14:00:57

Anonyme
Invité

Re : [Résolu] Enregistrement d'une fenêtre

Juste pour corriger une chose sur la commande dans mon script avec l'utilisation de libx264 et -pix_fmt yuv420p pour une taille non divisible par 2


ffmpeg -y  -guess_layout_max 0  -f alsa -thread_queue_size 512 -ac 2 -i $choice -f x11grab $size -vf "fps=30,scale=trunc(iw/2)*2:trunc(ih/2)*2" -acodec copy -c:v libx264 -pix_fmt yuv420p -preset ultrafast -crf 0 -threads 0 -loglevel repeat+verbose "$OUTPUT/CAPTURE-[Le $(date +%d-%m-%y) à $(date +%H:%M:%S)].mkv"
 

#11 14-01-2023 15:48:26

anonyme-15
Invité

Re : [Résolu] Enregistrement d'une fenêtre

Anonyme a écrit :


Mon script vcr



Merci beaucoup pour le script, il fonctionne très bien, mais ne m'a pas permis de régler l'impossiblité d'enregistrer le son. Aucune solution ne le permet (ni simplescreenrecorder, ni les lignes de commande ffmpeg). Ca fait 6 ans que ça dure, et je passe par un micro usb externe pour contourner le problème.

Une question. J'ai testé chacune des cates proposées par le script, sans succès. Je n'arrive pas à voir en lisant le script ce qui permet de les lister. Quelle est la commande ?

Pied de page des forums