当前位置: 首页 > 知识库问答 >
问题:

OpenCV 3.4.3-视频录制时未调用GStream

萧凡
2023-03-14

因此,我使用了以下代码:

VideoWriter.open("appsrc ! autovideoconvert ! omxh264enc ! matroskamux ! filesink location=test2.mkv sync=false",
//cv::CAP_GSTREAMER, //set or not, I get the same problem
0, (double)25, //fourcc, fps
cv::Size(1024, 1024), 
true);

而我的问题:

一个叫做appsrc的视频文件!自动视频转换!omxh264enc!matroskamux!创建filesink location=test2.mkv sync=false(而不是test2.mkv),并且它为空。同样的问题被纠正了,并且在下面的线程中似乎可以工作,对我来说没有任何影响:用VideoWriter从OpenCV打开一个GStreamer管道

    null

视频I/O:Windows视频:是DC1394:否FFMPEG:是(预构建的二进制文件)AVCODEC:是(版本57.107.100)AVFORMAT:是(版本57.83.100)AVUTIL:是(版本55.78.100)SWScale:是(版本4.8.100)AVRESAMPLE:是(版本3.7.0)G流媒体:

基础:是(版本1.0)

视频:是(1.0版)

Pbutils:是(1.0版)

DirectShow:是

媒体基金会:是

Selecting Windows SDK version 10.0.17134.0 to target Windows 10.0.17763.
AVX_512F is not supported by C++ compiler

AVX512_SKX is not supported by C++ compiler

Dispatch optimization AVX512_SKX is not available, skipped

libjpeg-turbo: VERSION = 1.5.3, BUILD = opencv-3.4.3-libjpeg-turbo

Looking for Mfapi.h

Looking for Mfapi.h - found

found Intel IPP (ICV version): 2017.0.3 [2017.0.3]

at: E:/OpenCV/3.4.3/build-cuda92-gstreamer/3rdparty/ippicv/ippicv_win

found Intel IPP IW sources: 2017.0.3

at: E:/OpenCV/3.4.3/build-cuda92-gstreamer/3rdparty/ippicv/ippiw_win

CUDA detected: 9.2

CUDA NVCC target flags: -gencode;arch=compute_30,code=sm_30;-gencode;arch=compute_35,code=sm_35;-gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_52,code=sm_52;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-D_FORCE_INLINES

Found apache ant: C:/NVPACK/apache-ant-1.8.2/bin/ant.bat (1.8.2)

Could NOT find Matlab (missing: MATLAB_MEX_SCRIPT MATLAB_INCLUDE_DIRS MATLAB_ROOT_DIR MATLAB_LIBRARIES MATLAB_LIBRARY_DIRS MATLAB_MEXEXT MATLAB_ARCH MATLAB_BIN)

VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file

Caffe: NO

Protobuf: NO

Glog: YES

freetype2: NO

harfbuzz: NO

Module opencv_ovis disabled because OGRE3D was not found

No preference for use of exported gflags CMake configuration set, and no hints for include/library directories provided. Defaulting to preferring an installed/exported gflags CMake configuration if available.

Found installed version of gflags: E:/Git/gflags/BUILD-VS2015

Detected gflags version: 2.2.1

Checking SFM deps... FALSE

Module opencv_sfm disabled because the following dependencies are not found: Eigen Glog/Gflags

Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx512_skx.cpp

Tesseract: NO


General configuration for OpenCV 3.4.3 =====================================

Version control: unknown


Extra modules:

Location (extra): E:/OpenCV/3.4.3/opencv_contrib-3.4.3/modules

Version control (extra): unknown


Platform:

Timestamp: 2018-11-07T16:57:18Z

Host: Windows 10.0.17763 AMD64

CMake: 3.12.0-rc2

CMake generator: Visual Studio 14 2015 Win64

CMake build tool: C:/Program Files (x86)/MSBuild/14.0/bin/MSBuild.exe

MSVC: 1900


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 (5 files): + SSSE3 SSE4_1

SSE4_2 (2 files): + SSSE3 SSE4_1 POPCNT SSE4_2

