Quantcast
Channel: Recent Questions - Stack Overflow
Viewing all articles
Browse latest Browse all 12111

Receive RTMP stream with OpenCV (python)

$
0
0

I'm trying to process an RTMP stream in Python, using OpenCV2 but I'm not able to get OpenCV to capture it (i.e. act as RTMP server).

I can run FFmpeg/FFplay from the command line and receive the stream successfully.What could cause OpenCV to fail opening the stream in listening mode?

Here is my code:

import cv2cap = cv2.VideoCapture("rtmp://0.0.0.0:8000/live", cv2.CAP_FFMPEG)if not cap.isOpened():    print("Cannot open video source")    exit()

And the output:

[tcp @ 00000192c490d640] Connection to tcp://0.0.0.0:8000 failed: Error number -138 occurred[rtmp @ 00000192c490d580] Cannot open connection tcp://0.0.0.0:8000 Cannot open video source

edit2: Output with debug logging turned on:

output of the python script with debug logging on:[DEBUG:0@0.017] global videoio_registry.cpp:218 cv::`anonymous-namespace'::VideoBackendRegistry::VideoBackendRegistry VIDEOIO: Builtin backends(9): FFMPEG(1000); GSTREAMER(990); INTEL_MFX(980); MSMF(970); DSHOW(960); CV_IMAGES(950); CV_MJPEG(940); UEYE(930); OBSENSOR(920)[DEBUG:0@0.026] global videoio_registry.cpp:242 cv::`anonymous-namespace'::VideoBackendRegistry::VideoBackendRegistry VIDEOIO: Available backends(9): FFMPEG(1000); GSTREAMER(990); INTEL_MFX(980); MSMF(970); DSHOW(960); CV_IMAGES(950); CV_MJPEG(940); UEYE(930); OBSENSOR(920)[ INFO:0@0.031] global videoio_registry.cpp:244 cv::`anonymous-namespace'::VideoBackendRegistry::VideoBackendRegistry VIDEOIO: Enabled backends(9, sorted by priority): FFMPEG(1000); GSTREAMER(990); INTEL_MFX(980); MSMF(970); DSHOW(960); CV_IMAGES(950); CV_MJPEG(940); UEYE(930); OBSENSOR(920)[ WARN:0@0.037] global cap.cpp:132 cv::VideoCapture::open VIDEOIO(FFMPEG): trying capture filename='rtmp://192.168.254.101:8000/live' ...[ INFO:0@0.040] global backend_plugin.cpp:383 cv::impl::getPluginCandidates Found 2 plugin(s) for FFMPEG[ INFO:0@0.043] global plugin_loader.impl.hpp:67 cv::plugin::impl::DynamicLib::libraryLoad load C:\Users\me\src\opencv\.venv\Lib\site-packages\cv2\opencv_videoio_ffmpeg490_64.dll => OK[ INFO:0@0.047] global backend_plugin.cpp:50 cv::impl::PluginBackend::initCaptureAPI Found entry: 'opencv_videoio_capture_plugin_init_v1'[ INFO:0@0.049] global backend_plugin.cpp:169 cv::impl::PluginBackend::checkCompatibility Video I/O: initialized 'FFmpeg OpenCV Video I/O Capture plugin': built with OpenCV 4.9 (ABI/API = 1/1), current OpenCV version is '4.9.0' (ABI/API = 1/1)[ INFO:0@0.055] global backend_plugin.cpp:69 cv::impl::PluginBackend::initCaptureAPI Video I/O: plugin is ready to use 'FFmpeg OpenCV Video I/O Capture plugin'[ INFO:0@0.058] global backend_plugin.cpp:84 cv::impl::PluginBackend::initWriterAPI Found entry: 'opencv_videoio_writer_plugin_init_v1'[ INFO:0@0.061] global backend_plugin.cpp:169 cv::impl::PluginBackend::checkCompatibility Video I/O: initialized 'FFmpeg OpenCV Video I/O Writer plugin': built with OpenCV 4.9 (ABI/API = 1/1), current OpenCV version is '4.9.0' (ABI/API = 1/1)[ INFO:0@0.065] global backend_plugin.cpp:103 cv::impl::PluginBackend::initWriterAPI Video I/O: plugin is ready to use 'FFmpeg OpenCV Video I/O Writer plugin'[tcp @ 00000266b2f0d0c0] Connection to tcp://192.168.254.101:8000 failed: Error number -138 occurred[rtmp @ 00000266b2f0cfc0] Cannot open connection tcp://192.168.254.101:8000[ WARN:0@5.630] global cap.cpp:155 cv::VideoCapture::open VIDEOIO(FFMPEG): can't create capture[DEBUG:0@5.632] global cap.cpp:225 cv::VideoCapture::open VIDEOIO: choosen backend does not work or wrong. Please make sure that your computer support chosen backend and OpenCV built with right flags.Cannot open video source[ INFO:1@5.661] global plugin_loader.impl.hpp:74 cv::plugin::impl::DynamicLib::libraryRelease unload C:\Users\me\src\opencv\.venv\Lib\site-packages\cv2\opencv_videoio_ffmpeg490_64.dll

