我们有一个RTSP流正在运行。这是我们用来运行流的gstreamer管道。
./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的视频比例尺的流。
这是我用来读取流的管道。
"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接收器回调中没有收到任何帧。
rtspsrc location=rtsp://127.0.0.1:8554/test
! rtph264depay ! h264parse ! nvv4l2decoder
! videoconvert ! videoscale ! videorate ! video/x-raw,framerate=15/1 ! appsink …
当我试图在python应用程序中执行gstreamer时,我得到了这个错误,我怀疑不能更改视频大小的原因是由于这个缺少的插件,但是我能够继续没有这个插件,只要我不改变视频大小和帧速率。
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
发布于 2022-02-07 18:18:38
您的问题可能是nvv4l2decoder输出到NVMM内存,但视频转换不能从NVMM内存中读取。尝试nvvidconv,而不是视频转换和视频尺度:
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
https://stackoverflow.com/questions/71018530
复制相似问题