首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RTSP gstreamer python客户端的帧率和视频处理

RTSP gstreamer python客户端的帧率和视频处理
EN

Stack Overflow用户
提问于 2022-02-07 12:23:58
回答 1查看 1.6K关注 0票数 0

我们有一个RTSP流正在运行。这是我们用来运行流的gstreamer管道。

代码语言:javascript
运行
复制
./test-launch "nvarguscamerasrc 
! video/x-raw(memory:NVMM), width=(int)1280, height=(int)960, framerate=(fraction)30/1, format=(string)NV12 
! nvvidconv 
! nvv4l2h264enc maxperf-enable=1 poc-type=2 preset-level=1 bitrate=40000000 
! rtph264pay name=pay0 pt=96 config-interval=1"

在接收到的帧被传递给目标检测之后,我想读取具有10 FPS和宽640英尺480的视频比例尺的流。

这是我用来读取流的管道。

代码语言:javascript
运行
复制
"rtspsrc location=rtsp://127.0.0.1:8554/test max-rtcp-rtp-time-diff=-1 udp-buffer-size=2147483647 buffer-mode=2 " \
"! decodebin " \
"! autovideoconvert " \
"! nvjpegenc " \
"! appsink name=sink emit-signals=True"

我可以使用上述方法获得带有app接收器回调的帧,但是每当我尝试在现有管道中使用视频尺度视频插件时,我都无法获得与app接收器回调一起的任何输出。

我甚至用这种方法来获得框架,但这也不起作用。我没有收到任何错误,但是我在app接收器回调中没有收到任何帧。

代码语言:javascript
运行
复制
rtspsrc location=rtsp://127.0.0.1:8554/test 
! rtph264depay ! h264parse ! nvv4l2decoder 
! videoconvert ! videoscale ! videorate ! video/x-raw,framerate=15/1 ! appsink …

当我试图在python应用程序中执行gstreamer时,我得到了这个错误,我怀疑不能更改视频大小的原因是由于这个缺少的插件,但是我能够继续没有这个插件,只要我不改变视频大小和帧速率。

代码语言:javascript
运行
复制
dlopen failed for /usr/lib/aarch64-linux-gnu/libv4l/plugins-wrapped/libv4l2_nvvidconv.so: 
/usr/lib/aarch64-linux-gnu/libv4l/plugins-wrapped/libv4l2_nvvidconv.so: 
cannot open shared object file: No such file or directory
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-07 18:18:38

您的问题可能是nvv4l2decoder输出到NVMM内存,但视频转换不能从NVMM内存中读取。尝试nvvidconv,而不是视频转换和视频尺度:

代码语言:javascript
运行
复制
rtspsrc location=rtsp://127.0.0.1:8554/test ! rtph264depay ! h264parse ! nvv4l2decoder ! nvvidconv ! video/x-raw,width=640,height=480 ! videorate ! video/x-raw,framerate=15/1 ! appsink
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71018530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档