标签: Gstreamer
h.264video-processingdecodingx264
我想在Gstreamer中播放mp4视频,但x264dec出现错误,找不到错误。我写了这个管道
gst-launch filesrc \
location=/media/thesis/Gstreamer/pub_Irma.mp4 \
! qtdemux name=demux demux. ! queue ! faad \
! audioconvert ! audioresample ! autoaudiosink demuxer. \
! queue ! x264
我想通过UDP上的ximagesrc传输我的桌面
适用于完整桌面,无需任何缩放(宽度、高度、帧率),程序如下:
gst-launch-0.10 ximagesrc ! ffmpegcolorspace ! x264enc tune=zerolatency bitrate=500 speed-preset=superfast ! queue ! rtph264pay name=pay0 pt=96 ! udpsink host=192.168.0.103 port=5000 auto-multi
我在连接接收到mjpg流的souphttpsrc和v4l2sink时遇到问题
这可以很好地工作并播放源代码:
gst发布-v souphttpsrc位置=http://ip:8081/?action=stream' ! 多方数据交换!jpegdec!自动视频接收器
如果我尝试将其链接到v4l2
gst发布-v souphttpsrc位置=http://ip:8081/?action=stream' ! 多方数据交换!jpegdec!V4L2Link设备=/dev/video0
但它不起作用。(我
我一直在努力在我的ubuntu 14.04系统上构建gstreamer
我最近发现了一些非常有前途的gst卸载脚本,如下所述:
不幸的是,当脚本试图构建audioconvert时,我遇到了一些障碍:
在此处查看实际卸载的gst脚本:
我看不到“稳定”版本的开关。有什么建议吗?来自gstreamer推送修复程序的tim。正在工作。您可以添加一些信息并将答案标记为正确,也可以关闭问题。。也许最好提及修复该问题的git commit。。
我已经使用gstreamer为Kurento媒体服务器创建了一个自定义过滤器。
根据文档,我创建了.deb文件debuild-us-uc,并安装了它,因此libkmscustomfiltermodule.so在/usr/lib/x86_64-linux-gnu/kurento/modules/
最初它被列在加载的模块中,但我删除了这个。因此之后它就没有被列出(sudo kurento media server--list)
即使我恢复更改并重新启动kurent-media-server-6.0服
我有实时音频和视频数据,我可以作为Ogg或Matroska(WebM)流发送。我还有将从服务器发送到客户机的动态元数据,并且应该与A/V流相关联。例如,记录音频数据包的确切服务器时间
我试图用Kate编码来破解这个问题,但在开始时似乎一次发送所有字幕数据,而不是动态发送。如果您能告诉我如何发送相关性良好的动态字幕数据,那么这也是一个可行的解决方案。您是否尝试过在源/服务器上将字幕数据与视频叠加,然后发送给客户端?我很抱歉,更清楚地说,我并不是为了使用字幕而发送字幕数据:我试图以任何可能的方式对客
我有一个软件,在事件(警报)发生时立即执行一些视频分析
由于我的嵌入式板上没有足够的空间,我应该只在警报发生时才开始录制视频;
该算法适用于离线存储的视频(它不是实时算法,因此应该存储视频,它不足以附加到视频流)
目前,我能够连接到视频,并在检测到报警情况后立即将其存储。
但是,我想在事件发生前10秒分析数据。
是否可以在不将整个流存储在磁盘上的情况下,作为FIFO队列预记录10秒
我在这里找到了与我的要求类似的东西:
但我想知道是否有某种方法可以在不使用ridgerun工具的情况下获得相同的
我对vp8enc的特性有一些疑问,我已经尝试了很多
但我不明白它们的功能。
我发现下面的页面解释了vp8参数,但是当我改变
在属性方面,我看不到视频或CPU使用率有任何变化。
我现在的管道是:
udpsrc port=1234 ! queue max-size-bytes=0 max-size-time=250 !
application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,framerate=25/1
! rtph264
我已经编写了gstreamer代码,用于同时进行摄像机直播和录制
我的管道是这样的:
/ [ queue1 | videosink ]
v4l2src | tee
\ [ queue2 | filesink ]
目前,流媒体直播和文件录制正在协同工作
现在,我只需要使用一个队列即queue1(实时流媒体队列)启动管道,过一段时间后,我需要添加录制队列并动态删除它
我的
以下管道出现故障。如何调试这个?出什么事了
gst-launch-1.0 -v uvch264src device=/dev/video0 name=src \
auto-start=true src.vidsrc ! queue ! video/x-h264 ! \
h264parse ! avdec_h264 ! xvimagesink sync=false
但vfsrc运行良好
gst-launch-1.0 -v -e uvch264src device=/dev/video0
当我使用gst-play-1.0在ubuntu系统上播放任何视频源时,我能看到的是,它使用的是非常旧的gstreamer版本,即gst-launch-1.0,gstreamer 1.2.4,使用函数gst_version(&major,&minor,µ,&nano)
当我列出所有已安装的gstreamer版本时,我发现gstreamer-1.8.2也存在
因此,我的问题是如何更改或链接最新版本的gstreamer。这个问题的标题具有误导性,实际上这个问题是操作系统问题,而不是gstre
我正在leopard board imaging board上编写gstreamer管道。我正在使用dmairesizer元素进行视频捕获和后期编码(h.264),但dmairesizer正在移动视频,如所附照片所示。左侧部分显示在右侧,反之亦然
Gstreamer管道如下所示
gst-launch -e v4l2src input-src=composite chain-ipipe= true always-copy=false queue-size=6 ! dmaiaccel ! vide
我目前正在使用gstreamer1.14,它在splitmuxsink插件中没有splitafter操作。是否有人知道如何使用splitnow实现相同的splitafter功能
我在Windows XP上使用GStreamer将原始(YUV)视频流写入AVI文件序列。我正在使用的管道的简化版本如下所示:
gst启动-e-v videotestsrc模式=smpte100缓冲区数量=10水平速度=1!视频/x-raw-yuv,格式=(fourcc)UYVY,宽度=(int)640,高度=(int)480,帧速率=30/1!ffmpegcolorspace!阿维穆克斯!multifilesink next file=key frame location=“frame\uu%
我正在gstreamer上开发一个rmvb播放插件。我编写了解复用器和解码器,当我使用管道链接它们时,它工作得很好
但是播放应用程序正在使用playbin2来播放视频。
因此,我想知道是否有可能将它们添加到playbin2中。这样playbin2就可以播放rmvb文件了
但是我不知道该怎么办。
所以我的问题是:
1.是否有可能做到这一点
2.如果可能,我应该搜索哪些关键词
3.如果不可能。是否有其他方法以最低成本播放rmvb文件。(很难更改播放应用程序源代码)
如果有人帮忙,我们将不胜感激
非常
如何将文本覆盖到h264流上,并使用GStreamer存储它,以便稍后提取覆盖文本。我需要从视频中提取叠加文本
我使用以下命令将文本覆盖到流上并存储它
gst-launch-1.0-e imxv4l2videosrc!textoverlay text=“示例视频”valignment=position halignment=position xpos=1 ypos=1 font desc=“Sans,20”!时间重叠!vpuenc_h264!马特罗斯卡莫!filesink location=vi
你能帮我解决这个问题吗?
我是gstreamer和管道的新手,在下面的问题中面临调试困难
我正在尝试使用gst-launch-1.0命令执行hls stteam的视频捕获输出
我在ubuntu 18.04中运行以下命令
gst-launch-1.0 v4l2src device=/dev/video0 ! videorate ! videoscale ! video/x-raw,framerate=30000/1001,width=720,height=480 ! x264enc bitrate
gstreamer中指定媒体功能的caps语法是什么?Caps是指定允许的媒体类型的字符串,看起来像“audio/x-raw-int,…”,但我还没有找到关于Caps字符串中允许的内容的好文档。这就是我在python中使用它的方式…HTH
caps = gst.Caps("video/x-raw-yuv,format=(fourcc)AYUV,width=704,height=480")
capsFilter = gst.element_factory_make("capsfilter")
ca
我正在尝试使用gstreamer 1.0通过RTP传输H263。除了不发送关键帧外,它工作正常。命令行如下所示:
gst-launch-1.0 videotestsrc pattern=ball!阿文库h263!RTPH263支付点=34!udpsink主机=10.0.75.196端口=25782同步=true
其结果是,它从黑色开始,仅在此后的更改中起作用。这可能与avenc_h263使用只有h263+或h263++可以处理的东西有关吗
我将非常感谢在这方面的任何帮助 我终于找到了问题!标准r
我已经写了下面的小vala程序,我不知道怎么写
要操作GLib.Value类型,请参见下面的代码:
使用商品及服务税;
无效应用程序消息(Gst.Bus总线、Gst.message msg){
var s=msg.get_structure();
如果(s==null)
返回;
字符串msgtype=s.get_name();
如果(msgtype!=“级别”)
返回;
GLib.Value rms=s.get_值(“rms”);
GLib.Value st=s.get_值(“流时间”);
/
我在gstreamer 1.2.4上
我开发了一个基于xvimagesink的视频接收器
当我将接收器的sync属性设置为0时,管道在显示几帧后挂起
我使用了以下管道
gst-launch-1.0 filesrc location=test.mp4 ! qtdemux ! h264parse ! avdec_h264 ! myvideosink sync=0
我注意到,甚至解码器也停止接收帧。
即使使用videotestsrc,也会出现此问题
gst-launch-1.0 videotests
我目前正在尝试从我的网络摄像头传输到我的ARM设备,虽然我可以让它传输一些帧,但我的管道工作不完美,有时它挂起,有时它会掉帧或有其他错误
另一方面,我注意到,奶酪似乎从我的网络摄像头中流出。我想知道是否有可能以某种方式检查cheese使用的gstreamer管道,以便我可以尝试在ym应用程序上复制它。在运行应用程序之前,可以尝试在环境变量中设置GST\u DEBUG\u DUMP\u DOT\u DIR=。退出应用程序后,在给定目录中可能会出现一些.dot文件。这些文件可以使用graphviz软
我有一个原始视频可以通过gstreamer播放:
gst-launch-1.0 ... autovideoconvert ! autovideosink
我可以对这个视频进行编码:
gst-launch-1.0 ... ! autovideoconvert ! x264enc ! h264parse ! mp4mux ! filesink location=a.mp4
我现在想把这个原始视频放在一个mp4容器中“无损”,没有任何压缩。我该怎么做呢?你的问题已经回答了。不要做压缩
gst-la
我试图通过test-mp4usage从gst-RTSP-server示例创建RTSP服务器。
这个例子是可行的,但我需要将基本的8554端口更改为另一个
我检查了测试记录.c示例,我们可以看到:
#define DEFAULT_RTSP_PORT "8554"
static char *port = (char *) DEFAULT_RTSP_PORT;
...
static GOptionEntry entries[] = {
{"port", 'p', 0, G_OPTION_ARG_S
我正在尝试评估gstreamer中的功能是否适用于新的应用程序
应用程序应该能够动态播放视频和图像,这取决于一些与此问题不相关的标准(用户输入…)。我没有弄清楚的主要问题是如何在连续内容之间实现无缝交叉淡入/混合
我正在考虑使用videomixer插件,并通过编程转换sinks alpha值。然而,我不确定这是否可行,也不确定这样做是否是个好主意
由于开发和目标平台上的可用性,最好使用gstreamer解决方案。此外,最终可使用自定义videosink实现将内容呈现给专有显示器
编辑:能够使用两
我正在尝试使用gstreamer重新多路复用quicktime电影(视频/jpeg、音频/mpeg)
gst-launch filesrc location="${INFILE}" \
! qtdemux name=demux \
! queue \
! qtmux name=mux \
! filesink location="${OUTFILE}" \
demux.audio_00 \
! queue \
! mux.audio_0
不幸的是,此管道没有启动(它开始预滚动,然
我是gstreamer的初学者。当我创建一个播放视频文件的管道时,我得到以下消息:“可能是时间戳问题,或者这台计算机太慢了”。经过一些搜索,我发现如果时间戳不正确,可能会出现这个问题。有没有办法确定视频文件是否有错误的时间戳
这是我正在使用的管道
gst-launch-0.10 filesrc位置=.mp4!qtdemux!ffdec_mpeg4!dri2videosink。您可以在例如ffdec_mpeg4和drivideosink之间插入一个标识元素,并使用检查不完美时间戳+检查不完美偏移属
我正在尝试使用gstreamer的videomixer插件合成三个流。
我找到了这个线程,我可以设法将两个流并排放置,但我不知道如何添加第三个流。有人能帮忙吗
我使用并工作的原始命令:
gst-launch-1.0 uridecodebin uri=http://old.koniclab.info/fileadmin/images/koniclab_logo_negro.png ! videoscale ! video/x-raw, width=320, height=240 ! imagefr
我希望gstreamer textaoverlay元素渲染具有淡入/淡出效果的文本。发布的版本不这样做。有人知道fork或类似的插件可以做到这一点吗?对于另一个stackexchange站点来说,这似乎更好。我在Stack Exchange上搜索了“gstreamer textoverlay fade effect”,但大多数帖子要么是在stackoverflow上,要么是在askubuntu上,还有一篇是在superuser上。看来我的问题的答案是“不”。
我正在尝试使用gstreamer对音频文件进行编码。我正在使用命令
gst launch filesrc location=s.pcm ! audio/x-raw-int, rate=4000, channels=2, endianness=1234, width=16, depth=16, signed=true ! ffenc_aac ! filesink location=file.wav
我收到一条错误消息:-
正在将管道设置为暂停。。。管道正在预滚。。。错误:来自
元素/GstPip
以下内容在我的机器上运行正常(请注意,我基本上只是在一个命令中执行一个完整的循环,返回到我的autovideosink):
我得到了演示窗口,看到了测试源视频
然后我试着做同样的事情,但是通过UDP。所以,我在同一台计算机上有两个脚本。其中一个充当服务器:
.\gst-launch-1.0.exe videotestsrc is-live=true ! openh264enc ! rtph264pay ! udpsink port=3000
另一方作为客户:
.\gst-launch-1.0.
这个命令可以正常工作:
gst-launch-1.0-v--gst调试级别=2 udpsrc端口=1234!德克宾!视频/x-raw,格式=I420!自动视频接收器
此命令不起作用:
gst-launch-1.0-v--gst调试级别=2 udpsrc端口=1234!德克宾!视频/x-raw,格式=I420!视频转换!视频/x-raw,格式=RGB!自动视频接收器
错误:
将名为decodebin0的GstDecodeBin的某个pad延迟链接到名为videoconvert0的GstVideoC
我在238.0.0.1:1235得到一个udp多播源。
它可以很好地使用这个命令
gst-launch-1.0 -m udpsrc address="238.0.0.1" port=1235 !tsdemux !h264parse !queue !avdec_h264 !queue !d3dvideosink sync=false
但当我使用gst rtsp server创建这样的工厂时:
gst_rtsp_media_factory_set_launch(factory
如何查看GST_CAT_INFO、GST_DEBUG等函数的输出?
我是否需要使用设置的调试级别自己编译gstreamer,或者可以在应用程序级别编译gstreamer?可以使用GST_debug环境变量在stderr中打印调试消息(如果使用--enable GST debug编译gstreamer,这是默认设置)
例如:GST\u DEBUG=audiotestsrc:5 GST launch audiotestsrc!FakeLink将记录audiotestsrc元素中的所有内容(5)
您可
我正在尝试使用“-1”速率参数倒带视频文件。
它倒带一小段时间,然后播放停止。最后,玩家被杀。
但是,对于相同的视频文件,快进可以很好地工作。我用“2倍”和“4倍”的速度测试了它。如果我只是在一定的持续时间内向后搜索(速率为“1.0”),它将转到该时间戳并按预期开始播放
据我所知,Seek事件在管道的Demuxer元素中处理,其中:
它刷新当前排队的流数据
使用seek事件中的更新值创建新段
一旦新片段准备好了新的流数据,播放就开始了。
从这里开始,将根据新段中设置的新参数开始播放
对于反向播放
我有一个mpegts视频文件,由silicondust hdhomerun调谐器编码。我目前拥有的管道:
gst-launch-0.10 filesrc location=filename.mpg ! decodebin name=decoder decoder. ! queue ! audioconvert ! audioresample ! alsasink device=front decoder. ! deinterlace ! ffmpegcolorspace ! glimagesin
我是GStreamer的新手,正在尝试用字幕流对视频流进行编码(目前为v4l2src),并将其多路复用到matroska容器中。我能够传入一个带有字幕的.srt文件,然后将字幕编码到文本流中。然而,我想使用字幕流对录制视频时生成的“元数据”进行编码。我可以使用textoverlay,但不想将元数据刻录到图像上。我想稍后再做(在各种后期制作效果之后)
有没有办法随着时间的推移在matroskamux中添加字幕?字幕文本的内容在手之前是未知的,例如移动摄像机的gps坐标
这是在matroska流中记
我正在尝试使用gstreamer通过RTP传输mpeg2 ts视频。我正在为服务器使用以下管道:
gst-launch-0.10 -v filesrc location=/home/…/miracast_sample.mpeg ! rtpmp2tpay ! udpsink host=localhost port=5000 sync=false
我面临的问题是,我直接得到一个EOS事件,如下所述:
Setting pipeline to PAUSED ...
Pipeline is PREROL
我是Gstreamer的初学者,遇到了一个我无法解决的问题:
我使用以下两个命令:
gst-launch-1.0 v4l2src ! autovideosink
gst-launch-0.10 v4l2src ! autovideosink
1.0版本以每秒1帧的速度显示视频,而0.10版本以平滑的速度显示视频(不确定确切的帧速率)
我想用gstreamer 1.0制作同样的平滑视频,你能帮我弄清楚确切的语法吗?我想我遗漏了一些参数
谢谢 好吧,再通过几次谷歌搜索,我得到了答案:
gst-l
工作,文件和屏幕显示都工作
gst-launch-1.0 -v -e \
videotestsrc ! tee name=t0 \
t0. ! queue ! x264enc ! matroskamux ! filesink location="test.mkv" \
t0. ! queue ! queue ! autovideosink
不起作用
下面是另一组示例
gst-launch-1.0 -v -e \
videotestsrc ! tee name=t
我在玩gstreamer rtsp
我创建了一个rtsp接收器,如下所示:
gst-launch-1.0 videotestsrc ! x264enc ! rtph264pay config-interval=10 pt=96 ! udpsink host=127.0.0.1 port=5000
我不能直接用VLC打开它(用rtsp://127.0.0.1:5000)但是使用vlc.sdp文件可以显示它。vlc.sdp文件如下所示:
v=0
m=video 5000 RTP/AVP 96
c=
我需要用gstreamer设置一个实时音频流服务器。服务器应向客户端发送实时音频,在客户端,应使用vlc播放器播放传入流。我正在使用以下代码
VIDEO_CAPS="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264"
gst-launch -v udpsrc caps=$VIDEO_CAPS port=4444 \
! gstrtpbin .recv_
我想创建一个GStreamer应用程序,用于通过无线网络传输视频/音频。对于编解码器,我将使用H.264。请建议传输数据我应该使用什么MPEG2-TS或RTP?我不确定从哪里开始写应用程序。
我将在ubuntu的c/c++中工作。请帮助。
提前感谢。Rtp是常用的。您可以在gst plugins good/tests/examples/rtp/下查看示例
我正在尝试使用gstreamer通过网络发送示例文件.avi。我用于构建管道的代码如下所示:
gst-launch-1.0 -v rtpbin name=rtpbin latency=200 \
filesrc location=filesrc location=/home/enry/drop.avi ! decodebin name=dec \
dec. ! queue ! x264enc byte-stream=false bitrate=300 ! rtph264pay ! rtpbin.
我对该元素的理解是,帧速率校正是通过简单地删除帧来执行的,并且没有使用“奇特的算法”。我已经分析了gst-launch-1.0管道的CPU使用情况,并且我观察到,随着帧速率降低到1fps以下,CPU使用量(与直觉相反)会显著增加。
示例管道(您可以通过更改帧率分数来观察性能损失):
我希望降低帧速率可以减少管道其余部分所需的处理量。对这一现象的任何洞察都将不胜感激
系统信息:Centos 7,GStreamer 1.4.5
编辑:似乎videotestsrc也会发生这种情况,但只有在源上指定高帧
我正在尝试将一个h264编码的数据从gstreamer共享到另外两个进程(都基于gstreamer)。经过一些研究,我发现唯一的方法就是使用shm插件。
这就是我想做的
gstreamer--->h264 encoder--->shmsink
shmrc--->process1
shmrc--->process2
我能够从videotestsrc和网络摄像头中获得原始数据。但对于h264编码的数据,它不是。
这是我的测试管道
gst-launch-1.0 videote
我使用这个脚本在Raspberry Pi上安装GStreamer的1.14版
在运行脚本之前,我从pi中完全卸载了GStreamer
脚本克隆了gstreamer和一系列其他相关的回购协议(gst plugins basegst plugins goodgst plugins badgst plugins suggergst-libavgst-omxgst-pythongst-rtsp-server)选中branch 1.14并进行安装。脚本完成时没有问题
脚本完成后,我检查安装的GStrea
我有一个RTSP视频源(h265),我可以用VLC显示。我想将流分成两部分,一部分是本机分辨率(用h265编码),另一部分是新的较低分辨率(用h264编码)。这两个新流也应该是RTSP流,可以通过VLC查看
出于带宽考虑,我只能将单个客户端连接到主源
到目前为止,我有一个正在运行的gst rstp服务器设置,一个媒体工厂运行这个gst启动字符串:
rtspsrc位置=…!rtph265depay!
h265parse!发球台名称=t!队列rtph265payname=pay1pt=96吨!队列
我对gstreamer教程1有问题。它未能打开管道。我使用VisualStudio2019社区在一本Surface Book上运行Windows10。
我安装了以下软件:
gstreamer-1.0-devel-msvc-x86_64-1.16.2.msi
gstreamer-1.0-msvc-x86_64-1.16.2.msi
我下载了教程。我将所有DLL从C:\gstreamer\1.0\x86\u 64\bin复制到了示例生成复制的调试目录。我能够构建19个教程中的16个。剩下的3个教程缺
我尝试将RTSP h.264流保存到HLS mp4文件:
gst-launch-1.0 rtspsrc location="rtsp://....." ! rtph264depay ! h264parse ! matroskamux ! hlssink max-files=0 playlist-length=0 location="/home/user/ch%05d.mp4" playlist-location="/home/user/list.m3u8" target-duration=15
1 2 3 4 5 6 ...
下一页 最后一页 共 12 页