Debian-facile

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

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

#1 19-01-2017 17:32:16

golgot200
Membre
Inscription : 05-08-2007

Enregistrer le son qui passe et suppression des blancs

Bonjour,

un script que je teste et qui pour l'instant va pas mal.
Il capture l'audio que l'on écoute peu importe la source. (monitor, line ....)
Pratique pour les programmes n'utilisant pas pulse.
A la fin de la capture, sox est lancé pour la détection des blancs et leurs suppressions.
Le fichier final se trouvera dans votre bureau.
Il utilise ffmpeg et son filtre amix.

#!/bin/bash

# @golgot200
# Example :
# pactl list sources | grep Name:
# Name: alsa_output.pci-0000_07_01.0.analog-stereo.monitor
# Name: alsa_input.pci-0000_07_01.0.analog-stereo

# Notes :
# Thread message queue blocking; consider raising the thread_queue_size option (current value: 8) = -thread_queue_size 1024
# Non-monotonous DTS in output stream 0:0 = -use_wallclock_as_timestamps 1

# silence -l 1 00:00:00.5 -65d -1 00:00:00.5 -65d


TMPDIR=/tmp/CAPTURE_JOB
DIR=$(xdg-user-dir DESKTOP)
OUTPUT=$DIR
JOUR=$(date +%d-%m-%y)
HEURE=$(date +%H.%M.%S)
MONITOR=$(pactl list | grep -A2 '^Source #' | grep 'Name: .*\.monitor$' | awk '{print $NF}' | tail -n1)
ALSA_IN=$(pactl list | grep -A2 '^Source #' | grep 'Name: .*\alsa_input.pci' | awk '{print $NF}' | tail -n1)

    [ -d "$TMPDIR" ] || mkdir "$TMPDIR"
    cd "$TMPDIR"
ffmpeg -thread_queue_size 1024 -use_wallclock_as_timestamps 1 -f pulse -i $MONITOR -f pulse -i $ALSA_IN -filter_complex amix=inputs=2 -c:a pcm_s16le -ar 44100 -map 0:0 -map 1:0  "Capture Du $JOUR à $HEURE.wav"  

sox -S "Capture Du $JOUR à $HEURE.wav" "$OUTPUT/$JOUR à $HEURE[Silence Removed].wav" silence -l 1 00:00:00.5 -65d -1 00:00:00.5 -65d

   rm -r  "$TMPDIR"



apt-get install ffmpeg sox




Voilà, si ça peut aider à remplacer des programmes comme le superbe Audio-recorder

Dernière modification par golgot200 (19-01-2017 17:35:04)

Hors ligne

#2 19-01-2017 17:41:32

golgot200
Membre
Inscription : 05-08-2007

Re : Enregistrer le son qui passe et suppression des blancs


ffmpeg version 3.2.2-1~bpo8+1 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.2 (Debian 4.9.2-10)
  configuration: --prefix=/usr --extra-version='1~bpo8+1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --disable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-libopencv --enable-frei0r --enable-libx264 --enable-chromaprint --enable-shared
  libavutil      55. 34.100 / 55. 34.100
  libavcodec     57. 64.101 / 57. 64.101
  libavformat    57. 56.100 / 57. 56.100
  libavdevice    57.  1.100 / 57.  1.100
  libavfilter     6. 65.100 /  6. 65.100
  libavresample   3.  1.  0 /  3.  1.  0
  libswscale      4.  2.100 /  4.  2.100
  libswresample   2.  3.100 /  2.  3.100
  libpostproc    54.  1.100 / 54.  1.100
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, pulse, from 'alsa_output.pci-0000_07_01.0.analog-stereo.monitor':
  Duration: N/A, start: 1484840395.844432, bitrate: 1536 kb/s
    Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Guessed Channel Layout for Input Stream #1.0 : stereo
Input #1, pulse, from 'alsa_input.pci-0000_07_01.0.analog-stereo':
  Duration: N/A, start: 1484840395.846295, bitrate: 1536 kb/s
    Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Output #0, wav, to 'Capture Du 19-01-17 à 16.39.55.wav':
  Metadata:
    ISFT            : Lavf57.56.100
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s (default)
    Metadata:
      encoder         : Lavc57.64.101 pcm_s16le
Stream mapping:
  Stream #0:0 (pcm_s16le) -> amix:input0
  Stream #1:0 (pcm_s16le) -> amix:input1
  amix -> Stream #0:0 (pcm_s16le)
Press [q] to stop, [?] for help

 

Dernière modification par golgot200 (19-01-2017 17:42:16)

Hors ligne

#3 19-01-2017 18:07:25

Watael
Membre
Distrib. : Debian GNU/Linux 8.6 (jessie)
Noyau : Linux 3.16.0-4-amd64
(G)UI : xmonad, i3, dwm
Inscription : 19-01-2017

Re : Enregistrer le son qui passe et suppression des blancs

salut,

printf -v heure '%(%H.%M.%S)T'
printf -v date '%(%d-%m-%y)T'
readarray -t < <(pactl list short sources | cut -f2 | tail -n2)
input="${MAPFILE[0]}"
output="${MAPFILE[1]}"

NB: les noms variables en majuscules sont, par convention, réservés aux variables environnementales.

Hors ligne

#4 20-01-2017 13:04:07

golgot200
Membre
Inscription : 05-08-2007

Re : Enregistrer le son qui passe et suppression des blancs

Merci Watael smile

Hors ligne

Pied de page des forums