Here is the output of cv2.getBuildInformation()

General configuration for OpenCV 4.9.0 =====================================  Version control:               4.9.0  Platform:    Timestamp:                   2023-12-31T11:21:12Z    Host:                        Windows 10.0.17763 AMD64    CMake:                       3.24.2    CMake generator:             Visual Studio 14 2015    CMake build tool:            MSBuild.exe    MSVC:                        1900    Configuration:               Debug Release  CPU/HW features:    Baseline:                    SSE SSE2 SSE3      requested:                 SSE3    Dispatched code generation:  SSE4_1 SSE4_2 FP16 AVX AVX2      requested:                 SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX      SSE4_1 (16 files):         + SSSE3 SSE4_1      SSE4_2 (1 files):          + SSSE3 SSE4_1 POPCNT SSE4_2      FP16 (0 files):            + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX      AVX (8 files):             + SSSE3 SSE4_1 POPCNT SSE4_2 AVX      AVX2 (36 files):           + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2  C/C++:    Built as dynamic libs?:      NO    C++ standard:                11    C++ Compiler:                C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe  (ver 19.0.24247.2)    C++ flags (Release):         /DWIN32 /D_WINDOWS /W4 /GR  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi  /fp:precise     /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /wd4819 /MP  /O2 /Ob2 /DNDEBUG     C++ flags (Debug):           /DWIN32 /D_WINDOWS /W4 /GR  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi  /fp:precise     /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /wd4819 /MP  /Zi /Ob0 /Od /RTC1     C Compiler:                  C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe    C flags (Release):           /DWIN32 /D_WINDOWS /W3  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi  /fp:precise     /MP   /O2 /Ob2 /DNDEBUG     C flags (Debug):             /DWIN32 /D_WINDOWS /W3  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi  /fp:precise     /MP /Zi /Ob0 /Od /RTC1     Linker flags (Release):      /machine:x64  /NODEFAULTLIB:atlthunk.lib /INCREMENTAL:NO  /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:libcpmtd.lib /NODEFAULTLIB:msvcrtd.lib    Linker flags (Debug):        /machine:x64  /NODEFAULTLIB:atlthunk.lib /debug /INCREMENTAL  /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcpmt.lib /NODEFAULTLIB:msvcrt.lib    ccache:                      NO    Precompiled headers:         YES    Extra dependencies:          wsock32 comctl32 gdi32 ole32 setupapi ws2_32    3rdparty dependencies:       libprotobuf ade ittnotify libjpeg-turbo libwebp libpng libtiff libopenjp2 IlmImf zlib ippiw ippicv  OpenCV modules:    To be built:                 calib3d core dnn features2d flann gapi highgui imgcodecs imgproc ml objdetect photo python3 stitching video videoio    Disabled:                    java world    Disabled by dependency:      -    Unavailable:                 python2 ts    Applications:                -    Documentation:               NO    Non-free algorithms:         NO  Windows RT support:            NO  GUI:                           WIN32UI    Win32 UI:                    YES    VTK support:                 NO  Media I/O:     ZLib:                        build (ver 1.3)    JPEG:                        build-libjpeg-turbo (ver 2.1.3-62)      SIMD Support Request:      YES      SIMD Support:              NO    WEBP:                        build (ver encoder: 0x020f)    PNG:                         build (ver 1.6.37)    TIFF:                        build (ver 42 - 4.2.0)    JPEG 2000:                   build (ver 2.5.0)    OpenEXR:                     build (ver 2.3.0)    HDR:                         YES    SUNRASTER:                   YES    PXM:                         YES    PFM:                         YES  Video I/O:    DC1394:                      NO    FFMPEG:                      YES (prebuilt binaries)      avcodec:                   YES (58.134.100)      avformat:                  YES (58.76.100)      avutil:                    YES (56.70.100)      swscale:                   YES (5.9.100)      avresample:                YES (4.0.0)    GStreamer:                   NO    DirectShow:                  YES    Media Foundation:            YES      DXVA:                      YES  Parallel framework:            Concurrency  Trace:                         YES (with Intel ITT)  Other third-party libraries:    Intel IPP:                   2021.11.0 [2021.11.0]           at:                   D:/a/opencv-python/opencv-python/_skbuild/win-amd64-3.7/cmake-build/3rdparty/ippicv/ippicv_win/icv    Intel IPP IW:                sources (2021.11.0)              at:                D:/a/opencv-python/opencv-python/_skbuild/win-amd64-3.7/cmake-build/3rdparty/ippicv/ippicv_win/iw    Lapack:                      NO    Eigen:                       NO    Custom HAL:                  NO    Protobuf:                    build (3.19.1)    Flatbuffers:                 builtin/3rdparty (23.5.9)  OpenCL:                        YES (NVD3D11)    Include path:                D:/a/opencv-python/opencv-python/opencv/3rdparty/include/opencl/1.2    Link libraries:              Dynamic load  Python 3:    Interpreter:                 C:/hostedtoolcache/windows/Python/3.7.9/x64/python.exe (ver 3.7.9)    Libraries:                   C:/hostedtoolcache/windows/Python/3.7.9/x64/libs/python37.lib (ver 3.7.9)    numpy:                       C:/hostedtoolcache/windows/Python/3.7.9/x64/lib/site-packages/numpy/core/include (ver 1.17.0)    install path:                python/cv2/python-3  Python (for build):            C:\hostedtoolcache\windows\Python\3.7.9\x64\python.exe  Java:                              ant:                         NO    Java:                        YES (ver 1.8.0.392)    JNI:                         C:/hostedtoolcache/windows/Java_Temurin-Hotspot_jdk/8.0.392-8/x64/include C:/hostedtoolcache/windows/Java_Temurin-Hotspot_jdk/8.0.392-8/x64/include/win32 C:/hostedtoolcache/windows/Java_Temurin-Hotspot_jdk/8.0.392-8/x64/include    Java wrappers:               NO    Java tests:                  NO  Install to:                    D:/a/opencv-python/opencv-python/_skbuild/win-amd64-3.7/cmake-install-----------------------------------------------------------------

