mayday0208 发表于 2022-4-12 10:55:33

关于播放rtsp流的问题

你好,我在3588板子上使用opencv的videocapture打开海康rtsp流,画面为绿屏。
使用gstreamer命令和ffplay命令播放均未成功。打印信息如图、

请问这是什么问题。如何解决

板蓝根 发表于 2022-4-12 14:19:37

gstreamer 请指定其他sink 运行,再autovideosink 验证一下

板蓝根 发表于 2022-4-12 14:29:17

如您提供的 log 图,gstreamer 使用了 kmssink,kmssink 默认不指定图层的话默认使用第一个图层,而 rk3588 有4个 esmart 和 4个 cluster 图层,cluster 只支持 afbc 格式,不支持 rgb/yuv,同时 kmssink 不能再 ui 层播放。如果要使用 kmssink 需要指定图层。例如:

gst-launch-1.0 playbin video-sink='kmssink plane-id=105' uri=file:///usr/local/test.mp4



mayday0208 发表于 2022-4-12 14:46:07

板蓝根 发表于 2022-4-12 14:29
如您提供的 log 图,gstreamer 使用了 kmssink,kmssink 默认不指定图层的话默认使用第一个图层,而 rk3588 ...

加上video-sink参数后确实可以显示画面了。那请问如何使用opencv直接拉流呢?

板蓝根 发表于 2022-4-12 14:50:25

为什么 opencv 会支持 mpp 解码,按道理官方只适配了第三方的 gstreamer、ffmpeg

mayday0208 发表于 2022-4-12 14:56:30

板蓝根 发表于 2022-4-12 14:50
为什么 opencv 会支持 mpp 解码,按道理官方只适配了第三方的 gstreamer、ffmpeg

我是重新编译的opencv,那软解在板子上也是无法使用的吗

板蓝根 发表于 2022-4-12 14:58:52

纯 cpu 软解跟硬件没关系,应该是可以用的,你把你的测试流程发我一下,我验证一下。

mayday0208 发表于 2022-4-12 15:05:46

板蓝根 发表于 2022-4-12 14:58
纯 cpu 软解跟硬件没关系,应该是可以用的,你把你的测试流程发我一下,我验证一下。

#include<opencv2/opencv.hpp>
#include<iostream>

using namespace std;
using namespace cv;

int main(int argc,char **argv)
{
    VideoCapture capture("rtsp://admin:ai123456@192.168.165.109:554/h264/ch1/sub/av_stream");
//    VideoCapture capture("/home/firefly/222.h264");
    namedWindow("myCamera",CV_WINDOW_AUTOSIZE);
    while(true)
    {
      Mat frame;
      capture>>frame;
      imshow("myCamera",frame);
      waitKey(30);
    }
    return 0;
}
opencv官方下载3.4.5的源码,cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. ,make,make install进行编译。opencv打开海康相机的测试代码已经贴上。rtsp地址用vlc测试可以播放

板蓝根 发表于 2022-4-12 15:39:09

1.sudo apt update
2.sudo apt install libopencv-dev
3.sudo apt install g++
4. g++ -o test test.c -lopencv_stitching -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_highgui -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_quality -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_shape -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_ml -lopencv_videostab -lopencv_videoio -lopencv_viz -lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core -I/usr/include/opencv4/opencv -I/usr/include/opencv4

5. ./test



我这边测试没有问题,另外我发现这真的好像在调用 mpp。

mayday0208 发表于 2022-4-12 16:00:50

板蓝根 发表于 2022-4-12 15:39
1.sudo apt update
2.sudo apt install libopencv-dev
3.sudo apt install g++


你说直接命令安装的opencv吗。我试试
页: [1] 2 3
查看完整版本: 关于播放rtsp流的问题