我曾经看到过这样一个问题:如何录制屏幕和内部音频?
这里给出的答案是安装recordmydesktop
。我已经安装了,但它不起作用。选择屏幕区域后,它会给出错误消息。
另外,我有许多屏幕录像应用程序,但没有一个能完美运行。有些可以录制屏幕,但不能录制音频。例如 EasyScreenCast。我想知道如何录制带音频的屏幕。
答案1
如果 RecordMyDesktop 无法正常工作,您可以改用脚本。
该脚本可以找到在 GitHub 上。
要使用,请将脚本复制到文本文件中(使用您最喜欢的文本编辑器)并将其保存在您的主目录中。授予脚本执行权限
chmod 755 name-of-your-file
然后你就可以轻松执行它了:
./name-of-your-file
剧本:
#!/bin/bash
NAME=screencast-$(date +%Y%m%d%H%M)
FPS=4
THREADS=3
echo "Click the window to capture and get ready!"
tmpfile=/tmp/screengrab.tmp.$$
trap 'touch $tmpfile; rm -f $tmpfile' 0
xwininfo > $tmpfile 2>/dev/null
left=$(grep 'Absolute upper-left X:' $tmpfile | awk '{print $4}');
top=$(grep 'Absolute upper-left Y:' $tmpfile | awk '{print $4}');
width=$(grep 'Width:' $tmpfile | awk '{print $2}');
height=$(grep 'Height:' $tmpfile | awk '{print $2}');
geom="-geometry ${width}x${height}+${left}+${top}"
echo "Geometry: ${geom}"
size="${width}x${height}"
pos="${left},${top}"
echo "pos=$pos size=$size"
sleep 2
ffmpeg -y -f alsa -ac 2 -i pulse -f x11grab -r $FPS -s $size -i ${DISPLAY-0:0}+${pos} -acodec pcm_s16le $NAME-temp.wav -an -vcodec libx264 -preset ultrafast -threads 0 $NAME-temp.mp4
echo Merge audio+video and encode to webm for YouTube? && read
ffmpeg -i $NAME-temp.mp4 -i $NAME-temp.wav -acodec libvorbis -ab 128k -ac 2 -vcodec libvpx -qscale 8 -me_method full -mbd rd -flags +gmc+qpel+mv4 -trellis 1 -threads $THREADS $NAME.webm
用法也演示在这个 YouTube 视频。
编者注:请不要像视频中所示那样为文件提供存在安全风险的 777 权限。755 就足够了。