Od dłuższego czasu wykorzystuję ffmpeg do konwersji filmów, dźwięku i wszelkiej maści mediów cyfrowych. Przed paroma dniami natknąłem się na niesamowite zastosowanie jakim jest zgrywanie pełnoekranowego pulpitu pod X-ami. Otóż wykonuje się je na przykład tak:
ffmpeg -f x11grab -s 1600x900 -i :0.0+,224 -acodec mp3 -ac 1 -vcodec libx264 -threads 4 -f matroska capture.mkv
nie dość że obraz jest w wybranej rozdzielczości (tu 1600×900) to jeszcze stosujemy kompresję H264 i pakujemy wszystko do formatu Matroska
Dla mnie bomba!
Aktualizacja: Nowsza wersja łapiąca oprócz obrazu również dźwięk. Jest mały problem z brakiem synchronizacji ale ogólne wrażenie nadal świetne:
#!/bin/bash # NAME=$(basename $0) SNDFILE=$(mktemp /tmp/$NAME.XXXXXX) || exit 1 arecord -f S16_LE -c1 -r44100 -t wav $SNDFILE & PIDaudio=$! ffmpeg -y -i $SNDFILE -f x11grab -s 1600x900 -r 25 -i :0.0+,224 -vcodec libx264 -threads 0 -f matroska -acodec ac3 "$1" & PIDvideo=$! read -p "Press enter to stop recording" kill $PIDvideo $PIDaudio rm -f $SNDFILE