FP16 (2 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX

AVX (6 files): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX

AVX2 (11 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2


C/C++:

Built as dynamic libs?: YES

C++11: YES

C++ Compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe (ver 19.0.24215.1)

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 /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /MP16 /MD /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 /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /MP16 /MDd /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 /MP16 /MD /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 /MP16 /MDd /Zi /Ob0 /Od /RTC1

Linker flags (Release): /machine:x64 /INCREMENTAL:NO

Linker flags (Debug): /machine:x64 /debug /INCREMENTAL

ccache: NO

Precompiled headers: YES

Extra dependencies: cudart.lib nppc.lib nppial.lib nppicc.lib nppicom.lib nppidei.lib nppif.lib nppig.lib nppim.lib nppist.lib nppisu.lib nppitc.lib npps.lib cublas.lib cufft.lib -LIBPATH:C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.2/lib/x64

3rdparty dependencies:


OpenCV modules:

To be built: aruco bgsegm bioinspired calib3d ccalib core cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev datasets dnn dnn_objdetect dpm face features2d flann fuzzy hfs highgui img_hash imgcodecs imgproc java java_bindings_generator line_descriptor ml objdetect optflow phase_unwrapping photo plot python_bindings_generator reg rgbd saliency shape stereo stitching structured_light superres surface_matching text tracking ts video videoio videostab xfeatures2d ximgproc xobjdetect xphoto

Disabled: js world

Disabled by dependency: -

Unavailable: cnn_3dobj cvv freetype hdf matlab ovis python2 python3 sfm viz

Applications: tests perf_tests apps

Documentation: NO

Non-free algorithms: NO


Windows RT support: NO


GUI:

Win32 UI: YES

VTK support: NO


Media I/O:

ZLib: build (ver 1.2.11)

JPEG: build-libjpeg-turbo (ver 1.5.3-62)

WEBP: build (ver encoder: 0x020e)

PNG: build (ver 1.6.34)

TIFF: build (ver 42 - 4.0.9)

JPEG 2000: build (ver 1.900.1)

OpenEXR: build (ver 1.7.1)

HDR: YES

SUNRASTER: YES

PXM: YES


Video I/O:

Video for Windows: YES

DC1394: NO

FFMPEG: YES (prebuilt binaries)

avcodec: YES (ver 57.107.100)

avformat: YES (ver 57.83.100)

avutil: YES (ver 55.78.100)

swscale: YES (ver 4.8.100)

avresample: YES (ver 3.7.0)

GStreamer:

base: YES (ver 1.0)

video: YES (ver 1.0)

app: YES (ver 1.0)

riff: YES (ver 1.0)

pbutils: YES (ver 1.0)

DirectShow: YES

Media Foundation: YES


Parallel framework: Concurrency


Trace: YES (with Intel ITT)


Other third-party libraries:

Intel IPP: 2017.0.3 [2017.0.3]

at: E:/OpenCV/3.4.3/build-cuda92-gstreamer/3rdparty/ippicv/ippicv_win

Intel IPP IW: sources (2017.0.3)

at: E:/OpenCV/3.4.3/build-cuda92-gstreamer/3rdparty/ippicv/ippiw_win

Custom HAL: NO

Protobuf: build (3.5.1)


NVIDIA CUDA: YES (ver 9.2, CUFFT CUBLAS NVCUVID)

NVIDIA GPU arch: 30 35 37 50 52 60 61 70

NVIDIA PTX archs:


OpenCL: YES (no extra features)

Include path: E:/OpenCV/3.4.3/opencv-3.4.3/3rdparty/include/opencl/1.2

Link libraries: Dynamic load


Python (for build): C:/ProgramData/Miniconda3/python.exe


Java:

ant: C:/NVPACK/apache-ant-1.8.2/bin/ant.bat (ver 1.8.2)

JNI: C:/NVPACK/jdk1.8.0_77/include C:/NVPACK/jdk1.8.0_77/include/win32 C:/NVPACK/jdk1.8.0_77/include

Java wrappers: YES

Java tests: YES


Matlab: NO


Install to: E:/OpenCV/3.4.3/build/install

-----------------------------------------------------------------


Configuring done

共有1个答案

慕烨烁
2023-03-14

好吧,我终于找到问题的根源了。

通过单步执行VideoWriter::Open(...)我终于注意到,std::vector后端没有包含任何带有“id=cap_gstreamer”->的元素,它没有用OpenCV正确编译。通过进一步调查,我发现这是因为我错误地编译了x86版本的Gstreamer(而我是为x64构建OpenCV)。

祝你今天愉快,

 类似资料:
  • 我正在尝试使用录制视频,并从回调方法获取原始帧(字节数组) 似乎没那么容易,mb这甚至不可能,我不知道... 但是我找到了一些答案(类似的问题),人们说您应该在调用后重新连接相机实例(),并再次设置预览回调 所以我想知道是否有可能同时使用MediaRecorder和预览帧回调。如果是,那么如何正确地做到这一点?

  • 我们可以在录制视频时重置mediaRecorder中的所有值吗?我尝试在录制视频时使用。但行不通。我不知道有没有可能。如果有可能,请任何参考将不胜感激。 我读过这篇文章,也读过谷歌开发者,开发者中的mediaRecorder。但任何参考文献都没有提到我的问题。 编辑: 感谢您宝贵的时间。

  • 我正在尝试开发一个应用程序,允许我在录制视频时绘制视频,然后将录制的视频和视频保存在一个mp4文件中供以后使用。另外,我想使用camera2库,特别是我需要我的应用程序在高于API 21的设备上运行,我总是避免使用不推荐的库。 我尝试了很多方法,包括FFmpeg,其中我放置了TextureView的覆盖层。getBitmap()(来自摄影机)和从画布获取的位图。它工作正常,但由于它的功能很慢,视频

  • 问题内容: 我需要一种在录制视频的同时在Android设备上控制照相机闪光灯的方法。我正在制作频闪灯应用,使用频闪灯闪烁的视频拍摄视频将能够记录高速移动的物体,例如风扇叶片。 只能通过启动视频预览并在相机参数中设置FLASH_MODE_TORCH来启用闪光灯。看起来像这样: 预览开始后,我可以来回翻转该参数以打开和关闭灯光。在尝试录制视频之前,此方法效果很好。麻烦的是,为了将摄像机提供给Media

  • 我正在尝试用FFMPEG录制一段H264视频。 以下是我在FFMPEG中使用的选项: -thread_queue_size 512-framerate 30-f rawvideo-pix_fmt rgb32-video_size 1920x1080-i\.\pipe\pipe_name-vcodec libx264-crf 23-pix_fmt yuv420p-preset超快-r 30“outp

  • 我们有一台摄像机,记录高FPS率-163的视频。 谢谢!