X-Git-Url: https://git.slaskete.net/einar-bin/blobdiff_plain/964bb8f4a804c31558fc34edc39c66e3a0382398..8cd946fdd1bb1bdf7793a7ace8e1ccb9b1340371:/screencast.sh?ds=sidebyside diff --git a/screencast.sh b/screencast.sh index 40a204d..7a06a8c 100755 --- a/screencast.sh +++ b/screencast.sh @@ -14,9 +14,6 @@ # window. It has been tested on Fedora 18, Ubuntu 13.04 and CrunchBang Waldorf # (and thus should work on Debian Wheezy as well). # -# If you're using GStreamer 1.0, please jump to the bottom of the script -# and comment out the gst-launch-0.10 pipeline and uncomment the 1.0 pipeline. -# # It dumps the recording in your $HOME directory with a filename like # screencast-YYYY-MM-DD-HH-MM-SS.mp4 # @@ -115,29 +112,28 @@ BITRATE=$(echo "${WIDTH} * ${HEIGHT} * 0.0075" | bc | cut -d "." -f 1 ) # Set file name. FILENAME="screencast-$(date +%F-%H-%M-%S).mp4" +# Determine if we have ffenc_aac or avenc_aac available +AACENC="ffenc_aac" +if gst-inspect-1.0 --exists avenc_aac; then + AACENC="avenc_aac" +fi + # Enable inputs as suitable if [ ${PLAYMON} != "none" ]; then MONITORARG="pulsesrc device=${PLAYMON} slave-method=0 provide-clock=false \ - ! audiorate ! audioconvert ! ffenc_aac bitrate=256000 ! queue2 ! mux." + ! audiorate ! audioconvert ! ${AACENC} bitrate=256000 ! queue2 ! mux." fi if [ ${MIC} != "none" ]; then MICARG="pulsesrc device=${MIC} slave-method=0 provide-clock=false \ - ! audiorate ! audioconvert ! ffenc_aac bitrate=256000 ! queue2 ! mux." + ! audiorate ! audioconvert ! ${AACENC} bitrate=256000 ! queue2 ! mux." fi -# Launch gstreamer (Using gstreamer 0.10) -gst-launch-0.10 -q -e ximagesrc xid="${WID}" do-timestamp=1 use-damage=0 \ - ! video/x-raw-rgb,framerate=30/1 ! ffmpegcolorspace ! videoscale method=0 \ - ! video/x-raw-yuv,width=${WIDTH},height=${HEIGHT} \ +# Launch gstreamer +gst-launch-1.0 -q -e ximagesrc xid="${WID}" do-timestamp=1 use-damage=0 \ + ! video/x-raw,framerate=30/1 ! videoscale method=0 \ + ! video/x-raw,width=${WIDTH},height=${HEIGHT} ! videoconvert \ ! x264enc speed-preset=veryfast bitrate=${BITRATE} ! queue2 \ ! mp4mux name="mux" \ ! filesink location="${HOME}/${FILENAME}" ${MONITORARG} ${MICARG} -# Launch gstreamer (Using gstreamer 1.0) -#gst-launch-1.0 -q -e ximagesrc xid="${WID}" do-timestamp=1 use-damage=0 \ -# ! video/x-raw,framerate=30/1 ! videoscale method=0 \ -# ! video/x-raw,width=${WIDTH},height=${HEIGHT} ! videoconvert \ -# ! x264enc speed-preset=veryfast bitrate=${BITRATE} ! queue2 \ -# ! filesink location="${HOME}/${FILENAME}" ${MONITORARG} ${MICARG} - echo "Recording done, file is ${FILENAME}"