Screencast audio/vidéo

Enregistrement audio et vidéo de ce qu'il se passe sur l'ordinateur.

Solutions sur Linux

Essayer avant toute chose avec Kazam ou gtk-recordmydesktop ou http://www.maartenbaert.be/simplescreenrecorder/

Autre ressource sur Screencast your patch.

Installation

Screencast audio/video
(ffmpeg for video, vlc for audio, jack and pulse audio to connect Pure Data to vlc)

ffmpeg

  • sudo add-apt-repository ppa:jon-severinsson/ffmpeg
  • sudo apt-get update
  • sudo apt-get install ffmpeg

qjackctl, jack, pulse

  • sudo apt-get install qjackctl pulseaudio-module-jack jack-rack libnotify-bin ladspa-sdk plugins-swh
  • pacmd suspend true

Dans QJackCtl : Script après le démarrage :

  • pacmd load-module module-jack-source channels=2; pacmd load-module module-jack-sink channels=2;

Script Linux

#!/bin/bash
# Script to screencast audio and video (ffmpeg for video, vlc for audio, jack and pulse audio to connect Pure Data to vlc)
 
DATE=`date +%Y%m%d`
TIME=`date +%Hh%M`
 
AUDIO_FILE="/media/data/videos/record/out-$DATE-$TIME.wav"
VIDEO_FILE="/media/data/videos/record/out-$DATE-$TIME.avi"
 
# Start screencast
cp ~/.pdextended_malinette ~/.pdextended
qjackctl -a ~/Softs/jack-patchbay.xml &
sleep 3
pd-extended -jack -open /media/data/code/malinette/malinette/MALINETTE-en.pd &
sleep 3
ffmpeg -f x11grab -r 25 -s 946x768 -i :0.0+0,0 -vcodec huffyuv -y $VIDEO_FILE &
cvlc jack://channels=2:ports=.* --jack-input-auto-connect --sout="#transcode{acodec=s16l,channels=2,ab=128,samplerate=44100}:standard{access=file,mux=wav,dst="$AUDIO_FILE"}"
 
# Kill
killall qjackctl
killall pd-extended
killall ffmpeg
killall cvlc
 
#jack_connect pd_extended_0:output0 "PulseAudio JACK Source:front-left"
#jack_connect pd_extended_0:output1 "PulseAudio JACK Source:front-right"
#--sout "#transcode{acodec=mp3,ab=128,channels=2,samplerate=44100}:duplicate{dst=std{access=file,mux=mp4,dst=$AUDIO_FILE}}}"

Autres

vidéo + son micro

ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 -s 948x738 -i :0.0+0,24 -acodec pcm_s16le -vcodec libx264  -preset ultrafast -threads 0 -y test-pulse.mkv

pas de son ...

cvlc --jack-input-auto-connect screen:// --screen-fps=25 --input-slave pulse://jack_in --sout "#transcode{venc=x264,quality:100,scale=1,fps=30,acodec=mp3,ab=128,channels=2, samplerate=44100}:duplicate{dst=std{access=file,mux=mp4,dst=nowardev.mp4}}}"

recordmydesktop, kazam

recordmydesktop -x 300 -y 300 -width 480 -height 272 -fps 15 --use-jack system:capture_1 system:capture_2 -o output.ogv

avconv

avconv -f x11grab -show_region 1 -video_size hd720 -framerate 24 -i :0.0 -threads 2 -q 1 test.mkv

VLC convertir/enregistrer jack audio wav

List the current JACK clients. jack_lsp -c, arecord -l

WEBCAM

mplayer -tv driver=v4l2:gain=1:width=640:height=480:device=/dev/video0:fps=10:outfmt=rgb16 tv://

Gif animé

 byzanz-record --duration=15 --x=200 --y=300 --width=700 --height=400 out.gif

Ffmpeg/Jack à essayer

Source : http://lists.puredata.info/pipermail/pd-list/2014-11/108461.html

ffmpeg -f jack -ac 2 -i ffmpeg -f x11grab -r 25 -s 1366x768 -i :0.0 -acodec pcm_s16le -threads 0 output.mkv

Notice that:

  • ffmpeg in my case is the 'original' one compiled by hand. Unfortunately debian now seems to only package avconv and that has always crashed on me with jack as audio input. However ffmpeg is relatively easy to compile on debian following this guide: https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
  • You should play with the -s and -i parameters to suit your needs.
  • Pulseaudio will be automatically suspended when you run jack (I was forced to install it to use skype with, alas, I'm forced to use for work).
  • Clearly when screen-casting it'll be difficult to get Chuck Norris low latencies without some xruns.
  • The output with that ffmpeg command will be a very good quality mkv video however it will also be very (very!) big and you'll have to factor in the extra time for re-compressing (it's possible to encode on the fly -but I prefer to have a good quality 'original')
  • For encoding I've had rather nice results with using webem, for example (YMMV):
ffmpeg -y -i "$INFILE" -threads 8 -f webm -vcodec libvpx -g 120 -level 216 -profile 0 -qmax 42 -qmin 10 -rc_buf_aggressivity 0.95 -vb 2M -acodec libvorbis -aq 90 -ac 2 $OUTFILE

Liens