linux gst-launch 播放视频旋转,【视频开发】Gstreamer中一些gst-launch常用命令
GStreamer是著名的开源多媒体框架,功能强大,其命令行程序 gst-launch 可以实现很多常规测试、播放等,作为系统调试等是非常方便的。
1、摄像头测试
gst-launch v4l2src ! xvimagesink
gst-launch v4l2src ! video/x-raw-yuv,width=320,height=240,framerate=20/1 ! xvimagesink
上述命令不一定能够成功,或者出现的摄像头图像窗口没有正常的图像,这是因为摄像头支持的图像格式会有差别,gstreamer 默认采用的格式不被支持,这时可以尝试:
gst-launch v4l2src ! video/x-raw-yuv,format=\(fourcc\)YUY2,width=320,height=240 ! xvimagesink
基本上可以了。根据 gstreamer 的文档,针对 v4l2src 这个插件,能够支持的图像格式在这里有详细说明说明。这里要注意,强制指定图像格式是采用 format 参数,并且要用到 (fourcc) 指示字,必须带有括号的,但是在命令行下,括号是特殊含义字符,所以用 \ 反斜杠转意处理!这只是一个例子说明,你可以尝试确定你的摄像头到底支持哪种图像格式,然后就可以用通过 format 参数来指定了。
2、播放文件
gst-launch playbin uri=file:///path/to/test.avi
据说还有 playbin2 插件,采用的是新的播放解码。
具体有关 gstreamer 的一些资源参考:
Gstreamer中一些gst-launch常用命令
用Linux系统中使用gstreamer架构做对媒体开发时,gst-inspect和gst-launch是两个非常使用的小工具,gst-inspect在开发时用于查询库各个插件element的详细信息,后者用于在终端快速构建一条pipeline用于播放多媒体。下面列出我在以前的学习和项目开发时常用的gst-launch播放各种多媒体文件的实例:
一、gstreamer实现视频显示
gst-launch videotestsrc ! xvimagesink
二、gstreamer实现摄像头采集:
1、可以现实图像,但图像卡住不动
gst-launch v4l2src ! xvimagesink
2、摄像头视频显示正常
gst-launch v4l2src !video/x-raw-yuv,format=\(fourcc\)YUY2,width=640,height=480,framerate=15/1 !videorate ! videoscale ! ffmpegcolorspace ! xvimagesink
gst-launch v4l2src ! video/x-raw-yuv,width=640,height=480,framerate=15/1 !queue2 ! videorate ! videoscale ! ffmpegcolorspace ! xvimagesink
三、摄像头视频现实及保存为avi格式文件
gst-launch -e v4l2src !video/x-raw-yuv,format=\(fourcc\)YUY2,width=640,height=480,framerate=30/1 ! teename=srctee \
srctee. ! queue2 name=squeue ! ffmpegcolorspace ! xvimagesink \
srctee. ! queue2 name=fqueue ! videorate ! ffmpegcolorspace !ffenc_mpeg4 ! avimux ! filesink location=test.avi
四、将摄像头视频比例设置为16:9
gst-launch v4l2src ! video/x-raw-yuv,width=640,height=480,framerate=15/1 !aspectratiocrop aspect-ratio=16/9 ! ffmpegcolorspace ! xvimagesink
五、保存摄像头的视频为avi格式
gst-launch -e v4l2src ! video/x-raw-yuv, format=\(fourcc\)YUY2,framerate=30/1, width=640, height=480 ! videorate ! ffmpegcolorspace !ffenc_mpeg4 ! avimux ! filesink location=test.avi
六、多个流数据同时录制
gst-launch -e avimux name="muxer" ! filesink location=multi.avi\
v4l2src ! video/x-raw-yuv, format=\(fourcc\)YUY2, framerate=25/1,width=640, height=480 ! videorate ! ffmpegcolorspace ! ffenc_mpeg4 ! queue2 !muxer. \
pulsesrc ! audioconvert ! audioresample! lamemp3enc target=1 bitrate=64cbr=true ! queue2 ! muxer.
七、画中画
1、videomixer可以将两个或多个视频流混合到一起:
gst-launch -e videotestsrc pattern="snow" ! video/x-raw-yuv,framerate=10/1, width=200, height=150 ! videomixer name=mix ! \
ffmpegcolorspace ! xvimagesink videotestsrc !video/x-raw-yuv, framerate=10/1, width=640, height=360 ! mix.
2、GstVideoMixerPad能够改变Z轴和图像的位置
gst-launch videotestsrc pattern="snow" ! video/x-raw-yuv,framerate=10/1, width=200, height=150 ! \
videomixer name=mix sink_1::xpos=20 sink_1::ypos=20sink_1::alpha=0.5 sink_1::zorder=3 sink_2::xpos=100 sink_2::ypos=100sink_2::zorder=2 ! \
ffmpegcolorspace ! xvimagesink videotestsrc pattern=13 !video/x-raw-yuv, framerate=10/1, width=200, height=150 ! mix. \
videotestsrc ! video/x-raw-yuv, framerate=10/1, width=640,height=360 ! mix.
3、GstVideoMixerPad可以制定每个sink
gst-launch \
videomixer name=mix sink_1::xpos=20 sink_1::ypos=20sink_1::alpha=0.5 sink_1::zorder=3 sink_2::xpos=100 sink_2::ypos=100 sink_2::zorder=2! \
ffmpegcolorspace ! xvimagesink \
videotestsrc ! video/x-raw-yuv, framerate=10/1, width=640,height=360 ! mix.sink_0 \
videotestsrc pattern="snow" ! video/x-raw-yuv,framerate=10/1, width=200, height=150 ! mix.sink_1 \
videotestsrc pattern=13 ! video/x-raw-yuv, framerate=10/1,width=200, height=150 ! mix.sink_2
八、VideoBox可以用来制定视频框的大小和位置和apha混合透明度等
1、不透明
gst-launch -e videotestsrc pattern="snow" ! video/x-raw-yuv,framerate=10/1, width=200, height=150 ! videobox border-alpha=0 top=-100left=-100 ! \
videomixer name=mix ! ffmpegcolorspace ! xvimagesink videotestsrc !video/x-raw-yuv, framerate=10/1, width=640, height=360 ! mix.
2、指定透明度
gst-launch -e videotestsrc pattern="snow" ! video/x-raw-yuv,framerate=10/1, width=200, height=150 ! \
videobox border-alpha=0 alpha=0.6 top=-20 left=-25 !videomixer name=mix ! ffmpegcolorspace ! xvimagesink \
videotestsrc ! video/x-raw-yuv, framerate=10/1, width=640,height=360 ! mix.
3、添加边框
gst-launch -e videotestsrc pattern="snow" ! video/x-raw-yuv,framerate=10/1, width=200, height=150 ! \
videobox border-alpha=1.0 top=-2 bottom=-2 left=-2 right=-2 !videobox border-alpha=0 alpha=0.6 top=-20 left=-25 ! \
videomixer name=mix ! ffmpegcolorspace ! xvimagesinkvideotestsrc ! video/x-raw-yuv, framerate=10/1, width=640, height=360 ! mix.
九、VideoWall视频墙
gst-launch -e videomixer name=mix ! ffmpegcolorspace ! xvimagesink \
videotestsrc pattern=1 ! video/x-raw-yuv, framerate=5/1,width=320, height=180 ! videobox border-alpha=0 top=0 left=0 ! mix. \
videotestsrc pattern=15 ! video/x-raw-yuv, framerate=5/1,width=320, height=180 ! videobox border-alpha=0 top=0 left=-320 ! mix. \
videotestsrc pattern=13 ! video/x-raw-yuv, framerate=5/1,width=320, height=180 ! videobox border-alpha=0 top=-180 left=0 ! mix. \
videotestsrc pattern=0 ! video/x-raw-yuv, framerate=5/1,width=320, height=180 ! videobox border-alpha=0 top=-180 left=-320 ! mix. \
videotestsrc pattern=3 ! video/x-raw-yuv, framerate=5/1,width=640, height=360 ! mix.
十、TextOverlay 在视频上面添加文本,由textoverlay插件实现,可以设置文本的属性
gst-launch videotestsrc !video/x-raw-yuv,width=640,height=480,framerate=15/1 ! textoverlaytext="Hello" ! ffmpegcolorspace ! ximagesink
十一、TimeOverlay ,由timeoverlay插件实现
1、由timeoverlay插件实现
gst-launch videotestsrc ! timeoverlay ! xvimagesink
gst-launch -v videotestsrc ! video/x-raw-yuv, framerate=25/1, width=640,height=360 ! \
timeoverlay halign=left valign=bottom text="Streamtime:" shaded-background=true ! xvimagesink
2、cairotimeoverlay
gst-launch videotestsrc ! cairotimeoverlay ! ffmpegcolorspace ! xvimagesink
3、clockoverlay时钟
gst-launch videotestsrc ! cairotimeoverlay ! ffmpegcolorspace ! xvimagesink
gst-launch videotestsrc ! clockoverlay halign=right valign=bottomshaded-background=true time-format="%Y.%m.%D" ! ffmpegcolorspace !ximagesink
十二、录制视频为ogg格式,带时间和日期overlay
gst-launch -e v4l2src ! video/x-raw-yuv, format=\(fourcc\)YUY2,framerate=20/1, width=640, height=480 ! \
ffmpegcolorspace ! \
timeoverlay halign=right valign=top ! clockoverlayhalign=left valign=top time-format="%Y/%m/%d %H:%M:%S" ! \
tee name="splitter" ! queue2 ! xvimagesinksync=false splitter. ! \
queue2 ! videorate ! ffmpegcolorspace ! theoraenc bitrate=256! oggmux ! filesink location=webcam.ogg
十三、视频墙
gst-launch videomixer name=mix sink_1::xpos=20 sink_1::ypos=20sink_1::alpha=1.0 sink_1::zorder=3 sink_2::xpos=40 sink_2::ypos=40sink_2::zorder=2 ! ffmpegcolorspace ! xvimagesink \
uridecodebinuri=file:///mnt/hgfs/fedshare/source/video/loveStyle.mp4 ! ffmpegcolorspace !videoscale ! mix. \
uridecodebin uri=file:///mnt/hgfs/fedshare/source/video/davincieffect_480p30.mp4! ffmpegcolorspace ! videoscale ! mix. \
videotestsrc ! video/x-raw-yuv, framerate=10/1,width=800, height=540 ! mix.
十四、播放视频文件,带声音
gst-launch uridecodebinuri=file:///mnt/hgfs/fedshare/source/video/loveStyle.mp4 name=decoder \
decoder. ! audioconvert ! autoaudiosink \
decoder. ! ffmpegcolorspace ! xvimagesink
linux gst-launch 播放视频旋转,【视频开发】Gstreamer中一些gst-launch常用命令相关推荐
- Linux播放器MPlayer嵌入式开发系统中的应用
摘要:本文论述了MPlayer在嵌入式开发系统中的应用,说明了如何在嵌入式开发板的平台上实现MPlayer的配置.编译.安装及调试过程. 关键词:嵌入式系统:MPlayer:MEncoder 引言 嵌 ...
- 【SeeMusic】视频编辑 ( 视频 X 坐标 | 视频 Y 坐标 | 视频旋转 | 视频扭曲 )
SeeMusic 系列文章目录 [SeeMusic]下载安装并注册 SeeMusic 软件 [SeeMusic]创建 SeeMusic 工程并编辑相关内容 ( 创建工程 | 导入 MIDI 文件 | ...
- linux系统中如何查看日志 (常用命令)
linux系统中如何查看日志 (常用命令) cat tail -f 日 志 文 件 说 明 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用 ...
- 音视频开发三:FFmpeg安装与常用命令
前言:在不同平台下安装FFmpeg 1.mac系统下安装ffmpeg. 打开terminal,运行:brew install ffmpeg 安装完后,terminal中输入:ffmpeg,出现下面提示 ...
- linux基础知识点总结-最实用!(环境搭建,系统分区,常用命令,vim文本)
Linux系统介绍: Linux管理硬盘的能力非常强,所以我们看到的只有一个分区. / 根目录,所有文件都存储在它下面 /bin 存储着系统命令 /dev 设备文件(一切皆文件) /home 用户主目 ...
- 软件测试/测试开发丨Docker 容器技术与常用命令
公众号搜索:TestingStudio 霍格沃兹测试开发的干货都很硬核 Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言开发,Docker 可以让开发者打包他们的应用以及依 ...
- Linux 系统中如何查看日志 (常用命令)
Linux查看日志常用命令 1.查看日志常用命令 tail: -n 是显示行号:相当于nl命令:例子如下: tail -100f test.log 实时监控100行日志 tail -n 10 test ...
- Linux下如何播放CSF格式视频
笔者的本本存有大量的CSF格式的视频教程,在Windows下我们可以很方便地用各种万能播放器来流畅播放学习,最近笔者也换上了Fedora 15,使用后对其爱不释手,一个月除了必须用到Photoshop ...
- mpv播放器旋转视频
先为mpv设置环境变量,然后使用以下命令即可: mpv --video-rotate=90 "要播放的视频路径(如:C:\video.mp4)"
- linux浏览器不能播放音频文件夹,在html中插入音频文件在浏览器中播放音频文件的兼容性问题...
下面谈谈本人在html中插入音频文件,经过我的本地测试总结的一些问题(播放mp3文件): 1. 问题:IE8上正常(通过media player插件来播放)但在IE6和IE7上不会播放 Firefox ...
最新文章
- 女朋友让我给她讲讲什么是比特币,她想买两个。
- 《精通Unix下C语言编程与项目实践》目录
- oracle 数据导入导出
- redis 哨兵_docker里创建redis哨兵
- 市场压力只有老板扛?柏明顿阿米巴如何传递经营压力
- Android五大布局详解
- 很久很久之前的一道面试题(老师的生日是那一天?)~
- java 23中设计模式
- awk当中使用外部变量
- 易语言获取硬盘特征字序列号加密特征字
- 关于Eclipse配置Tomcat8的问题
- Markdown 笔记神器 Typora 如何上传本地图片(图床功能)?
- 哔哩哔哩APP导出缓存视频并合并成MP4
- java写ansi_java实现utf8转换ansi
- Html网站页面实现黑白效果
- 云上印尼:“数”影婆娑的千岛之国
- P问题、NP问题、NP完全问题和NP-hard问题
- GitChat·大数据 | 史上最详细的Hadoop环境搭建
- 数据库在网站中的作用
- ★一名“标题党”自我修炼的10大技巧
热门文章
- mysql联合索引顺序调整_MySQL 关于联合索引的字段顺序规则讨论
- c语言注释说明被计算机编译系统忽略,C语言程序设计(陈艳 2019-2020-2)-中国大学mooc-题库零氪...
- 指针数据类型 java_C/C++ 指针的小结——指针与其它数据类型(数组、字符串、函数、结构体)的关系...
- linux c字符连接,C 语言实例
- Boost - 序列化 (Serialization)
- [算法] vector删除元素
- find:查找文件或目录
- 简单聊一下makefile中的 =, :=, ?=和+=
- [vue] 在组件中怎么访问到根实例?
- 工作295:发布逻辑处理