gstreamer

如何将 av1 编码流发送到 mediamtx 服务器?
gstreamer

如何将 av1 编码流发送到 mediamtx 服务器?

我想从命令行测试流式传输 av1 编码视频,但我没有足够的专业知识来知道我是否做错了什么或者它是否根本不受支持。 到目前为止我已经尝试gst-launch-1.0 videotestsrc ! av1enc ! rtspclientsink location=rtsp://localhost:8554/usbcamera过ffmpeg -f v4l2 -i /dev/video1 -c:v libsvtav1 -an -f rtsp rtsp://localhost:8554/usbcamera 使用 ffmpeg 的文件源ffmpeg -re -strea...

Admin

.mkv 文件中的空字节
gstreamer

.mkv 文件中的空字节

我最近下载了一部电影(.mkv),它在 VLC Android 上运行良好,但在我将它移动到我的电脑上(使用 adb)后,mpv 无法运行它(无法识别文件格式),也无法假释(GStreamer 后端错误:无法确定文件类型);即使在我的 Windows 机器上,VLC 也只是加载。 这是我用来传输文件的命令: adb pull /storage/0123-4567/Movies/Video.mkv ~/Movies/ 我尝试用 bless 打开它来查看该文件是否是使用魔法数字的 Matroska,但开头充满了空字节。 cmp Video.mkv /dev/...

Admin

发送 EOS 管道 gstreamer
gstreamer

发送 EOS 管道 gstreamer

我有一个示例 gstreamer 管道:gst-launch-1.0 v4l2src device=/dev/video2 ! image/jpeg,width=1280, height=800, framerate=30/1 ! v4l2jpegdec ! queue ! v4l2h264enc extra-controls="controls, h264_profile=4, video_bitrate=620000" ! 'video/x-h264, profile=high, level=(string)4' ! h264parse ! matros...

Admin

如何在 GStreamer 中复制音频和视频流而无需重新编码?
gstreamer

如何在 GStreamer 中复制音频和视频流而无需重新编码?

您ffmpeg可以使用“-c:a copy -c:v copy”来复制音频和视频流而无需重新编码输出文件,如果您想在更短的时间内制作一些小细节,比如修剪,这就是方法。 然而就我而言,我使用的是 GStreamer,可以吗? ...

Admin

从 MPEG-TS 流中逐帧同步解复用视频和 KLV 数据
gstreamer

从 MPEG-TS 流中逐帧同步解复用视频和 KLV 数据

我需要逐帧同步地从 MPEG-TS 流中解复用视频帧和 KLV 数据。以下命令将解复用 KLV 数据并输出包含 KLV 数据的文本文件。 gst-launch-1.0 filesrc location="some_file.ts" ! tsdemux name=demux \ demux. ! queue ! meta/x-klv ! filesink location="some_file-KLV.txt" 以下命令对视频进行解复用并输出视频文件。 gst-launch-1.0 filesrc location="some_file.ts" ! tsde...

Admin

无法使用 RIST 协议接收多播 RIST 流,但 RTP 可以工作
gstreamer

无法使用 RIST 协议接收多播 RIST 流,但 RTP 可以工作

我正在使用 gstreamer 来多播 RIST 流: gst-launch-1.0 filesrc location=test.mts ! tee name=t ! queue ! typefind ! rtpmp2tpay ! ristsink address=239.255.0.1 port=5004 t. ! queue ! tsdemux ! fakesink sync=true 然后在我的客户端上,我将 RIST 流转换为标准 RTP 并在 VLC 中对其进行测试: gst-launch-1.0 ristsrc address=239.255....

Admin

将新流添加到 Gstreamer 录制
gstreamer

将新流添加到 Gstreamer 录制

我目前有一组使用 GStreamer 和 SDP 录制的流,命令类似如下 gst-launch-1.0 --eos-on-shutdown filesrc location=test.sdp ! sdpdemux timeout=0 name=demux webmmux name=mux ! filesink location=test.webm demux. ! queue ! rtpopusdepay ! opusparse ! mux. 对于在 SDP 中声明的多个流,这可以正常工作。但是,有时流可能会迟到,因此它们在录制时不是原始 SDP 的一部分...

Admin

使用 GStreamer Pipeline 创建符合 onvif 规范的摄像头
gstreamer

使用 GStreamer Pipeline 创建符合 onvif 规范的摄像头

我有一台摄像机,我正在使用 GStreamer 传输视频数据。使用以下管道。 gst-launch-1.0 -e camerasrc ! video/x-h264,width=1920,height=1080,framerate=30/1 ! h264parse config-interval=-1 ! rtph264pay pt=96 ! udpsink host=127.0.0.1 port=8554 现在我想使流式传输符合 ONVIF 标准。如何使用 Gstreamer 来实现? ...

