采用gst-launch命令进行linux屏幕录制
来源:互联网 发布:xmanager for mac 编辑:程序博客网 时间:2024/05/27 02:28
系统: fedora18
内核:3.8.0
平台:intel
一、直接通过工具录制:
采用第三方软件recordmydesktop,生成ogv视频文件,用ffmpeg转码为h264格式,再通过gst-launch-1.0或者mplayer播放,步骤如下:
1. recordmydesktop -o test.ogv --overwrite2. ffmpeg -i test.ogv -f h264 test.mp43. gst-launch-1.0 playbin video-sink=vaapisink uri=file:///root/test.mp4 或 mplayer test.mp4
二、通过gstreamer的gst-launch命令
1.gstreamer 0.10 版本执行命令
gst-launch-0.10 ximagesrc use-damage=0 !
video/x-raw-rgb,framerate=15/1 ! ffmpegcolorspace ! x264enc !
matroskamux ! filesink location=”test.mkv”
2.gstreamer 1.0 版本执行命令
gst-launch-1.0 ximagesrc remote=1 use-damage=0 !
video/x-raw,framerate=15/1 ! videoconvert ! x264enc ! matroskamux ! filesink location=/root/capscreen/test.mkv
***: 如果录到的视频是黑框或者录制提示内存分配失败,需要加上remote=1参数,这是因为fedora存在的一个bug,fedora默认安装gst时没有打上shm选项:
https://bugzilla.redhat.com/show_bug.cgi?id=1136317
https://bugzilla.gnome.org/show_bug.cgi?id=721220
1.0版本和0.1版本区别,详细看:
https://cgit.freedesktop.org/gstreamer/gstreamer/plain/docs/random/porting-to-1.0.txt
3.以上是采用x264enc软编码的方式将屏幕视频源ximagesrc经过插件video/x-raw格式化后,送到h264软件编码插件,然后通过mux整流插件进入文件处理filesink插件,下面是硬件编码的方式,采用gst-vaapi包,https://github.com/01org/gstreamer-vaapi中的h264硬件编码器:
gst-launch-1.0 -e ximagesrc remote=1 ! videoconvert !
video/x-raw,format=YUY2,framerate=2/1,width=1024,height=768 ! tee name=enc ! queue ! vaapipostproc enc. ! queue ! vaapiencode_h264 ! qtmux ! filesink location=/root/capscreen/test2.mp4 enc.
vaapi介绍:https://en.wikipedia.org/wiki/Video_Acceleration_API
硬件编码帧率在framerate=5/1情况下,四核cpu,占用率为30%左右,而软件编码100%左右。而硬件编码在framerate=15/1时cpu占用率为80%,主要是因为videoconvert这一步占去了较多资源。
- 采用gst-launch命令进行linux屏幕录制
- gst-launch命令集合
- gst-launch
- gst-launch & gst-inspect 介绍
- gst-launch & gst-inspect 介绍
- gst-launch & gst-inspect 介绍
- gst-inspect 与gst-launch
- Gstreamer框架中使用gst-launch进行流媒体播放
- Gstreamer框架中使用gst-launch进行流媒体播放
- Gstreamer框架中使用gst-launch进行流媒体播放
- Gstreamer框架中使用gst-launch进行流媒体播放
- gst-launch用法
- gst-launch samples
- 【引用】gst-launch samples
- gst-launch usuage
- ADB 录制屏幕命令
- gstreamer的gst-inspect 和gst-launch
- OpenSolaris下进行屏幕录制
- 根据指定日期获取周,月,年的开始和结束时间
- eclipse IPreferenceStore如何保存Preference Page设置?
- 知识点3-绘图
- Android sdk开发,eclipse和android studio打jar包的简易方法
- 转载:王垠·程序员的心理疾病
- 采用gst-launch命令进行linux屏幕录制
- Oracle中同义词synonym的作用
- html的<a>标签点击触发js函数的3种方法
- thinkphp 提交表单转义问题
- JSP取得绝对路径
- 1044 字符串 用了 find
- 上传本地项目到github
- android textview 文本在代码中设置粗体效果
- SPI之CPOL&CPHA简单分析