日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux gst-launch 播放视频旋转,【视频开发】Gstreamer中一些gst-launch常用命令

發(fā)布時(shí)間:2023/12/10 linux 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux gst-launch 播放视频旋转,【视频开发】Gstreamer中一些gst-launch常用命令 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

GStreamer是著名的開源多媒體框架,功能強(qiáng)大,其命令行程序?gst-launch?可以實(shí)現(xiàn)很多常規(guī)測(cè)試、播放等,作為系統(tǒng)調(diào)試等是非常方便的。

1、攝像頭測(cè)試

gst-launch?v4l2src?!?xvimagesink

gst-launch?v4l2src?!?video/x-raw-yuv,width=320,height=240,framerate=20/1?!?xvimagesink

上述命令不一定能夠成功,或者出現(xiàn)的攝像頭圖像窗口沒有正常的圖像,這是因?yàn)閿z像頭支持的圖像格式會(huì)有差別,gstreamer?默認(rèn)采用的格式不被支持,這時(shí)可以嘗試:

gst-launch?v4l2src?!?video/x-raw-yuv,format=\(fourcc\)YUY2,width=320,height=240?!?xvimagesink

基本上可以了。根據(jù)?gstreamer?的文檔,針對(duì)?v4l2src?這個(gè)插件,能夠支持的圖像格式在這里有詳細(xì)說明說明。這里要注意,強(qiáng)制指定圖像格式是采用?format?參數(shù),并且要用到?(fourcc)?指示字,必須帶有括號(hào)的,但是在命令行下,括號(hào)是特殊含義字符,所以用?\?反斜杠轉(zhuǎn)意處理!這只是一個(gè)例子說明,你可以嘗試確定你的攝像頭到底支持哪種圖像格式,然后就可以用通過?format?參數(shù)來(lái)指定了。

2、播放文件

gst-launch?playbin?uri=file:///path/to/test.avi

據(jù)說還有?playbin2?插件,采用的是新的播放解碼。

具體有關(guān)?gstreamer?的一些資源參考:

Gstreamer中一些gst-launch常用命令

用Linux系統(tǒng)中使用gstreamer架構(gòu)做對(duì)媒體開發(fā)時(shí),gst-inspect和gst-launch是兩個(gè)非常使用的小工具,gst-inspect在開發(fā)時(shí)用于查詢庫(kù)各個(gè)插件element的詳細(xì)信息,后者用于在終端快速構(gòu)建一條pipeline用于播放多媒體。下面列出我在以前的學(xué)習(xí)和項(xiàng)目開發(fā)時(shí)常用的gst-launch播放各種多媒體文件的實(shí)例:

一、gstreamer實(shí)現(xiàn)視頻顯示

gst-launch videotestsrc ! xvimagesink

二、gstreamer實(shí)現(xiàn)攝像頭采集:

1、可以現(xiàn)實(shí)圖像,但圖像卡住不動(dòng)

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

三、攝像頭視頻現(xiàn)實(shí)及保存為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

四、將攝像頭視頻比例設(shè)置為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

六、多個(gè)流數(shù)據(jù)同時(shí)錄制

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可以將兩個(gè)或多個(gè)視頻流混合到一起:

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可以制定每個(gè)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可以用來(lái)制定視頻框的大小和位置和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插件實(shí)現(xiàn),可以設(shè)置文本的屬性

gst-launch videotestsrc !video/x-raw-yuv,width=640,height=480,framerate=15/1 ! textoverlaytext="Hello" ! ffmpegcolorspace ! ximagesink

十一、TimeOverlay ,由timeoverlay插件實(shí)現(xiàn)

1、由timeoverlay插件實(shí)現(xiàn)

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時(shí)鐘

gst-launch videotestsrc ! cairotimeoverlay ! ffmpegcolorspace ! xvimagesink

gst-launch videotestsrc ! clockoverlay halign=right valign=bottomshaded-background=true time-format="%Y.%m.%D" ! ffmpegcolorspace !ximagesink

十二、錄制視頻為ogg格式,帶時(shí)間和日期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

總結(jié)

以上是生活随笔為你收集整理的linux gst-launch 播放视频旋转,【视频开发】Gstreamer中一些gst-launch常用命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。