Admin

如何增加 Xv 适配器端口的数量?
gstreamer

如何增加 Xv 适配器端口的数量?

对于我的使用情况来说,xv 视频端口的数量太少,例如 xvinfo 报告: X-Video Extension version 2.2 screen #0 Adaptor #0: "GLAMOR Textured Video" number of ports: 16 port base: 164 如何将数字增加到 32 或者更好的 64? 而且 gstreamer 无法创建超过 16 个 xvimagesinks,因为没有更多可用端口。 ...

Admin

将 Linux 桌面作为虚假网络摄像头传输到 virtuabox windows 客户机
gstreamer

将 Linux 桌面作为虚假网络摄像头传输到 virtuabox windows 客户机

我想捕获我的 Linux 桌面(ubuntu 20.04)(的一部分),并将其作为网络摄像头传输到在 Virtualbox 中运行的 Windows 10 客户 VM。 我发现在 Linux 上使用桌面作为虚假网络摄像头这让我受益匪浅。 所以我安装了 v4l2loopback ( apt install v4l2loopback-dkms),然后运行modprobe v4l2loopback。 然后我运行了 ffmpeg 命令:ffmpeg -f x11grab -framerate 25 -video_size 1280x720 -i :1.0+0,0 ...

Admin

使用 gphoto2 访问麦克风
gstreamer

使用 gphoto2 访问麦克风

有大量文献使用 gphoto2 将 DSRL 用作网络摄像头。通过这些技术,系统将相机视为新的视频设备 gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0 或者 gphoto2 --stdout --capture-movie | gst-launch-1.0 fdsrc fd=0 ! decodebin name=dec ! queue ! videoconvert ! tee ! v...

Admin

无法使用 Gstreamer 通过 rtp 传输音频
gstreamer

无法使用 Gstreamer 通过 rtp 传输音频

我正在使用以下 gstreamer 命令行通过 RTP 将音频从 QuickTime 文件发送到端口/端点。我可以成功地将视频从文件发送到端口,但不能发送音频。我在端口 5054 上执行 tcpdump 测试,可以看到数据包通过网络传输。如果我嗅探 5052,则看不到数据包。我可以通过网络正常发送测试信号,所以我怀疑我的解码箱出了什么问题?这引出了下一个问题。有没有办法分析 gstreamer 管道的工作原理? gst-launch-1.0 \ rtpbin name=rtpbin \ filesrc location=starwars.m...

Admin

GStreamer 定义用于传出流量(rtsp)的端口
gstreamer

GStreamer 定义用于传出流量(rtsp)的端口

我尝试运行一些自定义 rtsp 软件,但它有一个令人讨厌的怪癖。它无法协商发送视频的端口。它总是将视频发送到发出请求的端口。下面是一个简单的例子: 假设 gstreamer 使用本地机器上的端口 51000 连接到 RTSP 服务器上的端口 8054。然后,RTSP 服务器将尝试将视频发送到 gstreamer 正在运行的机器上,该端口是 gstreamer 最初用于本地连接到 RTSP 服务器的端口。 我知道的通常行为是协商一个端口并将其用于传输视频。 由于我无法在运行 gstreamer 的机器上使用端口 >50,000,因此我正在寻找一种方...

Admin

视频转码的最大 cuda 实例限制是多少?
gstreamer

视频转码的最大 cuda 实例限制是多少?

我在 Azure Nc6s_v3 虚拟机上设置了 Nvidia V100 卡。我设置了最新的 CUDA 驱动程序和 SDK。我从“Video_Codec_SDK_9.0.20”编译了示例程序,并使用 AppTrans 二进制文件验证了最大并行转码会话。我发现我可以运行 25 个并行转码实例(25 个解码,25 个编码),第 26 个实例将等待任何会话被取消初始化。 有人能解释一下为什么会有这种限制吗? 根据文章最大并发会话数没有限制。 我通过启用 Nvidia 插件(nvdec 和 nvh264enc)编译了 Gstreamer 框架。我在这里也看到了...

Admin

Gstreamer - 丢失“最后”缓冲区
gstreamer

Gstreamer - 丢失“最后”缓冲区

我正在使用带有 souphttp、demux 和 appsink 的 gstreamer。appsink 会在收到新的 pad 请求时动态连接到 demux。我使用的 hlsdemux 似乎正在丢弃“最后一个”缓冲区,因为我错过了大约 0.5 秒的数据包。 我根据“new_sample”信号检索数据包。 关于带有动态 pad 的 demuxers-->appsink 有任何已知问题吗?收到 EOS 或添加新 pad 后我应该做什么具体的事情吗? ...

Admin