edit: Receiving the stream with ffplay from command line:

>ffplay.exe -i "rtmp://0.0.0.0:8000/live"  -listen 1 -f flvffplay version 2024-02-04-git-7375a6ca7b-full_build-www.gyan.dev Copyright (c) 2003-2024 the FFmpeg developers  built with gcc 12.2.0 (Rev10, Built by MSYS2 project)  configuration: --enable-gpl --enable-version3 --enable-static --pkg-config=pkgconf --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint  libavutil      58. 36.101 / 58. 36.101  libavcodec     60. 38.100 / 60. 38.100  libavformat    60. 20.100 / 60. 20.100  libavdevice    60.  4.100 / 60.  4.100  libavfilter     9. 17.100 /  9. 17.100  libswscale      7.  6.100 /  7.  6.100  libswresample   4. 13.100 /  4. 13.100  libpostproc    57.  4.100 / 57.  4.100[rtmp @ 0000018a564ed340] Unexpected stream , expecting livef=0/0    Last message repeated 1 timesInput #0, flv, from 'rtmp://0.0.0.0:8000/live':KB sq=    0B f=0/0  Metadata:    fileSize        : 0    audiochannels   : 2    2.1             : false    3.1             : false    4.0             : false    4.1             : false    5.1             : false    7.1             : false    encoder         : obs-output module (libobs version 30.0.2)  Duration: 00:00:00.00, start: 0.000000, bitrate: N/A  Stream #0:0: Audio: aac (LC), 48000 Hz, stereo, fltp, 163 kb/s  Stream #0:1: Video: h264 (Constrained Baseline), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 2560 kb/s, 30 fps, 30 tbr, 1k tbn   7.54 A-V: -0.024 fd=  18 aq=   24KB vq=  498KB sq=    0B f=0/0

Viewing all articles
Browse latest Browse all 12111

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>